📄 data.pas
字号:
unit Data;
interface
uses
Windows, Classes, SysUtils;
type
PGroupItem = ^TGroupItem;
TGroupItem = record
GroupHandle: THandle;
ItemHandle: THandle;
vt: TVarType;
right: DWORD;
end;
type
TServerData = class
public
ServerName: string;
HServer: THandle;
Groups: TStringList;
constructor Create;
destructor Destroy; override;
procedure RemoveAllGroup;
end;
var
ServerData: TServerData;
function GetRightStr(right: DWORD): string;
function GetQualityStr(Quality: DWORD): string;
function GetTimeStr(time: FILETIME): string;
implementation
{ TServerData }
uses
HFOPCClient;
constructor TServerData.Create;
begin
HServer := INVALID_HANDLE_VALUE;
Groups := TStringList.Create;
end;
destructor TServerData.Destroy;
begin
RemoveAllGroup;
if Assigned(Groups) then
FreeAndNil(Groups);
inherited;
end;
procedure TServerData.RemoveAllGroup;
var
I: Integer;
begin
for I := 0 to Groups.Count - 1 do
begin
RemoveGroup(HServer, THandle(Groups.Objects[I]));
end;
Groups.Clear;
end;
function GetRightStr(right: DWORD): string;
begin
if right = OPC_READABLE or OPC_WRITEABLE then
result := '读写'
else if right = OPC_READABLE then
result := '只读'
else if right = OPC_WRITEABLE then
result := '只写';
end;
function GetQualityStr(Quality: DWORD): string;
begin
if Quality = OPC_QUALITY_BAD then
Result := '无效'
else if Quality = OPC_QUALITY_UNCERTAIN then
Result := '不确定'
else if Quality = OPC_QUALITY_GOOD then
Result := '正常';
end;
function GetTimeStr(time: FILETIME): string;
var
st: SYSTEMTIME;
begin
FileTimeToSystemTime(time, st);
Result := DateTimeToStr(SystemTimeToDateTime(st));
end;
initialization
ServerData := TServerData.Create;
finalization
if Assigned(ServerData) then
FreeAndNil(ServerData);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -