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 Wie Komponente(PaintBox) in StringGrid1.Cells[2,3] ? (https://www.delphipraxis.net/52969-wie-komponente-paintbox-stringgrid1-cells%5B2-3%5D.html)

EccoBravo 7. Sep 2005 15:53


Wie Komponente(PaintBox) in StringGrid1.Cells[2,3] ?
 
Hallo,
Diese Frage ist nun ernst gemeint -
Ich habe eine Komponente - abgeleitet von TPaintBox (Canvas-Objekt) mit der ich verschiedene "Bilder" drawen kann.
Nun möchte ich diese "Bilder", angefertigt mit der Komponente(TPaintBox), in Zellen eines StringGrid1 bekommen.

Wie geht das

Vielen dank

E. B.

MarcoWarm 7. Sep 2005 16:02

Re: Wie Komponente(PaintBox) in StringGrid1.Cells[2,3] ?
 
du brauchst nicht erst ne Paintbox um irgendwas zu zeichnen.... du kannst direkt auf die Canvas der einzelnen Zellen zeichnen.

Im folgenden ein Beispiel, wie du Zellen einfärben kannst

Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  if odd(ARow) then begin //bei ungeraden Zeilen
    StringGrid1.Canvas.Brush.Color := clYellow;
    StringGrid1.Canvas.FillRect(Rect);
  end;
end;

EccoBravo 7. Sep 2005 16:09

Re: Wie Komponente(PaintBox) in StringGrid1.Cells[2,3] ?
 
Danke, soweit ist es mir klar,
aber ich habe eine "alte" Komponente, die ein komplizierteres Bild zeichet, und dieses Bild möchte ich in die Zelle des StringGrids

Innerhalb des StringGrids Die Zeichnung neu zu programmieren ist mir zu umständlich, zumal ich diese Bilder an unterschiedlichen Stellen des StringGrids aufrufen möchte

Danke

E. B.

EccoBravo 7. Sep 2005 16:11

Re: Wie Komponente(PaintBox) in StringGrid1.Cells[2,3] ?
 
Hier nochmal:
ich möchte die Frage noch erweitern:

Ausserdem möchte ich TChart1.. in das StringGrid1

Danke E. B.

MarcoWarm 7. Sep 2005 16:21

Re: Wie Komponente(PaintBox) in StringGrid1.Cells[2,3] ?
 
zu der Zeichnung:

bei Paintbox.OnPaint wird ja deine Zeichnung erstellt... Was spricht dagegen das was bei dem Ereignis passiert in eine eigene Prozedur

MakeZeichnung(Canvas: TCanvas)

zu verschieben und dann im OnPaint der Paintbox und im StringGrid aufzurufen?

marabu 7. Sep 2005 16:22

Re: Wie Komponente(PaintBox) in StringGrid1.Cells[2,3] ?
 
Hallo E.

die Win API Funktion StretchBlt() könnte das sein, was dich glücklich macht.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 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