Einzelnen Beitrag anzeigen

LuckySpacy

Registriert seit: 2. Apr 2003
Ort: Fränkisch-Crumbach
50 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Ereignis (Event) einer ActiveX-Form ohne tlb zuweisen

  Alt 27. Nov 2003, 16:03
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.
Thomas Bachmann
  Mit Zitat antworten Zitat