![]() |
StringGrid OnDrawCell, eigener Inhalt wird überschrieben, wenn Zelle selektiert
Liste der Anhänge anzeigen (Anzahl: 1)
Hiho, ich nutze die Standard Windows VCL. Im OnDrawCell möchte ich gerne in bestimmten Fällen den Inhalt einer Zelle ändern. (Es soll später ein kleines Bild in die Zelle, der Zelltext soll eingerückt werden).
Das Einrücken übernehme ich nun testweise im OnDrawCell, was auch klappt, bis die entsprechende Zelle selektiert ist:
Delphi-Quellcode:
Ergebnis: Siehe Anhang: Links: Zelle nicht selektiert, rechts: Zelle selektiert.
if (arow>0) and (acol=1) then
begin if pos('TICKETNUMBER',orderby)>0 then begin if (DL[arow-1].ticketNumber<>-1) and (ExitsSameTicketNumberBefore(arow-1, DL[arow-1].ticketNumber)) then begin str:='>>'+sgDataList.Cells[ACol, ARow]; sgDataList.Canvas.TextRect(Rect,Rect.Left + 2,Rect.top+((Rect.Bottom-Rect.top)-sgDataList.Canvas.TextHeight(str)) div 2,str); end; end; Was (edit) kann (/edit) ich machen, außer komplett auf ein DrawGrid (edit) zu wechseln (/edit)? Danke und besten Gruß, Michael |
AW: StringGrid OnDrawCell, eigener Inhalt wird überschrieben, wenn Zelle selektiert
Zitat:
Ist das die ganze Methode oder nur ein Teil davon? Poste doch mal alles bitte! Rufst du vielleicht irgendwo inherited OnDrawCell() auf, wo es nicht sein sollte? |
AW: StringGrid OnDrawCell, eigener Inhalt wird überschrieben, wenn Zelle selektiert
Vielleicht den Canvas vorher löschen bevor du den Zelleninhalt schreibst. Unterscheidest du nach Selected?
|
AW: StringGrid OnDrawCell, eigener Inhalt wird überschrieben, wenn Zelle selektiert
Zitat:
@Hobby-Programmierer: Nein, ich unterschiede nicht nach "Selected", das ist ja, was mich wundert. State:TGridDrawState wird bei mir NICHT abgefragt. |
AW: StringGrid OnDrawCell, eigener Inhalt wird überschrieben, wenn Zelle selektiert
Aber wenn die Zelle "selected" ist wird ja zumindestens der Hintergrund schön gemalt, wenn auch der Inhalt anders gezeichnet wird??
Das mit der Grammatik interessiert mich aber auch "Was kann ich machen, außer komplett auf ein DrawGrid ????? " Gruß K-H Zusatz: Zitat:
|
AW: StringGrid OnDrawCell, eigener Inhalt wird überschrieben, wenn Zelle selektiert
Zitat:
|
AW: StringGrid OnDrawCell, eigener Inhalt wird überschrieben, wenn Zelle selektiert
Zitat:
Es scheint so zu sein, als würde NACH dem OnDrawCell noch der Selectedbereich inkl. Text gezeichnet. Vielleicht liegt es daran, dass ich einen Delphi XE2 VCL-Style verwende? |
AW: StringGrid OnDrawCell, eigener Inhalt wird überschrieben, wenn Zelle selektiert
Nabend,
ich hatte deine Frage falsch verstanden! Du unterliegst dem Logikfehler beim 'malen' eine Auswahl über den Zellinhalt zu treffen. Das
Delphi-Quellcode:
- Event ist dafür denkbar ungeeignet, denn selber zeichnen möchtest du doch eigentlich gar nicht.
DrawCell
Den Zelleninhalt würde ich entweder in
Delphi-Quellcode:
oder noch besser in
OnClick
Delphi-Quellcode:
ändern.
SelectCell
LG Mario |
AW: StringGrid OnDrawCell, eigener Inhalt wird überschrieben, wenn Zelle selektiert
Zitat:
Grüße und besten Dank an alle, Michael |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:16 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