-2
我正在使用embarcadero DataSnap中的代码进行操作。 当执行下面的代码时,我收到错误消息: 错误:第42行上的未声明标识符'TMyClass' PersistentClass:= TMyClass;错误:未声明的标识符'TMyClass'
任何帮助表示赞赏。
unit MyServer;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IPPeerServer, Datasnap.DSCommonServer,
Datasnap.DSTCPServerTransport, Datasnap.DSServer;
type
TForm1 = class(TForm)
DSServer1: TDSServer;
DSServerClass1: TDSServerClass;
DSTCPServerTransport1: TDSTCPServerTransport;
procedure DSServerClass1GetClass(DSServerClass: TDSServerClass;
var PersistentClass: TPersistentClass);
procedure DSServerClass1CreateInstance(
DSCreateInstanceEventObject: TDSCreateInstanceEventObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.DSServerClass1CreateInstance(
DSCreateInstanceEventObject: TDSCreateInstanceEventObject);
begin
end;
procedure TForm1.DSServerClass1GetClass(DSServerClass: TDSServerClass;
var PersistentClass: TPersistentClass);
begin
PersistentClass := TMyClass;
end;
end.
那么,TMyClass类是否存在于本单元的范围之内呢?你不能分配给那个不存在的参数。 – TLama
在遵循教程关注所有说明时,这很有帮助。请参阅步骤3的第3点:'对于Delphi,将此单元的名称MyClass添加到服务器应用程序单元MyServer.pas的uses子句中。 - http://docwiki.embarcadero.com/RADStudio/XE4/ en/Tutorial:_Using_a_DataSnap_Server_with_an_Application –
另请参阅:http://docwiki.embarcadero.com/RADStudio/XE5/en/Programs_and_Units#Unit_References_and_the_Uses_Clause –