Išplečiamasis sąrašas „DBGrid“ viduje

Štai kaip sudėti išskleidžiamąjį sąrašą į „DBGrid“. Sukurkite vizualiai patrauklesnes vartotojo sąsajas, kad galėtumėte redaguoti paieškos laukus „DBGrid“ viduje - naudodamiesi „DBGrid“ stulpelio savybe „PickList“.

Dabar jūs žinote, kas yra paieškos laukai ir kokios yra paieškos lauko rodymo galimybės Delfi„DBGrid“, atėjo laikas pamatyti, kaip naudoti „DGBrid“ stulpelio „PickList“ ypatybę, kad vartotojas galėtų išskleidžiamojo sąrašo lauke pasirinkti paieškos lauko vertę.

Greita informacija apie „DBGrid“ stulpelių nuosavybę

A DBGrid valdymas turi savybę Stulpeliai - TColumn objektų, reprezentuojančių visus tinklo valdiklio stulpelius, kolekcija. Stulpelius galima nustatyti projektavimo metu per Stulpelių rengyklę arba programiškai vykdyti. Paprastai pridėsite Stulpeliai „DBGird“, kai norite apibrėžti, kaip rodomas stulpelis, kaip rodomi stulpelio duomenys, ir pasiekti „TDBGridColumns“ ypatybes, įvykius ir metodus vykdymo metu. Tinkintas tinklelis leidžia sukonfigūruoti kelis stulpelius, kad pateiktumėte skirtingus to paties rodinius duomenų rinkinys (skirtingos stulpelių eilės, skirtingi lauko pasirinkimai ir skirtingos stulpelių spalvos ir šriftai) pavyzdys).

instagram viewer

Dabar kiekvienas tinklelio stulpelis yra „susietas“ su tinkle rodomo duomenų rinkinio lauku. Be to, kiekvienas stulpelis turi „PickList“ ypatybę. „PickList“ nuosavybėje pateikiamos vertės, kurias vartotojas gali pasirinkti stulpelio susieto lauko vertei.

„PickList“ pildymas

Tai, ko sužinosite, yra tai, kaip užpildyti tą eilutės sąrašą vertėmis iš kito duomenų rinkinio vykdymo metu.
Prisiminkite, kad mes redaguojame straipsnių lentelę ir kad laukas Tema gali priimti vertes tik iš Temų lentelės: ideali situacija „PickList“!

Štai kaip nustatyti „PickList“ nuosavybę. Pirmiausia pridedame skambutį į „SetupGridPickList“ procedūrą formos „OnCreate“ įvykių tvarkytuve.

procedūra TForm1.FormCreate (Siuntėjas: TObject);
prasideda
„SetupGridPickList“ ('Tema', 'SELECT Name FROM Subjects');
galas;

Lengviausias būdas sukurti „SetupGridPickList“ procedūrą yra pereiti į privačią formos deklaracijos dalį, pridėkite ten deklaraciją ir paspauskite klavišų kombinaciją CTRL + SHIFT + C - „Delphi“ kodą užbaigus padarysite poilsis:

...
tipo
TForm1 = klasė (TForm)
...
privatus procesas „SetupGridPickList“ (
const Lauko pavadinimas: stygos;
const SQL: stygos);
viešai
...

Pastaba: „SetupGridPickList“ procedūra turi du parametrus. Pirmasis parametras „FieldName“ yra lauko, kurį norime veikti kaip paieškos laukas, pavadinimas; antrasis parametras, SQL, yra SQL išraiška, kurią naudojame „PickList“ užpildydami galimas reikšmes - paprastai SQL išraiška turėtų pateikti duomenų rinkinį, kuriame yra tik vienas laukas.

Štai kaip atrodo „SetupGridPickList“:

procedūra TForm1.SetupGridPickList (const Lauko pavadinimas, sql: stygos);
var
slPickList: TStringList;
Užklausa: TADOQuery;
i: sveikasis skaičius;
prasideda
slPickList: = „TStringList“. Kurti;
Užklausa: = TADOQuery. Kurti (save);
bandyti
Užklausa. Prijungimas: = ADOConnection1;
Užklausa. SQL.Text: = sql;
Užklausa. Atviras;
// Užpildykite stygų sąrašąkolne Užklausa. EOF dobeginas
slPickList. Pridėti (užklausa. Laukai [0] .AsString);
Užklausa. Kitas;
galas; //while
// įdėkite sąrašą į teisingą stulpelįdėl i: = 0 į DBGrid1.Skolonos. Grafas-1 daryti
jei „DBGrid1.Columns“ [i] .FieldName = FieldName tada pradedama
DBGrid1.Skolonos [i] .PickList: = slPickList;
Pertrauka;
galas;
pagaliau
slPickList. Laisvas;
Užklausa. Laisvas;
galas;
galas; (* „SetupGridPickList“)

Viskas. Dabar, kai spustelėsite stulpelį Tema (norėdami patekti į redagavimo režimą).

1 pastaba: pagal nutylėjimą išskleidžiamajame sąraše rodomos 7 vertės. Galite pakeisti šio sąrašo ilgį nustatydami „DropDownRows“ ypatybę.

2 pastaba: niekas netrukdo užpildyti „PickList“ iš vertybių sąrašo, nepateikto iš duomenų bazės lentelės. Pvz., Jei turite lauką, kuriame priimami tik savaitės dienų pavadinimai („pirmadienis“,..., „sekmadienis“), galite sukurti „kietą kodą“ „PickList“.

„Aš turiu spustelėti„ PickList “4 kartus ...“

Atminkite, kad norėdami redaguoti lauką, kuriame pateikiamas išskleidžiamasis sąrašas, turėsite spustelėti langelį 4 kartus, kad iš tikrųjų pasirinktumėte vertę iš sąrašo. Kitas kodo fragmentas, pridėtas prie „DBGrid“ „OnCellClick“ įvykių tvarkyklės, imituoja F2 klavišo paspaudimą, po kurio eina „Alt + DownArrow“.

procedūra TForm1.DBGrid1CellClick (stulpelis: TColumn);
prasideda// Išskleidžiamasis išsirinkimų sąrašas pasirodo greičiaujei Stulpelis. „Pasirinkite sąrašą“. Skaičius> 0 tada pradedama
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);
galas;
galas;