![]() |
Datenbank: Paradox • Version: 7 • Zugriff über: TTable
Im DBGrid auf Kommando bestimmte Felder färben
Also, ich hab ein DBGrid.
In dem Grid sind nur Nummern eingetragen, manchmal aber auch nichts. Wenn man eine beliebige Zelle im DBGrid anklickt (markiert), sollen alle anderen Zellen mit gleichem Wert einen blauen/roten Rand kriegen. Wie man eine Zelle mit einem bestimmten Wert einfärbt, weiss ich schon. Wie kann ich das machen? Ideen, Anregungen, Voschläge??? DANKE! |
Re: Im DBGrid auf Kommando bestimmte Felder färben
hallo. Benutze die Suche :???: (wurde mir auch immer gesagt)
![]() :wink: |
Re: Im DBGrid auf Kommando bestimmte Felder färben
Sehr schön. Ich finde mit der Suchfunktion nichts darüber.
Nun, mein Problem ist nicht wie ich die Farbe eines Feldes ändere. DBGrid zeichnet wahrscheinlich nur wenns notwendig ist. Wenn ich also mit der Pfeiltaste im Grid navigiere, dann ändert sich nichts. Die Farben sollten sich in Echtzeit ändern. Eine mögliche Lösung wäre, das Draw-Ereignis vom Grid auszulösen. Ich weiss aber auch nicht wo ich das finden kann!! |
Re: Im DBGrid auf Kommando bestimmte Felder färben
DataSoucre.onChange(Sender);
begin Dbgrib.refresh; end; |
Re: Im DBGrid auf Kommando bestimmte Felder färben
Danke.
Nach einigem Rumprobieren funzt das prima(sogar ohne dem refresh). Jetzt hab ich nur noch ein einziges Problem, eine Anweisung:
Delphi-Quellcode:
Damit will ich feststellen, ob der Inhalt von der gerade gezeichneten Zelle der gleiche ist wie der von der markierten Zelle...
procedure TMainForm.DBAllGridsDrawColumnCell(Sender: TObject;const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin if (Zeiten.FieldByName(IntToStr(DataCol)).AsVariant = DBZeitGrid.SelectedField.Value) then begin ... // ^da end; end; Funktioniert aber nicht so wie ichs will... |
Re: Im DBGrid auf Kommando bestimmte Felder färben
Hai rascalpo,
Zitat:
![]() ![]() Ungetestet könnte das dann so aussehen:
Delphi-Quellcode:
Oder aber, wenn Du den Feldnamen verwenden möchtest dann so:
procedure TDemoForm.DBAllGridsDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: integer; Column: TColumn; State: TGridDrawState); begin with (Sender as TDBGrid) do begin if (DataSource.DataSet.Fields[DataCol].AsVariant = SelectedField.Value) then begin // end; end; end;
Delphi-Quellcode:
procedure TDemoForm.DBAllGridsDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: integer; Column: TColumn; State: TGridDrawState); begin with (Sender as TDBGrid) do begin if (DataSource.DataSet.FieldByName(Column.FieldName).AsVariant = SelectedField.Value) then begin // end; end; end; |
Re: Im DBGrid auf Kommando bestimmte Felder färben
Jetzt hab ichs umgeändert.
jetzt markiert er die ganze spalte, und alles drum herum, ausser dem in der Zeile, in der sich das markierte Feld befindet... :?: :?
Delphi-Quellcode:
funktioniert genausowenig....
if (Zeiten.FieldByName(Column.FieldName).AsVariant = DBZeitGrid.SelectedField.Value) then begin
ich will in OnDrawColumnCell prüfen, ob der Wert im gerade gezeichnetem Feld mit dem im gerade markiertem übereinstimmt. was mach ich falsch??? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:25 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