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 Komponentenname aus Liste laden und dieses objekt verändern. (https://www.delphipraxis.net/82653-komponentenname-aus-liste-laden-und-dieses-objekt-veraendern.html)

Skullschildi 17. Dez 2006 13:33


Komponentenname aus Liste laden und dieses objekt verändern.
 
Hallihallo. ich hab da eine frage zum dynamischen abfragen von komponenten und ggf. hinzufügen von funktionen.

1. Also, ich hab etliche TImage komponenten, die on demand erstellt werden und fortlaufen nummeriert sind. wieviele das maximal sein sollen ist nicht vorgegeben. noch nicht jedenfalls. jetzt wollte ich folgendes machen: Wenn ich ein solches image anklicke soll sich ein fenster öffnen, in dem die eigenschaften der komponente verändert werden können. mein problem: eine methode mit der ich den namen der komponente einbauen kann wie z.b.
Delphi-Quellcode:
with (zuletz angeklicktes bild) do
ist mir nicht bekannt.

2. Steht zwar nicht im Titel, aber ich kann ma danach fragen: Ich möchte gleich beim erstellen der komponenten eben diesen methoden mitgeben, die bei einem ereignis ausgeführt werden. wie geht das?

danke für die antworten :spin2:

edit: sry der threadname war eigentlich gedacht, da ich den objektnamen aus einer liste laden wollte^^

mkinzler 17. Dez 2006 17:42

Re: Komponentenname aus Liste laden und dieses objekt veränd
 
Speichere dir doch den Sender-Parameter der onClick-Event-Methode in ne private Variable ab.

Skullschildi 17. Dez 2006 18:22

Re: Komponentenname aus Liste laden und dieses objekt veränd
 
scheinbar is meine frage net kompatibel zu deiner antwort( ich versteh die net^^).
1. Also: ich hab eines von vielen images. der name dieser Timage komponente soll irgendwie kopiert werden, sodass ich ihn in einer funktion wie
Delphi-Quellcode:
with (variable) do
verwenden kann.

2. hä, wie meinst du das? ich wollte, dass jede dieser komponenten etwas code mit auf den weg bekommt, den sie bei z.B. Onclick ausführt. Vor allen dingen, damit sich das fenster auftut indem man die eigenschaften verändern kann.

TwoFace 29. Dez 2006 15:15

Re: Komponentenname aus Liste laden und dieses objekt veränd
 
Servus

Wenn du die Images erzeugst, fügst du den Komponenten einfach noch weitere Eigenschaften und Ereignisse hinzu.

Hier mal ein Beispiel zum Erzeugen von Buttons
Delphi-Quellcode:
var
  UsrButton : Tbutton;
  a : integer;
  x : integer;
begin
  x := 20;
  for a := 1 to 4 do
  begin
    UsrButton := TButton.Create(self);
    // Dem Button einen Namen geben
    UsrButton.Name := 'User_Button_'+inttostr(a);
    // und anzeigen...
    UsrButton.Parent := Form1;
    UsrButton.Visible := true;
    UsrButton.Top := x;
    x := x + UsrButton.Height+5;
    UsrButton.Caption := inttostr(a);
    // Jetzt noch ein Ereignis hinzufügen:
    UsrButton.OnClick := UsrButtonClick;
  end;
Natürlich muß die Funktion UsrButtonClick noch deklariert werden.

Delphi-Quellcode:
procedure TForm1.UsrButtonClick(Sender:TObject);
var
  capt : string;
begin
  if Sender is TButton then
     capt := TButton(Sender).Caption;
  showmessage('Sie haben Button mit der Aufschrift '+capt+' gedrückt');
end;


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