dbgrid multicoloră

Multicolor DBGrid. 8 ani mai târziu.

Acum aproape opt ani, sa născut Borland Delphi 1. Toți acești opt ani de programatori din întreaga lume referitoare la baza de date, a rezolvat mai multe probleme dificile, care (împreună cu deciziile) sunt descrise aici:
  • DBGRID multicoloră
  • Acest lucru poate fi plasat în DBGrid
  • TDBGrid neobişnuit

Luați în considerare modul în care acestea pot fi rezolvate astăzi. Noi folosim biblioteca gratuit pentru exUSSR EhLib Dmitry Bolshakov. În prezent, acestea sunt cele mai bune componente în raportul funcționalitatea exUSSR + calitate / pret. Întreaga configurație grilă pentru claritate făcută în codul sursă. În aplicațiile dvs., cele mai multe acțiuni pot fi efectuate vizual în proiectant.

1. Proiectul demonstrativ

Pe măsură ce timpul trece, BDE este declarat oficial mort, asa ca noi, ca motorul va folosi ADO. Citește mai mult aici: „Un pic despre modul de utilizare ADO în Delphi“ (al aceluiași articol este luată în bazka MS Access). Nici o problema TADOConnection buchet - TADODataSet cauze. Un punct de interes în program este de a edita proprietățile TADOConnection.ConnectionString la run-time:

2. linia de colorat

OnGetCellParams scrise de tratare a evenimentului:

Nici o vopsea pe pânză, fără subtilități pentru a apela metode, pur și simplu specificați proprietățile de celule Grid a trecut în argumentele - și orice altceva el însuși o face!

Dacă aveți nevoie doar pentru a evidenția rândul pe care cursorul este, este chiar mai ușor:

3. CheckBox într-un domeniu DBGrid

În cazul în care câmpul de date este de tip Boolean, fara eforturi suplimentare nu trebuie să, grila se va afișa o casetă de selectare. Ai nevoie pentru a ajusta proprietățile coloanei DBGridEh urmează pentru alte tipuri de domenii:

4. Imagine în câmpul DBGrid

Pentru a arăta în locul câmpului de imagine, în funcție de valoarea câmpului, procedați în felul următor: Coloana [i] .ImageList - Imagelist cu imagini, coloana [i] .KeyList Strings tip de proprietate - fiecare linie - valoarea câmpului, care va fi înlocuit în locul imaginii Imagelist cu indicele corespunzător; svoystvoColumn [i] .NotInKeyListIndex trebuie să conțină imaginile index pentru a compara importanța domeniului, care nu este KeyList (de exemplu, este convenabil pentru valorile NULL). Listă de proprietăți PickList utilizate pentru a compara poze cu ponturile (de asemenea, trebuie să setați proprietatea la TRUE și Column.Tooltips DBGridEh.ShowHint).

5. fereastra Striped

Codul este luat din exemplele de la EhLib, handler OnGetCellParams:

6. Selecție multiplă

În primul rând aveți nevoie pentru a pune

Ulterior, orice selecție făcută de către utilizator prin proprietatea TDBGridEh.Selection disponibile. Selection.SelectionType indică tipul de selecție:

Un exemplu mai detaliat este în Ajutor EhLib, și pentru a copia / cut / paste este terminat deja procedura.

7. antete complexe

Aceasta este ceea ce lipsește în grila standard si din cauza a ceea ce începe cu invidie aruncă o privire 1C ;-).
Arată cum să o facă chiar mai ușor decât pentru a explica:

După aceea coloanele cu pozițiile Subtitrare> Subtitle 1 și> 2 vor fi combinate sub titlul titlu> 1.

8. rapidă (incrementală) căutare

Acest lucru este ceva care afectează DBGridEh după grila obișnuită (ca o demonstrație în Delphi după Biolife TURBOPASCAL).

Grid indică faptul că, prin apăsarea Ctrl + F ar trebui să meargă în modul de căutare rapidă.

Indică faptul că „rapid“ modul de căutare este de bază, apăsarea tastelor alfanumerice vor fi percepute ca parte a unei linii de grilă, el va căuta în coloana curentă. Du-te la modul de editare apăsând F2.

9. Auto-sortare

Pentru a face sortarea prin coloane în grila de obicei, face munca grea lung, cu EhLib durează câteva secunde:

UTILIZĂRI în necesitatea de a adăuga unul dintre module: EhLibADO, EhLibBDE, EhLibCDS, EhLibDBX sau EhLibIBX în funcție de tipul setului de date pe care le utilizați. Aceste module, atunci când sunt incluse în cerere, înregistrează în mod automat sortator obiect.

Surse ajutat. Codul EhLib frumos, convenabil împărțit în module. Ca rezultat al studiului său a apărut următoarele remedieri:

Acum, în orice proiect de sortare TADODataSet codificare va dura un moment ;-)

Rezultatele X.Podvedenie.

Codul sursă al bazka demo eșantion și modulele EhLib corectate aici (19.8K).