Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Checkbox in Datenbank (https://www.delphipraxis.net/124818-checkbox-datenbank.html)

Thomas F 25. Nov 2008 20:48

Datenbank: ??? • Zugriff über: ???

Checkbox in Datenbank
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich möchte eine Datenbank anlegen , bei der im ersten Feld eine Checkbox ist
Schaut so ähnlich aus wie in einem Email-Programm.
Die Daten werden dann nur verarbeitet wenn "checked:=True"

Wie mach ich das am besten ?

mkinzler 25. Nov 2008 20:52

Re: Checkbox in Datenbank
 
Auf was zielt deine Frage ab auf den typ des Feldes in der Datenbank oder geht es dir um die Anzeige?

Thomas F 25. Nov 2008 21:01

Re: Checkbox in Datenbank
 
Zitat:

Zitat von mkinzler
Auf was zielt deine Frage ab auf den typ des Feldes in der Datenbank oder geht es dir um die Anzeige?

........um die Anzeige

Typ des Feldes = Boolean

Aber wie zeige ich das an ?

mkinzler 25. Nov 2008 21:05

Re: Checkbox in Datenbank
 
Z.B. mit einer DBCheckBox.
In einem Grid müsstest du das selber machen (gibt es Beispiele für) oder verwendest z.B. das JvDBGrid aus der JVCL.

haentschman 25. Nov 2008 21:15

Re: Checkbox in Datenbank
 
Hallo...

du hast dann für den Status der CheckBox ein Feld in der Datenbank. Vorzugsweise Integer. True=1 False=0. Mit dem JvDBGrid aus der JVCL kannst du dann das Feld auch wieder als Checkbox im Grid darstellen. Du mußt auch in den Optionen den Wert für True und den Wert für False zuordnen.

:hi:

Zitat:

Typ des Feldes = Boolean
...Firebird z.B. kennt keinen Feldtyp Boolean, da nimmt man Integer 0/1 z.B.

Thomas F 25. Nov 2008 21:43

Re: Checkbox in Datenbank
 
Zitat:

Zitat von haentschman
Hallo...

du hast dann für den Status der CheckBox ein Feld in der Datenbank. Vorzugsweise Integer. True=1 False=0. Mit dem JvDBGrid aus der JVCL kannst du dann das Feld auch wieder als Checkbox im Grid darstellen. Du mußt auch in den Optionen den Wert für True und den Wert für False zuordnen.

:hi:

Zitat:

Typ des Feldes = Boolean
...Firebird z.B. kennt keinen Feldtyp Boolean, da nimmt man Integer 0/1 z.B.

Ja, Danke

Wollte grade JVCL runterladen und installieren , funktioniert aber mit Delphi 2005 nicht, oder ?

Außerdem gibt es soviele Versionen(z.B. daily), ich blick nicht durch welche die richtige ist ?

mkinzler 25. Nov 2008 21:45

Re: Checkbox in Datenbank
 
http://www.delphipraxis.net/internal...ct.php?t=99550

blawen 25. Nov 2008 22:30

Re: Checkbox in Datenbank
 
Die aktuelle (freigegebene) JVCL-Version 3.34 findest Du hier: JVCL

Möglicher Ansatz:
Delphi-Quellcode:
procedure TForm2.JvDBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
                                         DataCol: Integer; Column: TColumn;
                                         State: TGridDrawState);
begin
  ColorGrid(jvDBGrid1, DMMain.ZQuery_read, Rect, DataCol, Column, State);
end;


procedure TForm2.ColorGrid(dbgIn: TjvDBGrid; qryIn: TZQuery; const Rect: TRect;
                           DataCol: Integer; Column: TColumn;
                           State: TGridDrawState);
var
  bValue: boolean;

begin
  { Feststellen ob die anzuzeigende Nachricht noch nicht gelesen wurde }
  if (NOT DMMain.ZQuery_read.IsEmpty) AND (Column.Index = 0) THEN
    if qryIn.FieldByName('lesen').AsString = '1'
      then DMMain.ImageList1.draw(jvDBGrid1.Canvas , rect.left+0,rect.top+2,0)
      else DMMain.ImageList1.draw(jvDBGrid1.Canvas , rect.left+0,rect.top+2,1);
end;

mkinzler 25. Nov 2008 22:32

Re: Checkbox in Datenbank
 
Oder man verwendet eine DBCheckBox als EditControl

Thomas F 26. Nov 2008 10:45

Re: Checkbox in Datenbank
 
Ich hab jetzt JVCL und JCL erfolgreich installiert

War aber ne schwere Geburt, ich hab ewig rumgemacht bis es geklappt hat

Ich hab dann die Setups runtergeladen, damit funktioniert es am besten

http://jcl.sourceforge.net/websetup/jcl/JCLSetup.exe
http://jvcl.sourceforge.net/websetup/jvcl/JVCLSetup.exe

Thomas F 26. Nov 2008 14:27

Re: Checkbox in Datenbank
 
Jetzt weiss ich leider immer noch nicht, wie die Checkbox in das JvDBGrid kommt :gruebel:

mkinzler 26. Nov 2008 14:32

Re: Checkbox in Datenbank
 
Richte sie als EditControl für das Feld ein

Thomas F 26. Nov 2008 18:44

Re: Checkbox in Datenbank
 
Hier steht was darüber ---->


http://delphi.about.com/od/usedbvcl/l/aa082003a.htm

Thomas F 28. Nov 2008 21:30

Re: Checkbox in Datenbank
 
Jetzt funktioniert es

Warum muß man immer doppelklicken, damit die Checkbox den Wert ändert ???

Und warum geht das nicht mit dem normalen DBGrid und DBCheckbox ?

blawen 30. Nov 2008 16:57

Re: Checkbox in Datenbank
 
Zitat:

Zitat von Thomas F
Warum muß man immer doppelklicken, damit die Checkbox den Wert ändert ???

Weil Du vermutlich das Ereignis "OnDblClick" verwendest?
Eine normales DBGrid funktioniert auch. Es ist im Prinzip auch möglich, die beiden Elemente zu vereinen, aber die Ansätze, die ich bisher gesehen habe, sind deutlich aufwändiger.

Thomas F 30. Nov 2008 17:58

Re: Checkbox in Datenbank
 
Zitat:

Zitat von blawen
Zitat:

Zitat von Thomas F
Warum muß man immer doppelklicken, damit die Checkbox den Wert ändert ???

Weil Du vermutlich das Ereignis "OnDblClick" verwendest?
Eine normales DBGrid funktioniert auch. Es ist im Prinzip auch möglich, die beiden Elemente zu vereinen, aber die Ansätze, die ich bisher gesehen habe, sind deutlich aufwändiger.

Ich hab kein Ereignis "OnDblClick" eingetragen
Beim ersten Klick bekommt die Zelle den Focus, beim zweiten Klick bekommt die Checkbox den Wert


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz