![]() |
erledigt - Stringgrid - Reihe selektieren ohne RowSelect
Mahlzeit DP,
ich arbeite zurzeit noch an meinem Stringgrid. Bei diesem kann man, wenn man auf die oberste Reihe (ARow = 0) klickt, die Tabelle sortieren. Um dies zu ermöglichen, frage ich bei einem OnClick ab, ob die selektierte Reihe = 0 ist und danach erfolgt jetzt nach Spalte die entsprechende Sortierfunktion. Allerdings möchte ich auch die ganze Reihe, wenn eine Zelle selektiert ist, farbig hervorheben. Dazu hatte ich ursprünglich RowSelect an. Wenn allerdings RowSelect an ist, komme ich nicht mehr an die aktuell selektierte Spalte. Nun möchte ichc RowSelect selbst malen, dazu habe ich mir überlegt, dass ich im OnCellDraw-Event abfrage, ob die aktuell selektierte Reihe = der Reihe ist, die gerade gemalt wird. Ist dem so, so soll die Zelle farbig gemalt werden. Im Quelltext sieht dies so aus:
Delphi-Quellcode:
Wenn ich nun mein StringGrid anzeigen lassen, so wird die oberste Reihe (die einzige Reihe) auch erfolgreich angemalt. Wenn ich nun allerdings Daten reinlade und eine andere Zelle markiere, kommt es zu Fehlern. Wo liegt der Fehler im Quelltext? (DefaultDrawing ist aus)
if ARow = sgrdOverview.Row then
begin sgrdOverview.Canvas.Brush.Color := clHighlight; sgrdOverview.Canvas.Font.Color := clHighlightText end else begin sgrdOverview.Canvas.Brush.Color := clWindow; sgrdOverview.Canvas.Font.Color := clWindowText; end; Liebe Grüße, Max |
AW: Stringgrid - Reihe selektieren ohne RowSelect
Hi aurikel_Max,
ich würde bei RowSelect = true bleiben. Damit ersparst Du Dir die Zeichenprobleme. Du kommst einfach an die gewünschte Spalte, indem Du z.B. beim MouseDown auf die Kopfzeile die Methode MouseToCell verwendest. Grüsse, blauweiss |
AW: Stringgrid - Reihe selektieren ohne RowSelect
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:49 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