我收到错误“ Error 1(E4) "end." or implementation section members (types or methods) expected.
”
在互联网上没有任何地方可以找到有关此错误的信息。
由于 AssemblyInfo.pas 文件的这一行,我收到此错误:
Implementation
SomeMethod();
end.
我在德尔福棱镜工作。
我收到错误“ Error 1(E4) "end." or implementation section members (types or methods) expected.
”
在互联网上没有任何地方可以找到有关此错误的信息。
由于 AssemblyInfo.pas 文件的这一行,我收到此错误:
Implementation
SomeMethod();
end.
我在德尔福棱镜工作。
那在里面是无效的implementation
。
Pascal(Delphi Prism 松散地基于它)单元由几个部分组成。该interface
部分提供与 C/C++ 头文件相同的功能;它将公共内容暴露给代码单元的用户。
这implementation
就像标头公开的 C/C++ 源文件。这是您实际实施interface
单元提供的内容的地方。因此,它应该包含方法和函数的实际代码。
一个简单的示例(Delphi 代码,但非常相似):
unit Test.NyClass;
interface
// Defines types and so forth that, if exposed via the proper declaration, can be seen outside
// this unit simmply by adding this unit to the uses clause of the calling code.
uses
SysUtils;
type
TMyClass=class(TObject)
FMyNumber: Integer; // protected members (no specifier, so defaults to protected)
FMyString: String;
private
function GetMyNumber: Integer; // Getters
function GetMyString: string;
procedure SetMyNumber(const Value: Integer); // Setters
procedure SetMyString(const Value: string);
published
property MyNumber: Integer read GetMyNumber write SetMyNumber; // properties exposed to class users
property MyString: string read GetMyString write SetMyString;
end;
implementation
// Actually provides the implementation for the getters/setters, any additional methods,
// types not needed outside this implementation section, etc.
// Optional uses clause. Add units here you only need access to in the implementation code;
// this prevents circular references ("Unit A uses Unit B which uses Unit A").
uses
SomeOtherUnit;
// Implementation of the getters and setters declared for the properties above. Outside code
// can't call these directly (they were declared as private), but they're called automatically
// when the corresponding property is referenced.
function TMyClass.GetMyNumber: Integer;
begin
Result := FMyNumber;
end;
function TMyClass.GetMyString: string;
begin
Result := FMyString;
end;
procedure TMyClass.SetMyNumber(const Value: Integer);
begin
if FMyNumber <> Value then
FMyNumber := Value;
end;
procedure TMyClass.SetMyString(const Value: string);
begin
if FMyString <> Value then
FMyString := Value;
end;
// Optional initialization section. This is what your code is probably intending to use (if Prism
// supports it - don't have it on this machine to check).
initialization
// Any necessary loading initialization, etc. Called when the unit is being loaded into memory,
// so you have to be careful what you're doing here.
// Optional finalization section. This is where you do cleanup of anything allocated in the
// initialization section.
finalization
end.