Autor Beitrag
TillE
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Do 22.07.04 10:54 
Hallo,

ich habe da ein Problem mit einer VCL Komponente:

Ich möchte eine D5 VCL Komponente

ausblenden 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:

ausblenden 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


    VCL.WIN32 (Delphi5, 6, 7)
    VCL.NET (Delphi8)
    .NET (C#, VB.NET, ...)

designen kann.

Danke
Leopold


Moderiert von user profile iconPeter Lustig: Delphi-Tags hinzugefügt.
maximus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 896

Win XP, Suse 8.1
Delphi 4/7/8 alles prof
BeitragVerfasst: 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:

_________________
mfg.
mâximôv
TillE Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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!

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".