Avattava luettelo DBGridin sisällä

Näin sijoitat avattavan valintaluettelon DBGridiin. Luo visuaalisesti houkuttelevampia käyttöliittymiä DBGrid-hakemiston hakukenttien muokkaamiseen - käyttämällä DBGrid-sarakkeen PickList-ominaisuutta.

Nyt kun tiedät, mitkä ovat hakukentät ja mitkä ovat vaihtoehdot näyttää hakukenttä DelfoiDBGrid, on aika nähdä, kuinka käyttää DGBrid-sarakkeen PickList-ominaisuutta, jotta käyttäjä voi valita arvon hakukenttään avattavasta luetteloruudusta.

Pikainfo DBGrid-sarakkeiden ominaisuudesta

DBGrid Ohjauksella on Sarakkeet-ominaisuus - kokoelma TColumn-objekteja, jotka edustavat kaikkia ruudukonhallinnan sarakkeita. Sarakkeet voidaan asettaa suunnittelun aikana Sarakkeen muokkausohjelman kautta tai ohjelmallisesti ajon aikana. Sinä yleensä lisäät pylväät DBGird-ohjelmaan, kun haluat määritellä, kuinka sarake näkyy, miten sarakkeen tiedot näytetään ja käyttää TDBGridColumns-ominaisuuksia, tapahtumia ja menetelmiä suoritusaikana. Muokattu ruudukko antaa sinun määrittää useita sarakkeita esittämään samanlaisia ​​näkymiä tietojoukko (eri sarakkeiden järjestykset, erilaiset kenttävalinnat ja eri sarakkeiden värit ja fontit) esimerkki).

instagram viewer

Nyt jokainen ruudukon ruutu "linkitetään" kenttään ruudukossa näkyvästä tietojoukosta. Lisäksi jokaisella sarakkeella on PickList-ominaisuus. PickList-ominaisuus luettelee arvot, jotka käyttäjä voi valita sarakkeen linkitetyn kentän arvoon.

Valintaluettelon täyttäminen

Opit täältä, kuinka täytät merkkijonojen luettelon arvoilla toiselta aineistolta ajon aikana.
Muista, että muokkaamme artikkeleita taulukkoa ja että Aihe-kenttä voi hyväksyä vain Aiheet-taulukon arvot: ihanteellinen tilanne PickListille!

PickList-ominaisuuden määrittäminen on seuraava seuraavasti. Lisäämme ensin puhelun SetupGridPickList-menettelyyn lomakkeen OnCreate-tapahtumakäsittelyohjelmassa.

menettely TForm1.FormCreate (Lähettäjä: TObject);
alkaa
SetupGridPickList ('Aihe', 'VALITSE nimi kohteista');
pää;

Helpoin tapa luoda SetupGridPickList-menettely on siirtyä lomakkeen ilmoituksen yksityiseen osaan, lisää ilmoitus sinne ja paina CTRL + SHIFT + C -näppäinyhdistelmää - Delphin koodin valmistuminen tekee levätä:

...
tyyppi
TForm1 = luokka (TForm)
...
privateprocedure SetupGridPickList (
const Kenttä nimi: jono;
const sql: jono);
julkinen
...

Huomaa: SetupGridPickList -toimenpiteessä on kaksi parametria. Ensimmäinen parametri, FieldName, on sen kentän nimi, jonka haluamme toimia hakukentän tavoin; toinen parametri, SQL, on SQL-lauseke, jota käytämme täydentämään PickList mahdollisilla arvoilla - yleensä SQL-lausekkeen pitäisi palauttaa tietojoukko, jossa on vain yksi kenttä.

Näin näyttää SetupGridPickList:

menettely TForm1.SetupGridPickList (const KenttäNimi, sql: jono);
var
slPickList: TStringList;
Kysely: TADOQuery;
i: kokonaisluku;
alkaa
slPickList: = TStringList. Luoda;
Kysely: = TADOQuery. Luo (itse);
yrittää
Kysely. Yhteys: = ADOConnection1;
Kysely. SQL.Text: = sql;
Kysely. Avata;
// Täytä merkkijonojen luettelosillä aikaaei Kysely. EOF dobegin
slPickList. Lisää (Kysely. Kentät [0] .AsString);
Kysely. Seuraava;
pää; //while
// aseta luettelo oikealle sarakkeellevarten i: = 0 että DBGrid1.Columns. Count-1 tehdä
jos DBGrid1.Columns [i] .FieldName = KenttäNimi thenbegin
DBGrid1.Columns [i] .PickList: = slPickList;
Tauko;
pää;
vihdoin
slPickList. Vapaa;
Kysely. Vapaa;
pää;
pää; (* SetupGridPickList *)

Se siitä. Kun napsautat Aihe-saraketta (siirtyäksesi muokkaustilaan).

Huomautus 1: Oletuksena avattavassa luettelossa näkyy 7 arvoa. Voit muuttaa tämän luettelon pituutta asettamalla DropDownRows-ominaisuuden.

Huomautus 2: mikään ei estä sinua täyttämästä PickList-arvoluetteloa, joka ei tule tietokantataulukosta. Jos sinulla on esimerkiksi kenttä, joka hyväksyy vain arkipäivän nimet ('maanantai',..., 'sunnuntai'), voit luoda "koodatun" PickListin.

"Uh, minun on napsautettava PickList 4 kertaa ..."

Huomaa, että kun haluat muokata avattavaa luetteloa sisältävää kenttää, sinun on napsautettava solua neljä kertaa, jotta arvo todella valitaan luettelosta. Seuraava koodinpätkä, joka lisätään DBGridin OnCellClick-tapahtumakäsittelyohjelmaan, jäljittelee osumaa F2-näppäimelle, jota seuraa Alt + DownArrow.

menettely TForm1.DBGrid1CellClick (sarake: TC-pylväs);
alkaa// Avattavan valintaluettelon näyttäminen nopeammaksijos Sarake. Valintalista. Laske> 0 thenbegin
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);
pää;
pää;