所以我可以在Java中快速簡單地做到這一點,但我想在Delphi中嘗試使用它時會丟失一些東西。我有一個名爲DlgDXFImporterEllipse單元,如下所示:如何在一個單元中創建一個類,並將其用作另一個單元中的返回類型?
unit DlgDXFImporterEllipse;
interface
uses Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Windows;
type
TDlgDXFImporterEllipse = class(TObject)
private
centre : TCoord;
radius : double;
startAngle : double;
endAngle : double;
public
constructor Create(cent: TCoord; rad, startA, endA: double);
function GetCentre : TCoord;
function GetRadius : Double;
function GetStartAngle : Double;
function GetEndAngle : Double;
procedure print;
end;
var
test: TDlgDXFImporterEllipse;
implementation
constructor TDlgDXFImporterEllipse.Create(cent : TCoord; rad,startA,endA : Double);
begin
centre := cent;
radius := rad;
startAngle := startA;
endAngle := endA;
end;
function TDlgDXFImporterEllipse.GetCentre : TCoord;
begin
Result := centre;
end;
function TDlgDXFImporterEllipse.GetRadius : Double;
begin
Result := radius;
end;
function TDlgDXFImporterEllipse.GetStartAngle : Double;
begin
Result := startAngle;
end;
function TDlgDXFImporterEllipse.GetEndAngle : Double;
begin
Result := endAngle;
end;
procedure TDlgDXFImporterEllipse.print;
begin
Writeln(Output, 'Test Print');
end;
end.
我現在要創建這個類在另一個單元的對象調用DlgDXFImporter:
unit DlgDFXImporter;
interface
uses Windows, SysUtils, DlgDXFImporterEllipse;
type
TDlgDXFImport = class(TForm)
private
Ellipse: TDlgDXFImporterEllipse;
function GetEllipseDxfValues(CurLine, NextLine, prevObj, lastObj: String) : Ellipse;
implementation
{$R *.dfm}
function TDlgDXFImport.GetEllipseDxfValues(CurLine, NextLine, prevObj, lastObj: String): Ellipse ;
var
centre : TCoord;
temp : Ellipse ;
begin
centre.x := 5.1;
centre.y := 80.25;
temp := Ellipse.Create(centre, 50, 82.45, 28.15);
temp.print;
Result := temp;
end;
,我發現了以下錯誤: [DCC錯誤] DlgDFXImporter.pas(1752):E2005'Ellipse'不是一個類型標識符 我真的不熟悉Delphi語法來找到我做錯了什麼。 任何幫助將不勝感激。 謝謝。
根據DlgDXFImported類,私人部分,我有這樣的:橢圓形:TDlgDXFImporterEllipse ;.這不行嗎? –
這聲明瞭一個名爲'Ellipse'的類型爲'TDlgDXFImporterEllipse'的字段 - 它不會重命名類 – Blorgbeard
您說實話,會很快試一試:) –