unit PlcAddressEdit; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, Vcl.ExtCtrls, LsPlcMain, plc_addr_info; type TfrmPlcAddressEdit = class(TForm) GroupBox1: TGroupBox; LabeledEdit1: TLabeledEdit; LabeledEdit2: TLabeledEdit; LabeledEdit3: TLabeledEdit; GroupBox2: TGroupBox; LabeledEdit4: TLabeledEdit; LabeledEdit5: TLabeledEdit; Panel1: TPanel; Panel2: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn; RadioGroup1: TRadioGroup; procedure FormShow(Sender: TObject); procedure FormCreate(Sender: TObject); procedure LabeledEdit4KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure LabeledEdit5KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure LabeledEdit6KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure BitBtn1Click(Sender: TObject); private { Private declarations } FPlcAddr: string; FobjPlc: Tplc_addr_info; public { Public declarations } property PlcAddr: string read FPlcAddr write FPlcAddr; property objPlc: Tplc_addr_info read FobjPlc write FobjPlc; end; var frmPlcAddressEdit: TfrmPlcAddressEdit; implementation {$R *.dfm} procedure TfrmPlcAddressEdit.BitBtn1Click(Sender: TObject); begin if Tag = 0 then FobjPlc := Tplc_addr_info.Create; FobjPlc.MachNum := Trim(LabeledEdit2.Text); FobjPlc.MachName := Trim(LabeledEdit1.Text); FobjPlc.Kind := Trim(LabeledEdit3.Text); FobjPlc.Name := Trim(LabeledEdit4.Text); FobjPlc.Address := Trim(LabeledEdit5.Text); FobjPlc.Descriptions := RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]; //FobjPlc.Idx := '1'; FobjPlc.IsValid := '1'; end; procedure TfrmPlcAddressEdit.FormCreate(Sender: TObject); begin FPlcAddr := ''; FobjPlc := nil; end; procedure TfrmPlcAddressEdit.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_ESCAPE then ModalResult := mrCancel; end; procedure TfrmPlcAddressEdit.FormShow(Sender: TObject); var idx: Integer; begin LabeledEdit3.Text := frmLsPlcMain.ComboBox2.Text; LabeledEdit1.Text := frmLsPlcMain.LabeledEdit3.Text; LabeledEdit2.Text := frmLsPlcMain.LabeledEdit4.Text; if Tag = 0 then begin //LabeledEdit4 »ç¿ëÀÚ ÀÔ·Â.. LabeledEdit4.Text := ''; //LabeledEdit5 ±×¸®µå Á¤º¸.. LabeledEdit5.Text := FplcAddr; //LabeledEdit6 »ç¿ëÀÚ ÀÔ·Â.. // LabeledEdit6.Text := ''; RadioGroup1.ItemIndex := RadioGroup1.Items.IndexOf('¹ÌÀû¿ë'); end else begin LabeledEdit4.Text := FobjPlc.Name; LabeledEdit5.Text := FobjPlc.Address; idx := RadioGroup1.Items.IndexOf(FobjPlc.Descriptions); if idx = -1 then RadioGroup1.ItemIndex := RadioGroup1.Items.IndexOf('¹ÌÀû¿ë') else RadioGroup1.ItemIndex := idx; // LabeledEdit6.Text := FobjPlc.Descriptions; end; LabeledEdit4.SetFocus; end; procedure TfrmPlcAddressEdit.LabeledEdit4KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_RETURN then LabeledEdit5.SetFocus; end; procedure TfrmPlcAddressEdit.LabeledEdit5KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin // if Key = VK_RETURN then LabeledEdit6.SetFocus; end; procedure TfrmPlcAddressEdit.LabeledEdit6KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_RETURN then BitBtn1.SetFocus; end; end.