Spustni seznam znotraj DBGrid

click fraud protection

Spodaj je opisano, kako v DBGrid vstaviti spustni seznam izbirnikov. Ustvarite vizualno bolj privlačne uporabniške vmesnike za urejanje poizvedbenih polj znotraj DBGrid - z uporabo lastnosti PickList stolpca DBGrid.

Zdaj, ko veste, kaj so iskalna polja in kakšne so možnosti za prikazovanje iskalnega polja v DelphiDBGrid, čas je, da vidimo, kako uporabiti lastnost PickList stolpca DGBrid, da uporabniku omogočimo, da iz polja spustnega seznama izbere vrednost za iskalno polje.

Hitre informacije o lastnosti stolpcev DBGrid

A DBGrid control ima lastnost Column - zbirka predmetov TColumn, ki predstavljajo vse stolpce v nadzoru mreže. Stolpce lahko nastavite v času načrtovanja prek urejevalnika stolpcev ali programsko med izvajanjem. Običajno boste dodali Stolpci v DBGird, ko želite določiti, kako se stolpec prikazuje, kako se prikazujejo podatki v stolpcu in dostopati do lastnosti, dogodkov in metod TDBGridColumn ob času izvajanja. Prilagojena mreža vam omogoča, da konfigurirate več stolpcev za predstavitev različnih pogledov istega nabor podatkov (različna naročila stolpcev, različne izbire polja ter različne barve in pisave stolpcev za primer).

instagram viewer

Zdaj je vsak stolpec v mreži "povezan" s poljem iz nabora podatkov, ki je prikazan v mreži. Poleg tega ima vsak stolpec lastnost PickList. Lastnost PickList navaja vrednosti, ki jih uporabnik lahko izbere za vrednost polja v stolpcu.

Izpolnitev seznama PickList

Tukaj se boste naučili, kako napolniti seznam nizov z vrednostmi iz drugega nabora podatkov med izvajanjem.
Spomnimo se, da urejamo tabelo Članki in da polje Predmet lahko sprejme samo vrednosti iz tabele Predmeti: idealna situacija za PickList!

Tukaj je opisano, kako nastaviti lastnost PickList. Najprej dodamo klic postopku SetupGridPickList v obdelovalcu dogodkov v obrazcu OnCreate.

postopek TForm1.FormCreate (Pošiljatelj: TObject);
začeti
SetupGridPickList ('Predmet', 'IZBERI ime iz predmetov');
konec;

Najlažji način za ustvarjanje postopka SetupGridPickList je, da odprete zasebni del izjave obrazca, dodajte deklaracijo in pritisnite tipko CTRL + SHIFT + C - Delphi bo dokončal kodo Delphi počitek:

...
tip
TForm1 = razred (TForm)
...
zasebni postopek SetupGridPickList (
konst Ime polja: vrvica;
konst sql: vrvica);
javnosti
...

Opomba: Postopek SetupGridPickList ima dva parametra. Prvi parameter, FieldName, je ime polja, ki ga želimo obnašati kot polje za iskanje; drugi parameter, SQL, je izraz SQL, ki ga uporabljamo za napolnitev PickList z možnimi vrednostmi - na splošno bi moral izraz SQL vrniti nabor podatkov z le enim poljem.

Tukaj je videti SetupGridPickList:

postopek TForm1.SetupGridPickList (konst Ime polja, sql: vrvica);
var
slPickList: TStringList;
Poizvedba: TADOQuery;
i: celo število;
začeti
slPickList: = TStringList. Ustvari;
Poizvedba: = TADOQuery. Ustvari (samo);
poskusi
Poizvedovanje Povezava: = ADOConnection1;
Poizvedovanje SQL.Text: = sql;
Poizvedovanje Odprto;
// Izpolnite seznam vrvicmedtemne Poizvedovanje EOF dobegin
slPickList. Dodaj (poizvedba Polja [0] .AsString);
Poizvedovanje Naslednji;
konec; //while
// seznam postavite v pravi stolpecza i: = 0 do DBGrid1.Solniki. Štetje-1 stori
če DBGrid1.Column [i] .FieldName = Ime polja potem začet
DBGrid1.Column [i] .PickList: = slPickList;
Odmor;
konec;
končno
slPickList. Prost;
Poizvedovanje Prost;
konec;
konec; (* SetupGridPickList *)

To je to. Zdaj, ko kliknete stolpec Predmet (za vstop v način urejanja).

Opomba 1: privzeto na spustnem seznamu je 7 vrednosti. Dolžino tega seznama lahko spremenite tako, da nastavite lastnost DropDownRows.

Opomba 2: nič vas ne ustavi pri izpolnjevanju PickList s seznama vrednosti, ki ne prihajajo iz tabele baze podatkov. Če imate na primer polje, ki sprejema samo imena delovnih dni ("ponedeljek",..., "nedelja"), lahko sestavite "težko kodiran" PickList.

"Uh, 4-krat moram klikniti PickList."

Ko želite urediti polje, ki prikazuje spustni seznam, boste morali 4-krat klikniti celico, da boste s seznama dejansko izbrali vrednost. Naslednji delček kode, dodan DBGridovemu upravljalcu dogodkov OnCellClick, oponaša zadetek na tipko F2, ki mu sledi Alt + DownArrow.

postopek TForm1.DBGrid1CellClick (stolpec: TColumn);
začeti// Hitreje se prikaže spustni seznam za izbiroče Stolpec. PickList. Štetje> 0 potem začet
keybd_event (VK_F2,0,0,0);
keybd_event (VK_F2,0, KEYEVENTF_KEYUP, 0);
keybd_event (VK_MENU, 0,0,0);
keybd_event (VK_DOWN, 0,0,0);
keybd_event (VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
keybd_event (VK_MENU, 0, KEYEVENTF_KEYUP, 0);
konec;
konec;
instagram story viewer