![]() |
Zeichnen von Zellen im Stringgrid unterdrücken
Moin,
ich möchte Text in einem StringGrid über mehrere Zeilen zentrieren. Im OnDrawCell vergrößere ich das Rect und schreibe dann den Text ins neue Rect. Danach werden die nachfolgenden Zellen aber darüber gezeichnet, so dass mein Text weg ist. Gibt es da einen Trick, wie das Zeichnen einzelner Zellen zu unterbinden ist oder gibt es dafür einen anderen Ansatz? Danke, Messie |
Re: Zeichnen von Zellen im Stringgrid unterdrücken
Du solltest halt in den Zellen, die du mit dem Text übermalst, nichts anderes zeichnen (FillRect, etc.) Ansonsten mach ich das nämlich genau so.
Vielleicht mal die OnDrawCell Routine posten. |
Re: Zeichnen von Zellen im Stringgrid unterdrücken
Zitat:
Delphi-Quellcode:
eine leere Zelle wird aber doch normalerweise gezeichnet. Kannst Du das irgendwie abschalten?
if (ARow = Index1) then
begin if (ACol = 3) or (ACol = 8) then //Beschriftungsfelder begin with Sender as TTntStringGrid do begin s := Cells[ACol,ARow]; Rect.Right := Rect.Right + (Rect.Right - Rect.Left) * 3; Canvas.FillRect(Rect); DrawTextW(Canvas.Handle, PWideChar(s),Length(s),Rect,DT_CENTER or DT_VCenter); end; end else begin exit; end; end Grüße, Messie |
Re: Zeichnen von Zellen im Stringgrid unterdrücken
Habe 'ne ganze Weile nix mit dem Stringrid gemacht, aber die Lösung ist wohl, dass du das nicht in der ersten Zelle für die nächsten, sondern in der letzten Zelle für alle vrohergehenden Zellen zeichnest. Also: Du willst die Zellen 3-5 verbinden, dann wird deine Zeichenaktion erst tätig, wenn die Zelle 5 gezeichnet werden soll...
|
Re: Zeichnen von Zellen im Stringgrid unterdrücken
Dem muss ich widersprechen, ich mach das genauso, das ich in der ersten "verbundenen" Zelle male und dann nicht mehr.
Unterschied zu meiner Routine: Ich benutze ein TStringGrid. TTntStringGrid kenne ich gar nicht. |
Re: Zeichnen von Zellen im Stringgrid unterdrücken
Widerspruch angenommen! Habe nachgesehen: Es funktioniert auch in der ersten verbundenen Zelle - Sorry
|
Re: Zeichnen von Zellen im Stringgrid unterdrücken
Also das mit dem rückwärts Zeichnen klappt gut! Sieht so aus, als würden leere Zellen im TStringGrid nicht, aber im TTntStringGrid immer gezeichnet.
Danke, Messie |
Re: Zeichnen von Zellen im Stringgrid unterdrücken
Das geht aber leider über die ganze Zeilenlänge....wie kann ich jetzt übereinanderliegende Zellen verbinden, nur 2 und nicht alle???
|
Re: Zeichnen von Zellen im Stringgrid unterdrücken
Hallo,
Du musst für jede der zusammengehörigen Zellen den gleichen Bereich und das gleiche zeichnen. |
Re: Zeichnen von Zellen im Stringgrid unterdrücken
Zitat:
Grüße, Messie |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:03 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