Јесте ли икада видјели ступац менија или таблице или истицање редака другачијом бојом када миш пређе преко ње? То је наш циљ овде: да се ред истакне када је показивач миша у домету.
Компонента ТДБГрид Делпхи један је од драгуља ВЦЛ-а. Дизајниран како би кориснику омогућио преглед и уређивање података у табеларној мрежи, ДБГрид пружа различите начине прилагођавања начина на који представља своје податке. На пример, додавање боје мрежама ваше базе података побољшаће изглед и разликоваће важност одређених редова или ступаца у бази података.
Међутим, немојте да вас заваравају превише симплистички туторијали о овој теми. Може се чинити довољно једноставним да само поставите дгРовСелецт својине, али запамтите то када дгРовСелецт је укључено у Опције, тхе дгЕдитинг застава се занемарује, што значи да је уређивање података путем мреже онемогућено.
Оно што ћете пронаћи у наставку је објашњење како то омогућити ОнМоусеОвер тип догађај за ДБГрид ред, тако да се миш снима и налази, чинећи запис активним тако да означи одговарајући ред у ДБГриду.
Како радити са ОнМоусеОвер и Делпхи компонентама
Први ред пословања је код за писање за ОнМоусеМове догађај у компоненти ТДБГрид тако да може лоцирати ред и ступац (ћелију) ДБГрид-а над којим миш прелази преко миша.
Ако је миш изнад решетке (рукује се у ОнМоусеМове догађај руковатељ), можете да користите МовеБи метода компоненте ДатаСет за постављање тренутног записа на онај приказан „испод“ курсора миша.
тип ТХацкДБГрид = класа(ТДБГрид);
...
процедура ТФорм1.ДБГрид1МоусеМове
(Пошиљалац: ТОбјецт; Схифт: ТСхифтСтате; Кс, И: Интегер);
вар
гц: ТГридЦоорд;
започети
гц: = ДБГрид1.МоусеЦоорд (к, и);
ако (гц Кс> 0) И (гц И> 0) тхенбегин
ДБГрид1.ДатаСоурце. ДатаСет. МовеБи
(гц И - ТХацкДБГрид (ДБГрид1) .Ров);
крај;
крај;
Сличан код се може користити да се покаже која ћелија миша прелази и да промени курсор када се нађе изнад насловне траке.
Да бисте исправно поставили активни запис, морате да хакујете ДБГрид и поставите своје руке на заштићени Ред својство. Тхе Ред имовина а ТЦустомДБГрид компонента садржи референцу на тренутно активни ред.
Многи Делпхи компоненте имају корисна својства и методе који су за Делф програмере означени невидљивим или заштићеним. Надамо се да се за приступ таквим заштићеним члановима компоненте може користити једноставна техника која се зове „заштићени хацк“.
Код горњег кода, када померате миш преко решетке, изабрани запис је онај који се приказује у мрежи „испод“ курсора миша. Нема потребе да кликнете на мрежу да бисте променили тренутни запис.
Истакните активни ред да бисте побољшали корисников доживљај:
процедура ТФорм1.ДБГрид1ДравЦолумнЦелл
(Пошиљалац: ТОбјецт; цонст Рецт: ТРецт; ДатаЦол: Интегер;
Колона: ТЦолумн; Стање: ТГридДравСтате);
бегиниф (ТХацкДБГрид (ДБГрид1) .ДатаЛинк. АцтивеРецорд + 1 =
ТХацкДБГрид (ДБГрид1) .Ров)
или (гдФокусирано у држави) или (гдИзбор у држави) тхенбегин
ДБГрид1.Цанвас. Четкица. Боја: = цлСкиБлуе;
ДБГрид1.Цанвас. Фонт. Стил: = ДБГрид1.Цанвас. Фонт. Стиле + [фсБолд];
ДБГрид1.Цанвас. Фонт. Боја: = цлРед;
крај;
крај;
Тхе ОнДравЦолумнЦелл догађај се користи за обраду потребе за прилагођеним цртежом података у ћелијама мреже.
Можете користити мали трик да разликујете одабрани ред од свих осталих редова. Узмите у обзир да Ред својство (цијели број) једнак је АцтивеРецорд (+1) својина Дата линк објект који ће одабрани ред бити обојен.
Вероватно ћете желети да онемогућите ово понашање (тхе МовеБи метода у ОнМоусеМове евент хандлер) када ДатаСет спојен на ДБГрид је укључен Уредити или Уметни режим.