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

📄 iopcbrowserpanel.pas

📁 iocopm3.04源码,一套很好的工控开发工具
💻 PAS
📖 第 1 页 / 共 3 页
字号:

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