-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 –