![]() |
Stringgrid: bestimmte Zeile färben
Hallo Leute,
auf die Gefahr, dass ihr mich steinigt, weil ich eurer Meinung nach nicht gegoogelt habe; aber ich habe es gemacht, aber nichts passendes gefunden, obwohl mein Problem ziemlich simpel ist: Ein User soll in einer Edit-Feld eine Zeilennummer (z.B: 4) eingeben, dann auf ein Button klicken und im Stringgrid wird die 4.Zeile rot markiert . Zwar habe ich oft gelesen, dass es die Funktion "OnDrawCell" gibt, aber ich weiss nicht, wie ich sie aufrufen soll: procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); --> wie rufe ich diese Fubnktion auf? was kommt als Parameter Rect? was ist State? danke |
AW: Stringgrid: bestimmte Zeile färben
Hallo...
Zitat:
Zitat:
Zitat:
Die Zelle ist aktuell ausgewählt. gdFocused Die Zelle hat den Eingabefokus. gdFixed Die Zelle befindet sich im fixierten Bereich des Gitters. gdRowSelected Die Zeile ist ausgewählt. gdHotTrack Die Zelle wird hervorgehoben, wenn der Mauszeiger darüber bewegt wird. gdPressed Auf die Zelle wird geklickt. ...aus der Delphi Hilfe |
AW: Stringgrid: bestimmte Zeile färben
Hi,
danke für die antwort. rufe ich innerhalb des ButtonClicks diese Funktion so auf? procedure TForm1.btnFaerbeZeileClick(Sender: TObject); begin StringGrid1DrawCell(StringGrid1, 0,4, Rect: TRect; State: TGridDrawState); end; was schreibe ich für Rect ? State: keines der von dir unten geschriebenen Zustände trifft zu, da der User die Zeil nicht vorher anklickt, sondern eine 4 in ein Edit-Feld einträgt. |
AW: Stringgrid: bestimmte Zeile färben
Benutze doch einfach mal die Suche.
|
AW: Stringgrid: bestimmte Zeile färben
Hi,
Zitat:
Zitat:
|
AW: Stringgrid: bestimmte Zeile färben
Rect ist das Rechteck, dass neu gezeichnet werden soll.
Aber ich glaube du hast das System nicht verstanden. Diese Funktion musst nicht du aufrufen, sondern musst diese implementieren. Sie wird dann ( für jede Zelle) aufgerufen. In den Parametern werden dir dann die Werte der aktuellen ( zu zeichnenden) Zelle übergeben. |
AW: Stringgrid: bestimmte Zeile färben
Schau Dir mal
![]() Hinweis zur Beispielanwendung: fast alle Funktionalitäten aus dem Kontextmenü lassen sich nur dann anwenden, wenn eine Zelle 'spezialisiert' worden ist (erster Menüpunkt). |
AW: Stringgrid: bestimmte Zeile färben
Oder man nimmt gleich (Application.)MessageBox, die passt sich im Aussehen wenigstens der Windows-Version an und man kann auch da den Standard-Button setzen.
|
AW: Stringgrid: bestimmte Zeile färben
Um das niedergeschriebene mal mit einem simplen Beispiel zu belegen:
Delphi-Quellcode:
Wird dein Button geklickt, dann wird in die Variable DrawCellIndex die betreffende Zeile geschrieben. Danach z.B. einfach "Refresh" des Stringgrids aufrufen.
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin if (ARow <> DrawCellIndex) then stringgrid1.Canvas.Brush.Color := clWhite else stringgrid1.Canvas.Brush.Color := clGreen; stringgrid1.Canvas.FillRect(Rect); end; Sollte eigentlich funktionieren. Grüße Headbucket |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 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