Entwickler-Ecke

Andere .NET-Sprachen - D7 VCL Komponente nach .NET (nicht VCL.NET)


TillE - Do 22.07.04 10:54
Titel: D7 VCL Komponente nach .NET (nicht VCL.NET)
Hallo,

ich habe da ein Problem mit einer VCL Komponente:

Ich möchte eine D5 VCL Komponente


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
type
TMyComp = class(TComponent)
  ...
  public
  constructor Create (aOwner:TComponent); override;
  ...
end;

auch für .NET zur Verfügung stellen. Das funktioniert unter Delphi 8 wenn ein VCL.NET Projekt gemacht wird auch anstandslos. Wenn ich aber ein .NET WinForm Projekt auswähle und ich ziehe die Komponente rein, dann bekomme ich eine Fehlermeldung, weil mein Konstruktor nicht parameterlos ist.

Also versuche ich einen parameterlosen Konstruktor in meiner Komponente zu implementieren:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
TMyComp = class(TComponent)
  ...
  public
  constructor Create (aOwner:TComponent); overrideoverload;
  constructor Create; overload;
  ...
end;

constructor TMyComp.Create;
begin
  // ICH MUSS DIESEN ANSTOSSEN, WEIL
  // INITIALISIERUNGEN GEMACHT WERDEN MUESSEN
  inherited Create (NIL);
end;


Das Ganze löst hat mein Problem nicht gelöst.

Ich wäre über Informationen zu diesem Thema sehr dankbar - vielleicht weiss jemand ein Beispiel, wie man eine Komponente gleichzeitig für


designen kann.

Danke
Leopold


Moderiert von user profile iconPeter Lustig: Delphi-Tags hinzugefügt.


maximus - Do 22.07.04 11:20

Willkommen im DF.

Du kannst keine VCL.NET koponente auf ein WinForm ziehen, da es zwei völlig inkompatible systeme sind! Geht einfach nicht und ist auch nicht so gedacht :cry:


TillE - Do 22.07.04 11:47

Hallo maximus,

Danke für deine Info, ABER
das würde dann ja heissen, dass die vielen Delphi VCL Komponenten, die es bereits gibt, NUR in Delphi 8 bei VCL.NET Projekten eingesetzt werden können. Ich kann mir nicht vorstellen, dass Borland solch eine massive Einschränkung bewusst einschlägt.

Ich denke, dass es bestimmt einen Weg gibt.


Christian S. - Do 22.07.04 11:51

Hallo!

Es ist aber so. WinForms-Anwendung basieren ausschließlich auf dem Framework. Um VCL-Komponenten dort ans laufen zu bringen, müsstest Du ja erst einmal die ganzen Basis-Units drin haben! Und dann hättest Du im Grunde genommen wieder eine VCL.NET-Anwendung. :-)

MfG
Peter

P.S.: Und wieso Einschränkung? Gerade deswegen hat Borland ja die VCL.NET ins Leben gerufen!