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/)
-   -   C++ Casting TObject -> TPanel (https://www.delphipraxis.net/150994-casting-tobject-tpanel.html)

MrSpock 2. Mai 2010 20:53


Casting TObject -> TPanel
 
Hallo,

ich habe in einer Methode des OnClick Ereignisses ja den Parameter TObject *Sender.

Wie kann ich diesen als TPanel casten und auf den Canvas zugreifen bzw. auf das Panel zeichnen?

Also so etwas wie in Pascal: (Sender as TPanel).Canvas.LineTo(20, 20);

Medium 2. Mai 2010 23:38

Re: Casting TObject -> TPanel
 
Harte Casts sehen in C so aus:
((TPanel)Sender).Canvas.Foo

In diesem Falle wäre allerdings ein dynamischer Cast die "elegantere" Wahl:
dynamic_cast<TPanel>(Sender)

Ob und wie da jetzt noch Dereferenzierungen/Adressoperatoren hin müssen kann ich leider nicht sagen, die verwirren mich immer :stupid:

MrSpock 3. Mai 2010 07:45

Re: Casting TObject -> TPanel
 
Hallo Medium,

ich habe es es jetzt so gemacht:

Code:
((TPanel *)Sender)->Color
Canvas gibt es bei einem TPanel nicht!?

DeddyH 3. Mai 2010 08:07

Re: Casting TObject -> TPanel
 
TPanel hat schon einen Canvas, dieser ist aber protected. Du wirst also eine Crackerklasse brauchen.

MrSpock 3. Mai 2010 09:25

Re: Casting TObject -> TPanel
 
Hallo DeddyH,

ich wollte erst ein Kreuz auf das Panel malen, werde aber jetzt einfach seine Farbe ändern, um zu kennzeichnen, dass es markiert ist.


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