Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ListBox onclick zuweisungsproblem (https://www.delphipraxis.net/12532-listbox-onclick-zuweisungsproblem.html)

Muetzi 29. Nov 2003 12:52


ListBox onclick zuweisungsproblem
 
Hi,

habe folgendes Prob...Ich habe ne ListBox in der ich mit

Delphi-Quellcode:
listbox1.items.add(variable1);

einen Eintrag hinzufüge....


Jetzt muss ich es aber schaffen dem OnClickereignis auf dem item[0] also dem item mit dem inhalt von variable 2 ein ShowMessage mit der Variable1a zuzuweisen...

Also praktisch so...geht aber nicht:

Delphi-Quellcode:
x := 0;
while x < id do
begin
listbox1.items.add(variable1);
listbox1.items[x].onClick := ShowMessage(variable1a);
inc(x);
end;
das onClick funktioniert nicht, do wie mach ich das?



gruß

muetzi

Christian Seehase 29. Nov 2003 13:04

Re: ListBox onclick zuweisungsproblem
 
Moin Muetzi,

zum einen kannst Du Dir mal diesen Thread durchlesen

prozedur aufruf und sender

da haben wir das Thema allgemein recht ausführlich besprochen, ansonsten kann Dir die Suche (Hier im Forum suchenOnClick zuweisen) noch einige Threads aufzeigen, in denen das gezeigt wird.

fenni 29. Nov 2003 13:22

Re: ListBox onclick zuweisungsproblem
 
Die OnClick-Prozedur muss vom Typ TNotifyEvent sein und als Methode der Klasse deklariert werden, z.B.:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    procedure listboxclick(Sender: TObject);
  private
    ...
  public
    ...
  end;
In deiner Schleife kannst du diese Prozedur jetzt als Ereignis zuweisen:

Delphi-Quellcode:
while x < id do
begin
listbox1.items.add(variable1);
listbox1.items[x].onClick := listboxclick;
inc(x);
end;
Weitere Variablen können bei einem NotifyEvent nicht übergeben werden, du kannst aber auf alle Eigenschaften des aufrufenden Events zugreifen. Den Inhalt von variable1a könntest du z.B. in der Eigenschaft tag speichern und beim anklicken auslesen (nicht getestet):

Delphi-Quellcode:
procedure TForm1.listboxclick;
begin
  ShowMessage(TListbox(Sender).tag);
end;
MfG
fenni


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz