Recenzia

Upravujte a zobrazujte booleovské polia pomocou CheckBoxu v Delphiho DBGrid

Upravujte a zobrazujte booleovské polia pomocou CheckBoxu v Delphiho DBGrid



We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Tip predložil Rene van der Heijden

Séria článkov s názvom Pridávanie komponentov do DBGrid pojednáva o umiestnení takmer všetkých ovládacích prvkov Delphi (vizuálnych komponentov) do bunky DGBrid. Cieľom je vytvoriť vizuálne atraktívnejšie užívateľské rozhrania na editovanie polí v DBGrid: ComboBox pre rozbaľovacie zoznamy; DateTimePicker (kalendár) pre hodnoty dátumu; začiarkavacie políčko pre boolovské polia.

Začiarkavacie políčko pre logické polia

CheckBox vo vnútri DBGrid

Ako si všimol Rene van der Heijden, riešenie je dosť zdĺhavé a nefunguje, aspoň nie pri použití myši na začiarknutie políčok.

Znovu navrhnúť ľahší prístup vyžadujúci iba dva párne obsluhy: OnCellClick a OnCustomDrawCell pre vašu kontrolu DBGrid:

// OnCellClik udalosť DBGrid1 procedúra TForm.DBGrid1CellClick(Stĺpec: TColumn); začaťak (Column.Field.DataType = ftBoolean) potom   začať     {toggle True and False} Column.Grid.DataSource.DataSet.Edit; Column.Field.Value: = nie Column.Field.AsBoolean;{okamžitý príspevok - presvedčte sa sami, či to chcete} Column.Grid.DataSource.DataSet.Post;{tu môžete pridať ďalšie funkcie, ktoré sa spracujú po vykonaní zmeny}   koniec; koniec; // OnDrawColumnCell udalosť DBGrid1 procedúra TForm.DBGrid1DrawColumnCell (odosielateľ: TObject;const Rect: TRect; DataCol: Celé číslo; Stĺpec: TColumn; Štát: TGridDrawState); const CtrlState: radboolean z integer = (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK alebo DFCS_CHECKED); začať   ak (Column.Field.DataType = ftBoolean) potom   začať DBGrid1.Canvas.FillRect (Rect);ak VarIsNull (Column.Field.Value) potom DrawFrameControl (DBGrid1.Canvas.Handle, Rect, DFC_BUTTON, DFCS_BUTTONCHECK alebo DFCS_INACTIVE) {Sivo}     inak DrawFrameControl (DBGrid1.Canvas.Handle, Rect, DFC_BUTTON, CtrlStateColumn.Field.AsBoolean); {začiarknuté alebo nezačiarknuté}   koniec; koniec;

Navigátor tipov pre Delphi:
"Odstrániť duplicitné položky v TStringListe Delphi
„5 faktov, ktoré ste nevedeli o Delphi a triedach a ovládacích prvkoch VCL a dedičstva a vlastných nastavení a ...