Delphi-PRAXiS
Seite 5 von 11   « Erste     345 67     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   dbCheckbox und dbGrid mit Abfrage (https://www.delphipraxis.net/181286-dbcheckbox-und-dbgrid-mit-abfrage.html)

Dejan Vu 9. Aug 2014 21:42

AW: dbCheckbox und dbGrid mit Abfrage
 
Zitat:

Zitat von blutigerAnfänger (Beitrag 1268142)
Na im DrawColumnCell!!

Schau Dir mal den Code an. Dort wird verglichen, ob das Feld der darzustellenden Zelle/Spalte identisch mit dem Feld ist, welches in der TDBCheckBox hinterlegt ist. Welcher Feldname ist denn dort hinterlegt? Ich weiß es nämlich nicht. Schau doch mal bitte im Objektinspektor nach.

blutigerAnfänger 10. Aug 2014 16:16

AW: dbCheckbox und dbGrid mit Abfrage
 
Also ich hab jetzt die Datenbank erneuert, die Domain nach Vorschrift von Perlsau #16 mit IBExpert angelegt. Der Quelltext wurde rechtschreibmäßig (DBCheckbox.dataField := 'Feld' nach 'FELD') abgeändert. Und jetzt läuft gar nichts mehr. Fehlermeldung (ins Deutsche übersetzt): 'FELD' ist kein boolean Format.
Was jetzt? Muß die Domain aktiert werden? oder Wie bekomme ich nun ein boolean Feld, da Firebird keines mitliefert.

Dejan Vu 10. Aug 2014 16:59

AW: dbCheckbox und dbGrid mit Abfrage
 
Zitat:

Zitat von blutigerAnfänger (Beitrag 1268220)
...(DBCheckbox.dataField := 'Feld' nach 'FELD') ...

mit 'FELD' ist der Name des Feldes gemeint, welches Du als Checkbox darstellen willst :wall:

Wie heißen deine drei Felder/Spaltennamen?

blutigerAnfänger 10. Aug 2014 17:58

AW: dbCheckbox und dbGrid mit Abfrage
 
1.Feld FELD Typ Integer
2.Feld NAME Typ varchar(50)
3.Feld BEZEICHNUNG Typ varchar(250)

Dejan Vu 10. Aug 2014 19:04

AW: dbCheckbox und dbGrid mit Abfrage
 
Ok. Du musst lernen, Programme zu debuggen, also Breakpoints setzen, schrittweise durchlaufen etc. Dann wäre der Fehler sofort aufgefallen. Auch ist es wichtig, der IDE zu sagen, den integrierten Debugger zu verwenden und bei Exceptions anzuhalten (alles in den Debug-Optionen).

Also
1. 'FELD' statt 'Feld' (hast Du schon beobachtet)
2. Auf das Feld kann nicht per 'AsBoolean' zugegriffen werden, denn es ist ja kein Boolean-Feld. Ersetze also die eine Zeile, füge noch die fehlenden Events hinzu (dient dem Editieren) und dann sollte das Problem gelöst sein.

Delphi-Quellcode:
procedure TForm1.DBGrid1DrawColumnCell(
  Sender: TObject; const Rect: TRect; DataCol:
  Integer; Column: TColumn; State: TGridDrawState);

const IsChecked : array[Boolean] of Integer =
      (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED);
var
  DrawState: Integer;
  DrawRect: TRect;
begin
  if (gdFocused in State) then
  begin
    if (Column.Field.FieldName = DBCheckBox1.DataField) then
    begin
     DBCheckBox1.Left := Rect.Left + DBGrid1.Left + 2;
     DBCheckBox1.Top := Rect.Top + DBGrid1.top + 2;
     DBCheckBox1.Width := Rect.Right - Rect.Left;
     DBCheckBox1.Height := Rect.Bottom - Rect.Top;

     DBCheckBox1.Visible := True;
    end
  end
  else
  begin
    if (Column.Field.FieldName = DBCheckBox1.DataField) then
    begin
      DrawRect:=Rect;
      InflateRect(DrawRect,-1,-1);
      DrawState := ISChecked[Column.Field.AsInteger = 1]; // <----
      DBGrid1.Canvas.FillRect(Rect);
      DrawFrameControl(DBGrid1.Canvas.Handle, DrawRect,
                       DFC_BUTTON, DrawState);
    end;
  end;
end;

Lemmy 14. Aug 2014 14:22

AW: dbCheckbox und dbGrid mit Abfrage
 
Zitat:

Zitat von Dejan Vu (Beitrag 1268668)
Was soll das denn? User-Bashing? Sowas von blöd.

ja, nur anders rum.. Heute angemeldet, ne Profilseite die IMHO in Richtung Beleidigung geht.. Ich habe das Team schon informiert, ich hoffe es schaut jemand vorbei bevor das hier ausartet....

Dejan Vu 14. Aug 2014 14:27

AW: dbCheckbox und dbGrid mit Abfrage
 
Gut. Ich auch. Streiten/nicht einer Meinung sein ist eine Sache, aber das geht zu weit.

blutigerAnfänger 15. Aug 2014 16:31

AW: dbCheckbox und dbGrid mit Abfrage
 
Es funktioniert !!:-D

Danke an alle.
Zitat:

Zitat von Lemmy (Beitrag 1268670)
Zitat:

Zitat von Dejan Vu (Beitrag 1268668)
Was soll das denn? User-Bashing? Sowas von blöd.

Heute angemeldet, ne Profilseite die IMHO in Richtung Beleidigung geht.. Ich habe das Team schon informiert, ich hoffe es schaut jemand vorbei bevor das hier ausartet....

Zitat:

Zitat von Dejan Vu (Beitrag 1268671)
Gut. Ich auch. Streiten/nicht einer Meinung sein ist eine Sache, aber das geht zu weit.

Ich weiß hier nicht worum es geht. Muß ich hoffentlich auch nicht.

Dejan Vu 16. Aug 2014 07:31

AW: dbCheckbox und dbGrid mit Abfrage
 
Das war nur irgendein Vollpfosten, der hier rumgepöbelt hat. Seine Beiträge wurden dann entfernt.

blutigerAnfänger 30. Aug 2014 16:59

AW: dbCheckbox und dbGrid mit Abfrage
 
Ich dachte ich hätte es geschafft.
Zitat:

Zitat von blutigerAnfänger (Beitrag 1267332)

Ziel ist es: Die zu editierenden Datensätze sollen aus Abfragen der Datentabelle erzeugt werden und bei veränderung von true oder false über UPDATE zurückgeschrieben werden.


Delphi-Quellcode:
procedure TForm1.DBCheckBox1Click(Sender: TObject);
begin

DBGrid1.Columns[0].ReadOnly :=False;

  if DBCheckBox1.Checked = true then
    begin
     DBCheckBox1.Checked := False;
    end ;

{if DBCheckBox1.Checked = False then
     begin
     DBCheckBox1.Checked := True;
     end ;
 }
end;
Die Veränderung von true auf false und false auf true funktioniert nicht. Ich kann zwar eine Checkbox mit Haken auf false setzen, aber die Änderung wird nicht übernommen. Das Löschen der geschweiften Klammern erzeugt auch noch einen Stack Überlauf.

Für die Übernahme der Änderung in die Datenbank habe ich folgenden Code:
Delphi-Quellcode:
procedure TForm1.inDBspeichernClick(Sender: TObject);
begin

  with Query1 do
  begin
    Active:=False;
    SQL.Clear;
    SQL.Add('Update Tabelle set FELD ');
    Active:=True;
  end;

end;
Auch da funktioniert was nicht, FELD wird gar nicht gefunden! ? Obwohl es in der AbfrageProzedur läuft.

Mittlerweile bin ich wieder auf Hilfe angewiesen. Danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:08 Uhr.
Seite 5 von 11   « Erste     345 67     Letzte »    

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-2025 by Thomas Breitkreuz