Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Name einer Komponente herausfinden (https://www.delphipraxis.net/28016-name-einer-komponente-herausfinden.html)

Logic 18. Aug 2004 18:11


Name einer Komponente herausfinden
 
Ich lasse verschiedene Bilder dynam. während der Laufzeit erzeugen.
Ich habe jedem das gleiche OnClick Event zugeordnet:

[picture.onClick:=plazieren.OnClick;]

Ich möchte aber, dass wenn ich per rechte maustaste draufklicke ein Menü kommt mit dem ich dann das Bild ausblenden lassen kann.

[picture.PopupMenu:=PopupMenu1;]

Das Ausblenden und das Menü ist auch kein Problem... nur alles was mir fehlt ist der Name des Bildes welches ich gerade angeklickt habe um es eben per visible auszublenden?

Wie kann ich es dann erfahren? Übergeben kann ich es ja dann ganz einfach mit einer TImage Variable...


wäre über Hilfe dankbar
Logic

gekmihesg 18. Aug 2004 18:21

Re: Name einer Komponente herausfinden
 
mit TImage(Sender).??? müsste man drauf zugreifen können wie auf ein ganz normales TImage

Logic 18. Aug 2004 18:26

Re: Name einer Komponente herausfinden
 
Zitat:

Zitat von gekmihesg
mit TImage(Sender).??? müsste man drauf zugreifen können wie auf ein ganz normales TImage

Wie kann ich den Namen der Komponente herausfinden auf die ich gerade geklickt habe, wenn die Komponente auf die ich geklickt habe keinen Quelltext hat, sondern auf eine andere procedure linkt?

Luckie 18. Aug 2004 18:33

Re: Name einer Komponente herausfinden
 
Im Klick-Ereignis wird dir doch der Sender mitgeliefert:
Delphi-Quellcode:
if (Sender as TImage).Name = 'Iamge1' then
  ...;

Christian Seehase 18. Aug 2004 18:33

Re: Name einer Komponente herausfinden
 
Moin Logic,

Du könntest bei jedem Image in der Eigenschaft Tag die Adresse eines Strings speichern, der wiederum den Namen des Bildes enthält.

Beispiel:

Delphi-Quellcode:
var
  sPicName : string = 'Name des Bildes';

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Image1.Tag := integer(sPicName);
end;

procedure TForm1.Image1Click(Sender: TObject);
begin
  ShowMessage(string((Sender as TImage).Tag));
end;
[EDIT]
ImageClick verallgemeinert
[/EDIT]

Logic 18. Aug 2004 18:42

Re: Name einer Komponente herausfinden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Mhh ich weiß ja nicht wie das Image heißt.... deswegen hat das Image auch keine eigenen procedure.

Ich habe mal ein Beispiel prog gemacht. Einfach auf Button 1 klicken, und dann soll er bei rechter Maus auf ein Bild das angeklickte Bild löschen (es reicht erstmal "visible:=false") nur das kann ich wenn ich den Namen habe...

Nothine 18. Aug 2004 21:31

Re: Name einer Komponente herausfinden
 
Die Lösung für deine Frage liegt in der Eigenschaft PopupComponent des TPopupMenu
Delphi-Quellcode:
procedure TForm1.lschen1Click(Sender: TObject);
begin
  (PopupMenu1.PopupComponent as TImage).Visible := False;
end;
So gibt er dir das Image das das PopupMenü aufgerufen hat, und was du dann damit machst is ja deine sache :zwinker:

Logic 30. Aug 2004 15:51

Re: Name einer Komponente herausfinden
 
Vielen Dank! Hat geklappt :) :thumb:


Ich habe jetzt so ein ähnliches Problem nur weiß ich nicht genau wie ich das ganze dann umschreiben muss...

Ich klicke auf ein dyn. PopupMenü Item und brauche wieder den Namen des Items ...


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