Einzelnen Beitrag anzeigen

HeikoDD

Registriert seit: 8. Okt 2003
11 Beiträge
 
#2

Re: Problem mit Interfaces und LoadPackage

  Alt 17. Jun 2005, 08:54
Delphi-Quellcode:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

Type IMainForm = Interface(IUnknown)
       ['{5C440981-29CB-4F1E-815D-DCA4EFF07437}']
       Procedure HalloWelt; stdcall;
     end;

type
  TForm1 = class(TForm, IMainForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure HalloWelt; stdcall;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.HalloWelt;
Begin
  ShowMessage('Hallo Welt');
end;

procedure TForm1.FormCreate(Sender: TObject);
Var M: IMainForm;
begin
  M := Self;
  M.HalloWelt;
end;

end.
M := IMainForm(Form1);
sollte auch funktionieren, ABER TForm stammt nicht von TInterfacedObjekt, weshalb die internen
Mechnismen eines Interfaces natürlich nicht funktionieren dürften.
Sprich die automatische Freigeben des Form über das Interface usw, funktioniert nicht ..
Das Ding kann also nur als Transportkiste verwendet werden und auch sonst ist es nicht ganz konform.
  Mit Zitat antworten Zitat