Hallo
Diese Meldung bekomme ich immer, wenn ich einer dynamisch erzeugten Komponente ein Ereignis zuweisen will. Die Ereignisprozedur funktioniert und lässt sich problemlos zuweisen, wenn sie im private oder public Bereiche des FORMULARS steht, ansonsten nicht. Die Prozedur verwendet auch die richtige Syntax (siehe beigefügte Codestücke). Wer weiß Rat?
Unit 1:
--------
...
type
TMyForm = class(Tform)
...
procedure TuIrgendWas;
...
end;
...
uses
unit2;
...
procedure TMyForm. TuIrgendWas;
begin
...
ErzeugeKomponenteAusUnit2;
...
end;
Unit 2:
--------
interface
procedure RxCharIstDa(Sender : Tobject ; Count : Integer);
...
var
MyComPort: TComPort ;
...
implementation
procedure RxCharIstDa(Sender : Tobject ; Count : Integer);
begin
ShowMessage(IntToStr(Count));
end;
procedure ErzeugeKomponenteAusUnit2;
begin
MyComPort := TComPort.Create(nil) ;
MyComPort.OnRxChar := RxCharIstDa; // <- Hier kommt der Fehler
end;
...
Diese Meldung bekomme ich immer, wenn ich einer dynamisch erzeugten Komponente ein Ereignis zuweisen will. Die Ereignisprozedur funktioniert und lässt sich problemlos zuweisen, wenn sie im private oder public Bereiche des FORMULARS steht, ansonsten nicht. Die Prozedur verwendet auch die richtige Syntax (siehe beigefügte Codestücke). Wer weiß Rat?
Unit 1:
--------
...
type
TMyForm = class(Tform)
...
procedure TuIrgendWas;
...
end;
...
uses
unit2;
...
procedure TMyForm. TuIrgendWas;
begin
...
ErzeugeKomponenteAusUnit2;
...
end;
Unit 2:
--------
interface
procedure RxCharIstDa(Sender : Tobject ; Count : Integer);
...
var
MyComPort: TComPort ;
...
implementation
procedure RxCharIstDa(Sender : Tobject ; Count : Integer);
begin
ShowMessage(IntToStr(Count));
end;
procedure ErzeugeKomponenteAusUnit2;
begin
MyComPort := TComPort.Create(nil) ;
MyComPort.OnRxChar := RxCharIstDa; // <- Hier kommt der Fehler
end;
...
Comment