AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken dbCheckbox und dbGrid mit Abfrage
Thema durchsuchen
Ansicht
Themen-Optionen

dbCheckbox und dbGrid mit Abfrage

Ein Thema von blutigerAnfänger · begonnen am 2. Aug 2014 · letzter Beitrag vom 3. Okt 2014
Antwort Antwort
Seite 5 von 11   « Erste     345 67     Letzte »    
Dejan Vu
(Gast)

n/a Beiträge
 
#41

AW: dbCheckbox und dbGrid mit Abfrage

  Alt 9. Aug 2014, 22:42
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.
  Mit Zitat antworten Zitat
blutigerAnfänger

Registriert seit: 23. Mär 2010
82 Beiträge
 
#42

AW: dbCheckbox und dbGrid mit Abfrage

  Alt 10. Aug 2014, 17:16
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.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#43

AW: dbCheckbox und dbGrid mit Abfrage

  Alt 10. Aug 2014, 17:59
...(DBCheckbox.dataField := 'Feld' nach 'FELD') ...
mit 'FELD' ist der Name des Feldes gemeint, welches Du als Checkbox darstellen willst

Wie heißen deine drei Felder/Spaltennamen?
  Mit Zitat antworten Zitat
blutigerAnfänger

Registriert seit: 23. Mär 2010
82 Beiträge
 
#44

AW: dbCheckbox und dbGrid mit Abfrage

  Alt 10. Aug 2014, 18:58
1.Feld FELD Typ Integer
2.Feld NAME Typ varchar(50)
3.Feld BEZEICHNUNG Typ varchar(250)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#45

AW: dbCheckbox und dbGrid mit Abfrage

  Alt 10. Aug 2014, 20:04
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;
  Mit Zitat antworten Zitat
Alt 14. Aug 2014, 15:18     Erstellt von Dejan Vu
Dieser Beitrag wurde von TBx gelöscht. - Grund: siehe voriger Beitrag
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#46

AW: dbCheckbox und dbGrid mit Abfrage

  Alt 14. Aug 2014, 15:22
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....
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#47

AW: dbCheckbox und dbGrid mit Abfrage

  Alt 14. Aug 2014, 15:27
Gut. Ich auch. Streiten/nicht einer Meinung sein ist eine Sache, aber das geht zu weit.
  Mit Zitat antworten Zitat
blutigerAnfänger

Registriert seit: 23. Mär 2010
82 Beiträge
 
#48

AW: dbCheckbox und dbGrid mit Abfrage

  Alt 15. Aug 2014, 17:31
Es funktioniert !!

Danke an alle.
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....
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.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#49

AW: dbCheckbox und dbGrid mit Abfrage

  Alt 16. Aug 2014, 08:31
Das war nur irgendein Vollpfosten, der hier rumgepöbelt hat. Seine Beiträge wurden dann entfernt.
  Mit Zitat antworten Zitat
blutigerAnfänger

Registriert seit: 23. Mär 2010
82 Beiträge
 
#50

AW: dbCheckbox und dbGrid mit Abfrage

  Alt 30. Aug 2014, 17:59
Ich dachte ich hätte es geschafft.

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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 11   « Erste     345 67     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz