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 Dynamisch erstellte Komponenten ansprechen (https://www.delphipraxis.net/91615-dynamisch-erstellte-komponenten-ansprechen.html)

Zead 7. Mai 2007 20:50


Dynamisch erstellte Komponenten ansprechen
 
Hallo!

In meiner Anwendung soll man beliebig viele Timages auf einem MDIChild erstellen können.
Wenn man auf diese Timages klickt soll ein OnClick Ereignis ausgelöst werden, dass auf das Timage bezogen ist, was es auslöst.
Da ich im Vorfeld nicht weiss wieviele Timages der Anwender erstellt, kann ich die Onclick Prozeduren nicht für jedes Timage schreiben. Sie müssen sich also alle eine Prozedur teilen.

Mein Problem ist nun: Wie finde ich raus, welches Timage das Onclick Ereignis ausgelöst hat?
Der Sender wird ja nur als TObject deklariert.

Jemand ne Idee bzw. ne Alternative?

Neutral General 7. Mai 2007 20:52

Re: Dynamisch erstellte Komponenten ansprechen
 
Hi,

Nein alternativen hab ich nicht aber einen Vorschlag:

Delphi-Quellcode:
(Sender as TImage) // sanft
// ODER
TImage(Sender) // unsanft
Ich persönlich benutze gerne die unsanfte Methode :mrgreen:

Gruß
Neutral General

Zead 7. Mai 2007 20:58

Re: Dynamisch erstellte Komponenten ansprechen
 
Aha...das hilft mir weiter! Danke für die ultraschnelle Antwort! :-D

Delphi-Laie 2. Apr 2013 15:48

AW: Re: Dynamisch erstellte Komponenten ansprechen
 
Entschuldigung bitte, wenn ich diese sehr alte Diskussion wieder aufwärme!

Zitat:

Zitat von Neutral General (Beitrag 622075)
...Vorschlag:

Delphi-Quellcode:
(Sender as TImage) // sanft
// ODER
TImage(Sender) // unsanft
Ich persönlich benutze gerne die unsanfte Methode :mrgreen:

Was meinst Du mit "sanft" und "unsanft", und warum bevorzugst Du letztere, Neutral General?

stahli 2. Apr 2013 16:05

AW: Dynamisch erstellte Komponenten ansprechen
 
"(Sender as TImage)" prüft, ob der Typ passt und gibt andernfalls einen Fehlerhinweis aus.

"TImage(Sender)" castet ohne Prüfung was zu unvorhergesehehenen Problemen führen kann (z.B. wenn Sender ein Panel ist).
Wenn sicher gestellt ist, dass der Typ passt, kommt es aber auf´s selbe raus (allerdings ist die zweite Variante geringfügig schneller).

Delphi-Laie 2. Apr 2013 16:12

AW: Dynamisch erstellte Komponenten ansprechen
 
Danke!


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