⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ioobjectdemo1.dpr

📁 delphi 开发opc server的扩展SDK包
💻 DPR
字号:
program IOObjectDemo1;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  IOD1_Classes in 'IOD1_Classes.pas',
  xrtl_io_Stream, xrtl_io_FileStream,
  xrtl_sdf_Serializer, xrtl_sdf_binary_Serializer,
  xrtl_util_Value;

procedure Demo;
var
  O1, I1: TBase;
  O2, I2: TDerived1;
  O3, I3: TDerived2;
  LOS: TXRTLOutputStream;
  LIS: TXRTLInputStream;
  LSer: IXRTLSerializer;
  LDeser: IXRTLDeserializer;
begin
  O1:= nil;
  O2:= nil;
  O3:= nil;
  I1:= nil;
  I2:= nil;
  I3:= nil;
  LOS:= nil;
  LSer:= nil;
  LDeser:= nil;
  try
    O1:= TBase.Create;
    O2:= TDerived1.Create(O1);
    O3:= TDerived2.Create;
    LOS:= TXRTLFileOutputStream.Create('c:\test.ser', False);
    LSer:= TXRTLBinarySerializer.Create;
    LSer.WriteObject(LOS, nil);
//    LSer.WriteObject(LOS, O2);
    LSer.WriteObject(LOS, O1);
    LSer.WriteObject(LOS, O3);
    LOS.Close;
    LIS:= TXRTLFileInputStream.Create('c:\test.ser', False);
    LDeser:= TXRTLBinaryDeserializer.Create;
    I2:= LDeser.ReadObject(LIS, I2) as TDerived1;
    I1:= LDeser.ReadObject(LIS, I1) as TBase;
    I3:= LDeser.ReadObject(LIS, I3) as TDerived2;
  finally
    LDeser:= nil;
    LSer:= nil;
    FreeAndNil(LIS);
    FreeAndNil(LOS);
    FreeAndNil(I3);
    FreeAndNil(I2);
    FreeAndNil(I1);
    FreeAndNil(O3);
    FreeAndNil(O2);
    FreeAndNil(O1);
  end;
end;

begin
  try
    Demo;
  except
    on E: Exception do
    begin
      WriteLn(Format('Exception: %s', [E.Message]));
      ReadLn;
    end;
  end;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -