Der Compiler kann das Event gar nicht kennen.
Das ist auch richtig so. Erst wenn das
ActiveX geladen wird stehen diese Events, Funktionen oder Proceduren zur Verfügung.
Der Compiler weiß das und meckert es auch nicht an.
Zum Beispiel funktioniert so etwas ja auch einwandfrei.
Delphi-Quellcode:
OleObjekt: OleVariant;
// standard ole teil
...
OleObjekt := OleContainer1.OleObject;
OleObjekt.Machwas;
Die Procedure Machwas kennt der Compiler ja auch nicht und trotzdem funktioniert es.
Aus diesem Grund verstehe ich das mit dem Event nicht.
So sieht es mit der tlb aus:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, ActiveFormXOle1Proj1_TLB;
type
TForm1 =
class(TForm)
ActiveFormXOle11: TActiveFormXOle1;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
private
procedure OnChangeEdit2Text(Sender: TObject;
const Param1: WideString);
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
ActiveFormXOle11.OnChangeEdit2Text := OnChangeEdit2Text;
end;
procedure TForm1.OnChangeEdit2Text(Sender: TObject;
const Param1: WideString);
begin
Label1.Caption := Param1;
end;
end.
Sobald ich auf den Button im
ActiveX-Form drücke wird der Inhalt der Edit-Komponente aus der
ActiveX-Form an das Label in der Anwendung übergeben.