Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TStringGrid, über mehrere Zellen malen (https://www.delphipraxis.net/112559-tstringgrid-ueber-mehrere-zellen-malen.html)

hoika 23. Apr 2008 13:28


TStringGrid, über mehrere Zellen malen
 
Hallo #,

basierend auf
1 und
2

will ich über mehrere Zellen malen.

Mein Code sieht so aus:
c ist Kürzel für StringGrid.Canvas
der DrawText-Versuch klappt auch nicht

Delphi-Quellcode:
(*
      DrawText(c.Handle, PChar(Cells[ACol,ARow]),
        Length(Cells[ACol,ARow]), ARect,
        DT_CALCRECT or DT_CENTER);
      ARect.Right:= ARect.Right+ARect.Right;
      DrawText(c.Handle, PChar(Cells[ACol,ARow]),
        Length(Cells[ACol,ARow]), ARect,
        DT_LEFT or DT_NOPREFIX);
*)

      SetTextAlign(c.Handle, TA_LEFT);
      c.TextOut(ARect.Left, ARect.Top, Cells[ACol,ARow]);
Was mache ich denn falsch ?
Er schneidet den Text immer ab und zeigt ihn nur in der einen Zelle.


< Edit: >
Habe gerade diesen Link gefunden und werde es mal prüfen.
3

< Edit2: >
Der Link3 klappt ;)
Jetzt wird aber immer noch die horizontale Linie gemalt.
Das liegt aber am DefaultDrawing.
Nehme ich das raus, sieht die Anzeige "doof" aus,
weil die ganzen Linien fehlen ;(


Heiko

shmia 23. Apr 2008 13:36

Re: TStringGrid, über mehrere Zellen malen
 
Du kannst grundsätzlich immer nur eine Zelle zeichnen.
Text, der über zwei Zellen reichen soll muss in zwei Zeichenvorgängen auf den Canvas gebracht werden.

bluesbear 23. Apr 2008 13:41

Re: TStringGrid, über mehrere Zellen malen
 
Vielleicht klappt es ja, vor dem zeichnen mit SelectClipRgn das clipping abzuschalten, bzw. die Region zu erweitern?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz