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 Komponente mit Canvas & Handle (https://www.delphipraxis.net/108672-komponente-mit-canvas-handle.html)

Flips 17. Feb 2008 16:24


Komponente mit Canvas & Handle
 
Hi.

Ich suche eine Komponente mit Canvas und Handle.
Bis auf TForm kenne ich keine.
Habs schon mit TFrame, TPanel, TImage (TBitmap.Handle geht nicht), TPaintbox probiert, aber die haben alle entweder Canvas oder ein Handle, nicht aber beides.
Also gibt es : Eine Komponente mit beiden? Eine Möglichkeit das Handle einer Komponente zu ermitteln? Eine Möglichkeit eine Komponente mit Canvas zu versehen? Am liebsten wäre mir ein Panel mit Canvas.

Thx,
lg Flips

grenzgaenger 17. Feb 2008 16:42

Re: Komponente mit Canvas & Handle
 
Zitat:

Zitat von Flips
Am liebsten wäre mir ein Panel mit Canvas.

ein panel hat ein canvas... schon entdeckt...

Apollonius 17. Feb 2008 16:47

Re: Komponente mit Canvas & Handle
 
TCustomControl und dessen Ableitungen implementieren Handle und Canvas.

Flips 17. Feb 2008 16:50

Re: Komponente mit Canvas & Handle
 
Bei mir hat ein Panel kein Canvas :-X
[Pascal Fehler] main.pas(508): E2362 Auf protected-Symbol TCustomControl.Canvas kann nicht zugegriffen werden

Apollonius 17. Feb 2008 16:54

Re: Komponente mit Canvas & Handle
 
Es ist nicht verboten, auch mal in die Hilfe zu schauen. :!: Zu TPanel steht da, dass es von TCustomControl abgeleitet ist. Und zu TCustomControl.Canvas steht da, dass die Sichtbarkeit protected ist.

Zum Edit: Da steht doch eindeutig, dass es Canvas gibt.

Flips 17. Feb 2008 16:55

Re: Komponente mit Canvas & Handle
 
Ja aber um drauf zugreifen zu können müsste ich es dann ja nach public verschieben oder nicht?

Zitat:

Canvas ist eine als protected deklarierte Eigenschaft, die normalerweise in Nachkommen von TCustomControl als public neu deklariert wird.
OK, hilfe ist echt nicht schlecht :-)

Apollonius 17. Feb 2008 16:59

Re: Komponente mit Canvas & Handle
 
Nein. Ein einfacher Hack reicht:
Delphi-Quellcode:
TCustomControlHack = class(TCustomControl);
Das musst du in der Unit, in der du auf Canvas zugreifen willst, einfügen - einbinden der Unit, in der der Hack deklariert wird, reicht nicht! Dann kannst du TPanel nach TCustomControlHack casten und auf Canvas zugreifen. Lass dich nur nicht erwischen, wenn du so etwas in .NET versuchst.

Flips 17. Feb 2008 17:01

Re: Komponente mit Canvas & Handle
 
Das ist cool :-)
Danke dir, wieder mal was neues gelernt.


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