📄 iopcbrowserpanel.pas
字号:
EditLeftRef := LabelLeftRef + LabelMaxWidth + 5;
FPropertyNameEdit.Left := EditLeftRef;
FGroupNameEdit.Left := EditLeftRef;
FComputerNameEdit.Left := EditLeftRef;
FOPCServerNameEdit.Left := EditLeftRef;
FItemNameEdit.Left := EditLeftRef;
FUpdateRateEdit.Left := EditLeftRef;
FAutoConnectCheckBox.Left := EditLeftRef;
FAutoErrorCheckBox.Left := EditLeftRef;
EditWidth := Width - EditLeftRef - 10 - FPropertyNameEdit.Height;
if FShowProperty then FPropertyNameEdit.Width := EditWidth;
FGroupNameEdit.Width := EditWidth;
FComputerNameEdit.Width := EditWidth;
FOPCServerNameEdit.Width := EditWidth;
FItemNameEdit.Width := EditWidth;
FUpdateRateEdit.Width := EditWidth;
FAutoConnectCheckBox.Width := EditWidth;
if FShowAutoError then FAutoErrorCheckBox.Width := EditWidth else FAutoErrorCheckBox.Width := 0;
if FShowProperty then
begin
FPropertyNameEdit.Top := FOPCItemList.Top;
FGroupNameEdit.Top := FPropertyNameEdit.Top + FPropertyNameEdit.Height + 3;
end
else
begin
FGroupNameEdit.Top := FOPCItemList.Top;
end;
FComputerNameEdit.Top := FGroupNameEdit.Top + FPropertyNameEdit.Height + 3;
FOPCServerNameEdit.Top := FComputerNameEdit.Top + FPropertyNameEdit.Height + 3;
FUpdateRateEdit.Top := FOPCServerNameEdit.Top + FPropertyNameEdit.Height + 3;
FItemNameEdit.Top := FUpdateRateEdit.Top + FPropertyNameEdit.Height + 3;
FAutoConnectCheckBox.Top := FItemNameEdit.Top + FPropertyNameEdit.Height + 5;
FAutoErrorCheckBox.Top := FAutoConnectCheckBox.Top + FAutoConnectCheckBox.Height + 3;
FPropertyLabel.Top := FPropertyNameEdit.Top + 4;
FGroupLabel.Top := FGroupNameEdit.Top + 4;
FComputerLabel.Top := FComputerNameEdit.Top + 4;
FOPCServerLabel.Top := FOPCServerNameEdit.Top + 4;
FItemLabel.Top := FItemNameEdit.Top + 4;
FUpdateRateLabel.Top := FUpdateRateEdit.Top + 4;
if FShowAutoError then
FErrorLabel.Top := FAutoErrorCheckBox.Top + FAutoErrorCheckBox.Height + 10
else
FErrorLabel.Top := FAutoConnectCheckBox.Top + FAutoConnectCheckBox.Height + 10;
FErrorLabel.Width := FAutoConnectCheckBox.Width + FPropertyLabel.Width;
FErrorLabel.Left := FPropertyLabel.Left;
FEvaluationLabel.Top := FErrorLabel.Top + FErrorLabel.Height + 5;
FEvaluationLabel.Width := FAutoConnectCheckBox.Width + FPropertyLabel.Width;
FEvaluationLabel.Left := FPropertyLabel.Left;
if FShowProperty then
with FPropertyNameEditButton do
begin
Top := FPropertyNameEdit.Top;
Height := FPropertyNameEdit.Height;
Width := FPropertyNameEdit.Height;
Left := FPropertyNameEdit.Left + FPropertyNameEdit.Width;
end;
with FGroupNameEditButton do
begin
Top := FGroupNameEdit.Top;
Height := FGroupNameEdit.Height;
Width := FGroupNameEdit.Height;
Left := FGroupNameEdit.Left + FGroupNameEdit.Width;
end;
with FOPCServerNameEditButton do
begin
Top := FOPCServerNameEdit.Top;
Height := FOPCServerNameEdit.Height;
Width := FOPCServerNameEdit.Height;
Left := FOPCServerNameEdit.Left + FOPCServerNameEdit.Width;
end;
with FItemNameEditButton do
begin
Top := FItemNameEdit.Top;
Height := FItemNameEdit.Height;
Width := FItemNameEdit.Height;
Left := FItemNameEdit.Left + FItemNameEdit.Width;
end;
with FComputerNameEditButton do
begin
Top := FComputerNameEdit.Top;
Height := FComputerNameEdit.Height;
Width := FComputerNameEdit.Height;
Left := FComputerNameEdit.Left + FComputerNameEdit.Width;
end;
end;
//****************************************************************************************************************************************************
procedure TiOPCBrowserPanel.PropertyNameChange(Sender: TObject);
begin
ItemChange;
UpdateItemEdit;
end;
//****************************************************************************************************************************************************
procedure TiOPCBrowserPanel.ComputerNameChange(Sender: TObject);
begin
SetDefaults('ComputerName', FComputerNameEdit.AsString);
ItemChange;
UpdateItemEdit;
end;
//****************************************************************************************************************************************************
procedure TiOPCBrowserPanel.GroupNameChange(Sender: TObject);
begin
SetDefaults('GroupName', FGroupNameEdit.AsString);
// if Trim(FGroupNameEdit.AsString) <> '' then FItemNameEdit.Clear;
ItemChange;
UpdateItemEdit;
end;
//****************************************************************************************************************************************************
procedure TiOPCBrowserPanel.OPCSeverNameChange(Sender: TObject);
begin
SetDefaults('ServerName', FOPCServerNameEdit.AsString);
ItemChange;
UpdateItemEdit;
end;
//****************************************************************************************************************************************************
procedure TiOPCBrowserPanel.ItemNameChange(Sender: TObject);
begin
ItemChange;
UpdateItemEdit;
end;
//****************************************************************************************************************************************************
procedure TiOPCBrowserPanel.UpdateRateChange(Sender: TObject);
begin
SetDefaults('UpdateRate', FUpdateRateEdit.AsString);
ItemChange;
UpdateItemEdit;
end;
//****************************************************************************************************************************************************
procedure TiOPCBrowserPanel.AutoConnectChange(Sender: TObject);
begin
ItemChange;
UpdateItemEdit;
end;
//****************************************************************************************************************************************************
procedure TiOPCBrowserPanel.AutoErrorChange(Sender: TObject);
begin
ItemChange;
UpdateItemEdit;
end;
//****************************************************************************************************************************************************
procedure TiOPCBrowserPanel.Resize;
begin
inherited Resize;
if Assigned(FOPCItemList) then AdjustLayout;
end;
//****************************************************************************************************************************************************
procedure TiOPCBrowserPanel.DoEnter;
begin
inherited;
{$IFDEF iVCL}
SetParentsToTopMost(Self);
{$endif}
end;
//****************************************************************************************************************************************************
procedure TiOPCBrowserPanel.OPCItemListClick(Sender: TObject);
begin
UpdateItemEdit;
end;
//****************************************************************************************************************************************************
procedure TiOPCBrowserPanel.PropertyNameEditButtonClick(Sender: TObject);
begin
if not Assigned(FPersistent) then raise Exception.Create('Class not Defined');
Screen.Cursor := crHourGlass;
try
iOPCPropertySelectorForm := TiOPCPropertySelectorForm.Create(Application);
try
iOPCPropertySelectorForm.Setup(FPersistent, '');
iOPCPropertySelectorForm.AddUnassigned;
iOPCPropertySelectorForm.PropertyName := FPropertyNameEdit.Text;
if iOPCPropertySelectorForm.ShowModal = mrOK then
begin
FPropertyNameEdit.SetStringWithEvent(iOPCPropertySelectorForm.PropertyName);
FOPCItemList.Items.Strings[FOPCItemList.ItemIndex] := iOPCPropertySelectorForm.PropertyName;
end;
finally
iOPCPropertySelectorForm.Free;
end;
finally
Screen.Cursor := crDefault;
end;
end;
//****************************************************************************************************************************************************
procedure TiOPCBrowserPanel.GroupNameEditButtonClick(Sender: TObject);
begin
Screen.Cursor := crHourGlass;
try
iOPCGroupSelectorForm := TiOPCGroupSelectorForm.Create(Application);
try
iOPCGroupSelectorForm.Setup;
iOPCGroupSelectorForm.GroupName := FGroupNameEdit.AsString;
if iOPCGroupSelectorForm.ShowModal = mrOK then
begin
FGroupNameEdit.SetStringWithEvent(iOPCGroupSelectorForm.GroupName);
end;
finally
iOPCGroupSelectorForm.Free;
end;
finally
Screen.Cursor := crDefault;
end;
end;
//****************************************************************************************************************************************************
procedure TiOPCBrowserPanel.ComputerNameEditButtonClick(Sender: TObject);
begin
Screen.Cursor := crHourGlass;
try
iOPCComputerSelectorForm := TiOPCComputerSelectorForm.Create(Application);
try
iOPCComputerSelectorForm.SessionHandle := FSessionHandle;
iOPCComputerSelectorForm.Setup;
iOPCComputerSelectorForm.ComputerName := FComputerNameEdit.Text;
if iOPCComputerSelectorForm.ShowModal = mrOK then
begin
FComputerNameEdit.SetStringWithEvent(iOPCComputerSelectorForm.ComputerName);
end;
finally
iOPCComputerSelectorForm.Free;
end;
finally
Screen.Cursor := crDefault;
end;
end;
//****************************************************************************************************************************************************
procedure TiOPCBrowserPanel.OPCSeverNameEditButtonClick(Sender: TObject);
begin
Screen.Cursor := crHourGlass;
try
iOPCServerSelectorForm := TiOPCServerSelectorForm.Create(Application);
try
iOPCServerSelectorForm.SessionHandle := FSessionHandle;
iOPCServerSelectorForm.Setup(FComputerNameEdit.Text);
iOPCServerSelectorForm.ServerName := FOPCServerNameEdit.Text;
if iOPCServerSelectorForm.ShowModal = mrOK then
begin
FOPCServerNameEdit.SetStringWithEvent(iOPCServerSelectorForm.ServerName);
end;
finally
iOPCServerSelectorForm.Free;
end;
finally
Screen.Cursor := crDefault;
end;
end;
//****************************************************************************************************************************************************
procedure TiOPCBrowserPanel.ItemNameEditButtonClick(Sender: TObject);
begin
Screen.Cursor := crHourGlass;
try
iOPCItemSelectorForm := TiOPCItemSelectorForm.Create(Application);
try
iOPCItemSelectorForm.SessionHandle := FSessionHandle;
iOPCItemSelectorForm.Setup(FComputerNameEdit.Text, FOPCServerNameEdit.Text);
iOPCItemSelectorForm.OPCItemName.Caption := FItemNameEdit.Text;
if iOPCItemSelectorForm.ShowModal = mrOK then
begin
FItemNameEdit.SetStringWithEvent(iOPCItemSelectorForm.OPCItemName.Caption);
end;
finally
iOPCItemSelectorForm.Free;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -