![]() |
Datenbank: DBE • Zugriff über: SQL
DBGrid editieren einzelner Zellen
Hallo, habe leider im Forum diesbezüglich nichts gefunden.
Ich möchte gerne in einem DBGrid einzelne Zellen (nicht Spalten) editieren, alle anderen sollen schreibgeschützt sein. Habe mal folgendes versucht, klappt aber nicht so richtig !! Komischerweise kann ich immer noch ein Zeichen eingeben bzw. kann ich in der Zelle die Werte immer noch löschen. procedure TFormular1.Query1BeforeEdit(DataSet: TDataSet); begin if Query1.FieldByName('ABDAT').AsString <> '' then DBGrid1.Columns[3].ReadOnly := true else DBGrid1.Columns[3].ReadOnly := false; end; Würde mich über einen Tipp freuen Gruß Sandy |
Re: DBGrid editieren einzelner Zellen
Ich hoffe das hilft.
Delphi-Quellcode:
// für die Query welches die Daten für das Grid liefert wenn der Datensatz wechselt
// aber die Spalte gleich bleibt procedure TForm1.Query1AfterScroll(DataSet: TDataSet); begin if DBGrid1.SelectedField <> nil // nil ist immer readonly then begin // wenn nur bestimmte Spalten betroffen sind if ((DBGgrid1.Selectedindex = 3 ) then begin // wenn von einem Wert des aktuellen Datenzeile abhängig if Query1.FieldByName('ABDAT').AsString <> '' then DBGrid1.SelectedField.ReadOnly := true else DBGrid1.SelectedField.ReadOnly := false; end else DBGrid1.SelectedField.ReadOnly := false; end; end; // für das Grid wenn der Datensatz gleich bleibt aber die Spalte gewechselt wird procedure TForm1.DBGrid1ColEnter(Sender: TObject); begin if DBGrid1.SelectedField <> nil then begin if ((DBGrid1.Selectedindex = 3) then begin if Query1.FieldByName('ABDAT').AsString <> '' then DBGrid1.SelectedField.ReadOnly := true else DBGrid1.SelectedField.ReadOnly := false; end else DBGrid1.SelectedField.ReadOnly := false; end; end; |
Re: DBGrid editieren einzelner Zellen
Zitat:
ich habe mich über die in der VCL bei Grids eingebauten Editoren auch schon gewundert bis geärgert und habe dann teilweise folgende Brutallösung verwendet: auf Onclick einer Zelle erzeuge ich ein randloses Edit gleicher Position und Grösse und regle von da an alles selbst, bis die Eingabe mit Enter oder einem Click ausserhalb abgschlossen wird. Ist einiges an Arbeit, aber unvergleichlich flexibel. Gruss Reinhard |
Re: DBGrid editieren einzelner Zellen
Hallo Rheinhard,
super, hat heholfen, jetzt gehts. Vielen Dank Sandy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:29 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