Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - OnClick von Edit-Array


Basti - So 03.04.05 14:06
Titel: OnClick von Edit-Array
Hallo Leute,
ich möchte einem Array von Edits ein OnClick Ereignis zuweisen.
Funktioniert aber nicht:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
[...]

  private
    { Private-Deklarationen }
    start_lok_Edit:      Array[1..10of TEdit;

[...]

start_lok_Edit[i].OnClick := OnClick_ChooseStartRoot(Self);

[...]

procedure TForm2.OnClick_ChooseStartRoot(Sender: TObject);

[...]


[Fehler] u_formular_einstellungen.pas(248): Inkompatible Typen: 'TNotifyEvent' und 'procedure, untyped pointer or untyped parameter'

Kann mir jemand sagen, wie ich das machen muss?
Vielen Dank


Keldorn - So 03.04.05 14:11


Delphi-Quelltext
1:
start_lok_Edit[i].OnClick := OnClick_ChooseStartRoot;                    


Mfg Frank


wdbee - So 03.04.05 14:12

Nur den Zeiger (Namen) angeben, nicht die Procedure aufrufen:

Delphi-Quelltext
1:
2:
3:
[...]  
start_lok_Edit[i].OnClick := OnClick_ChooseStartRoot;  
[...]


Christian S. - So 03.04.05 14:12

So geht es:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
  private
    procedure myClick(Sender : TObject);
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

{...}

procedure TForm1.FormCreate(Sender: TObject);
begin
  button1.OnClick := myClick;
end;


Wichtig ist, dass myClick eine Methode ist (also zu einem Objekt gehört), denn TNotifyEvent ist als procedure(sender : TObject) of object definiert.

MfG
Christian

//Edit: :motz: zu langsam


Basti - So 03.04.05 15:00

:shock: So viele Antworten auf einmal!
Danke für die Hilfe.
Ich wusste nicht, dass man die Prozedur dort nicht aufrufen darf - naja - jetzt weiss ich es ;)
THX