Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - TObjekt Name


Gesus - Fr 04.02.05 17:53
Titel: TObjekt Name
Hi!

Mein Problem, ich habe 20 Bilder, die alle die Selbe Procedure aufrufen. Da es ja den Parameter Sender gibt, müsste ja bekannt sein, welches Bild die Procedure aufgerufen hat. Meine Frage ist nun, wie kann ich auf dieses Bild, was die Procedur aufgerufen hat zugreifen? (Z.B Image.Picture oder Image.Visible)
so das ich z.b wenn das Bild geklickt wurde, ich es ausblenden kann. (Oder ein anderes Bild, mit dem Inhalt des Angekliktem Bild fülle-> ImageNeu:=angeklicktesBild)


Ich hoffe ihr versteht was ich meine

please help und danke für antworten

mfg Gesus


Udontknow - Fr 04.02.05 17:55

Hallo!

Sofern du als Sender das Image angibst, kannst über Casten den Namen ermitteln:


Delphi-Quelltext
1:
ShowMessage(TImage(Sender).Name);                    


Cu,
Udontknow


Gesus - Fr 04.02.05 18:29

Danke Danke Danke :P


Klabautermann - Fr 04.02.05 18:32

Hi,

vor dem Typecasten enpfiehlt sich aber eine Abfrage ob Sender wirklich den richtigen Typ hat. Zusammen mit deinem Wunsch das ganze einer Variable zu zu weisen sähe das so aus:


Delphi-Quelltext
 
4711:
4712:
4713:
4714:
4715:
4716:
4717:
4718:
4719:
{ ... }
 procedure tMyObject.MyNotifyEvent(Sender : tObject);
  var
    ImageNeu : tImage;
begin
  if (sender is tImage) then begin
    ImageNeu := tImage(sender);
    // Hier nach belieben mit ImageNeu Arbeiten
  end// Sender ist ein Image
end// tMyObject.MyNotifyEvent


Gruß
Klabautermann