![]() |
OnClick zuweisung schlägt fehl...
Hi!
Ich hab schonwieder eine Frage. Ich finde absolut keine Lösung... Ich will in einem Array of TButton die OnClick Property zuweisen. Das tuhe ich volgendermaßen:
Delphi-Quellcode:
Ich habe eine Procedure namens "Buttons1Click(Sender:TObject)" und würde jetzt gerne sohier:
procedure TButtons.SetClick(X: integer; ClickProcedure:TNotifyEvent);
begin FX:=X; FButtonList[FX].OnClick:=ClickProcedure; end;
Delphi-Quellcode:
Die Procedure zuweisen. ich kriege aber folgende Fehlermeldung:
var Buttons:TButtons;
{...} Buttons.SetClick(Buttons1Click(Sender)); Zitat:
gruß Teekeks |
Re: OnClick zuweisung schlägt fehl...
Mit Buttons1Click(Sender) rufst du Buttons1Click mit dem Parameter Sender auf.
Du willst doch aber nur die Prozedur übergeben.
Delphi-Quellcode:
Buttons.SetClick(0, Buttons1Click);
|
Re: OnClick zuweisung schlägt fehl...
Wie hast du ClickProcedure deklariert?
Zitat:
Delphi-Quellcode:
FButtonList[FX].OnClick:=ClickProcedure;
|
Re: OnClick zuweisung schlägt fehl...
Zitat:
Delphi-Quellcode:
Das ist der Parameter von SetClick, woraus du zitiert hast. ;-)
procedure TButtons.SetClick(X: integer; ClickProcedure:TNotifyEvent);
|
Re: OnClick zuweisung schlägt fehl...
Nein ich meine nicht die Set-Prozedur, sondern die Click-Prozedur, als da wo der Code beim Klicken ausgeführt wird. Die Fehlermeldung kklingt so, als ob er bei der Deklaration of object vergessen hätte.
|
Re: OnClick zuweisung schlägt fehl...
Hi!
Die Procedure ist so Deklariert:
Delphi-Quellcode:
procedure Buttons1Click(Sender: TObject);
|
Re: OnClick zuweisung schlägt fehl...
Zitat:
Delphi-Quellcode:
Und oben muss die dann unter private auch stehen.
procedure TForm1.Buttons1Click(Sender: TObject);
Ansonsten: Hast du mal gemacht was oben schon steht? |
Re: OnClick zuweisung schlägt fehl...
Also nochmal:
Ich habs so insgesammt schon Deklariert:
Delphi-Quellcode:
TForm1 = class(TForm)
{...} private Buttons:TButtons; { private declarations } procedure Buttons1Click(Sender: TObject); public { public declarations } end; var Form1: TForm1; implementation { TForm1 } procedure TForm1.FormCreate(Sender: TObject); begin {...} Buttons.SetClick(3,Buttons1Click); end; procedure TForm1.Buttons1Click(Sender: TObject); begin Buttons.Name('Bu',3); end; |
Re: OnClick zuweisung schlägt fehl...
Da du jetzt keine Fehler mehr angegeben hast, gehe ich dann einmal davon aus, dass alles funktioniert?
|
Re: OnClick zuweisung schlägt fehl...
Opps. Nein Lazarus meint ich gebe zuwenige Parameter für "Buttons1Click" an.
|
Re: OnClick zuweisung schlägt fehl...
Ich habe Lazarus im Moment nicht installiert, deshalb kann ich das da gerade nicht testen. Unter Delphi wäre das so korrekt. :stupid:
Ich muss Lazarus einmal zum Testen mit in den virtuellen PC installieren. |
Re: OnClick zuweisung schlägt fehl...
Das wäre sehr nett.
Gruß Teekeks |
Re: OnClick zuweisung schlägt fehl...
Ich glaube, unter Lazarus geht das so:
Delphi-Quellcode:
FButtonList[FX].OnClick := @ClickProcedure;
|
Re: OnClick zuweisung schlägt fehl...
Dann meint er Clickprocedure sei ein Pointer und kein TNotifyEvent. Aber im Aufruf muss ich das so:
Delphi-Quellcode:
machen. Jetzt gehts!
Buttons.SetClick(3,@Buttons1Click);
DANKE! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:32 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