![]() |
Re: TDBAdvGrid - Zeilen einfärben
Danke funktioniert perfekt...
habe jetzt nur das Problem, die daten in das grid zu schreiben... Folgendes habe ich versucht:
Delphi-Quellcode:
aber das funktioniert nicht, er bringt einen Fehler, das das Dataset nicht editierbar ist...
var aCell : String;
begin aCell := Grid1.SelectedField.AsString; If ((Query1.FieldByName( 'SAT' ).AsInteger > 0) and (aCol > 0) and (aRow >0)) then begin Grid1.Canvas.Brush.Color := Query1.FieldByName( 'SAT' ).AsInteger; end else begin Grid1.Canvas.Brush.Color := clWhite; end; Grid1.canvas.FillRect( Rect ); Grid1.SelectedField.Text := aCell; Gibts es einen anderen weg? |
Re: TDBAdvGrid - Zeilen einfärben
Kannst Du mal die ganze Methode im Zusammenhang posten? Das scheint ein Kontext-Problem zu sein.
|
Re: TDBAdvGrid - Zeilen einfärben
Delphi-Quellcode:
procedure TfrmMain.Grid1DrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState); var aCell : String; begin aCell := Grid1.SelectedField.AsString; If ((Query1.FieldByName( 'SAT' ).AsInteger > 0) and (aCol > 0) and (aRow >0)) then begin Grid1.Canvas.Brush.Color := Query1.FieldByName( 'SAT' ).AsInteger; end else begin Grid1.Canvas.Brush.Color := clWhite; end; Grid1.canvas.FillRect( Rect ); Grid1.SelectedField.Text := aCell; end; |
Re: TDBAdvGrid - Zeilen einfärben
Ich kann beim besten Willen nicht erkennen, wo Du das Dataset editieren willst, da werden doch nur Werte abgefragt :gruebel:
|
Re: TDBAdvGrid - Zeilen einfärben
hier mal die genaue Medlung:
Query1: Dataset not in edit or insert mode. |
Re: TDBAdvGrid - Zeilen einfärben
Versuchst Du irgendwo anders, Daten zu ändern? Hast Du mal einen Breakpoint gesetzt? Wo tritt der Fehler auf?
|
Re: TDBAdvGrid - Zeilen einfärben
nein ich editiewre die daten nicht,
der Fehler tritt hier auf:
Delphi-Quellcode:
SelectedField.Text := aCell;
|
Re: TDBAdvGrid - Zeilen einfärben
Ah, das wird die interne Datenanbindung sein. Mach doch mal ein Canvas.Textout daraus.
|
Re: TDBAdvGrid - Zeilen einfärben
wunderbar, das hat geklappt.
Das Problem ist jetzt nur, dass überall der gleich Wert drin steht. Da aber das Grid in FormShow gefüllt wird, und der Fokus im Grid natürlich immer auf dem 1. Feld. Wie ermittel ich die Zelle durch row und col? |
Re: TDBAdvGrid - Zeilen einfärben
Da ich die TMS-Komponenten nicht habe, rate ich mal ins Blaue:
Delphi-Quellcode:
alterInhalt := Cells[ACol,ARow];
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:07 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-2025 by Thomas Breitkreuz