In Delphi 7 auch. Da fehlt ein komplettes reproduzierbares Beispiel.
Vielleicht wird die falsche
Unit verwendet oder ähnliches.
Sowas in der Art muss es wohl sein - ich habe schon 'zig Klassen in der Art ohne Probleme definiert, nur hier macht es komischerweise Probleme.
Ich hatte zuerst die Ableitung von TPersistent im Verdacht, aber das mache ich an anderen Stellen auch
Interessanterweise zeigt mir die kontextabhängige Hilfe bei der Eingabe des Punktes nach "TMyClass" alle drei Create-Methoden an, wenn ich dann aber das "Create" hingeschrieben habe und die "(" eingebe (also insgesamt "TMyClass.Create("), wird nur noch "*No parameters expected*" angezeigt...
Hier habe ich es versucht, nachzuvollziehen in einem Mini-Projekt, bestehend aus zwei Units:
Unit1.pas:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
Unit2;
type
TForm1 =
class(TForm)
protected
procedure DoCreate();
override;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.DoCreate();
var
test : TMyClass;
begin
test := TMyClass.Create( 0.20, 1 );
end;
end.
Unit2.pas:
Delphi-Quellcode:
unit Unit2;
interface
uses Classes;
type
TMyClass =
class( TPersistent )
public
constructor Create( dVal_ : Extended;
iDigits_ : ShortInt );
overload;
virtual;
constructor Create( dVal_ : Extended );
overload;
virtual;
protected
constructor Create();
overload;
virtual;
end;
implementation
constructor TMyClass.Create( dVal_ : Extended;
iDigits_ : ShortInt );
begin
Create();
end;
constructor TMyClass.Create( dVal_ : Extended );
begin
Create();
end;
constructor TMyClass.Create();
begin
inherited Create();
end;
end.
Project1.dpr:
Delphi-Quellcode:
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas';
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.