unit uSetMain; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects, System.ImageList, FMX.ImgList, FMX.Controls.Presentation, FMX.Edit,iniFiles, FMX.TabControl, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, Data.DB, FireDAC.Comp.DataSet, FireDAC.Comp.Client, System.Rtti,uShowInfo, FMX.Grid.Style, FMX.Grid, FMX.ScrollBox,uPucFun, uFrameSet,Data.Bind.Grid, FireDAC.Stan.StorageJSON, Data.Bind.Components, Data.Bind.DBScope, FireDAC.Stan.StorageBin,FMX.DialogService,uAddKey, FMX.StdCtrls,Generics.Collections; type TfrmSetMain = class(TForm) Rectangle1: TRectangle; Rectangle7: TRectangle; Rectangle8: TRectangle; ImageList1: TImageList; Rectangle13: TRectangle; Rectangle12: TRectangle; Rectangle14: TRectangle; Text7: TText; Rectangle10: TRectangle; Rectangle5: TRectangle; Rectangle2: TRectangle; Rectangle3: TRectangle; Rectangle6: TRectangle; Rectangle4: TRectangle; TxtFactoryCode: TText; Text6: TText; Rectangle33: TRectangle; Text20: TText; Rectangle11: TRectangle; TabControl1: TTabControl; Rectangle26: TRectangle; Rectangle27: TRectangle; Text17: TText; Text21: TText; Text4: TText; Glyph23: TGlyph; CheckBox1: TCheckBox; procedure Text7Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Rectangle2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); procedure Text20Click(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Text17Click(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure Text4Click(Sender: TObject); private public GridList:TList; IsSave:boolean; end; var frmSetMain: TfrmSetMain; implementation {$R *.fmx} uses uListConent, uDM, uMain, uSafeLog; procedure TfrmSetMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean); var i:integer; begin if IsSave then begin CanClose:=true; Exit; end; CanClose:=true; for I := 0 to GridList.Count-1 do begin if GridList.items[i].IsChange then begin if ShowInfoOKCancel('ÓоŽÝ‹µÄ”µ“þ߀δ±£´æ,´_¶¨ÒªÍ˳ö†á?') then begin Exit; end else begin CanClose:=false; Exit; end; end; end; end; procedure TfrmSetMain.FormCreate(Sender: TObject); var I: Integer; tbitem: TTabItem; Recitem:TFrameSet; begin GridList := TList.Create; IsSave:=false; TxtFactoryCode.Text:= FactoryCode; for I := 0 to iniListName.Count-1 do begin tbitem:= TabControl1.Add(TTabItem) as TTabItem; Recitem:= TFrameSet.Create(nil); GridList.Add(Recitem); Recitem.Parent:=tbitem; recitem.Align:=TAlignLayout.Client; tbitem.Text:= iniListName.Strings[i]; Recitem.id.Width:=0; //Òþ²ØIDÁÐ Recitem.Key.Width :=150; Recitem.Name.Width :=150; Recitem.Value.Width :=Recitem.GridSet.Width-Recitem.Name.Width-Recitem.Key.Width-Recitem.id.Width-10; dm.MemTableLoadTab(tbitem.Text,Recitem.gridset); end; end; procedure TfrmSetMain.Rectangle2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin self.StartWindowDrag; end; procedure TfrmSetMain.Text17Click(Sender: TObject); var tbitem: TTabItem; Recitem:TFrameSet; i:integer; begin // Êä³öÍêÕûÏìÓ¦ÐÅÏ¢ // WorkLog.MessageInfo('TfrmSetMain״̬Âë: %d,', [1]); frmAddKey:= TfrmAddKey.Create(nil); // WorkLog.MessageInfo('TfrmSetMain״̬Âë: %d,', [2]); frmAddKey.Position:=TFormPosition.MainFormCenter; // WorkLog.MessageInfo('TfrmSetMain״̬Âë: %d,', [3]); try frmAddKey.TxtFactoryCode:=TxtFactoryCode; //³§Çø // WorkLog.MessageInfo('TfrmSetMain״̬Âë: %d,', [4]); if frmAddKey.ShowModal=mrOk then begin // WorkLog.MessageInfo('TfrmSetMain״̬Âë: %d,', [5]); //Ôö¼Óµ½Êý¾Ý¿â for I := 1 to High(frmAddKey.KeyName) do begin dm.MemTableWriteKey(Trim(frmAddKey.TabName),Trim(frmAddKey.KeyName[i])); end; // WorkLog.MessageInfo('TfrmSetMain״̬Âë: %d,', [6]); tbitem:= TabControl1.Add(TTabItem) as TTabItem; Recitem:= TFrameSet.Create(nil); // WorkLog.MessageInfo('TfrmSetMain״̬Âë: %d,', [7]); GridList.Add(Recitem); Recitem.Parent:=tbitem; recitem.Align:=TAlignLayout.Client; // WorkLog.MessageInfo('TfrmSetMain״̬Âë: %d,', [8]); tbitem.Text:=frmAddKey.TabName; Recitem.id.Width:=0; //Òþ²ØIDÁÐ Recitem.Key.Width :=150; Recitem.Name.Width :=150; Recitem.Value.Width := Recitem.GridSet.Width - Recitem.Name.Width - Recitem.Key.Width - Recitem.id.Width - 10; dm.MemTableLoadTab(tbitem.Text,Recitem.GridSet); // WorkLog.MessageInfo('TfrmSetMain״̬Âë: %d,', [9]); end; finally frmAddKey.Free; end; end; procedure TfrmSetMain.Text20Click(Sender: TObject); begin Close; end; procedure TfrmSetMain.Text4Click(Sender: TObject); begin ShowTouchKeyBoard(); end; procedure TfrmSetMain.Text7Click(Sender: TObject); var i:integer; begin try for I := 0 to GridList.Count-1 do begin GridList.items[i].GridSet.Row:=1; GridList.items[i].GridSet.Col:=1; dm.MemTableSaveTab(GridList.items[i].GridSet); end; dm.fdmemtable1.SaveToFile(ExtractFilePath(Paramstr(0))+'system.json'); IsSave:=true; except end; Close; Application.Terminate; end; procedure TfrmSetMain.FormDestroy(Sender: TObject); begin GridList.Clear; GridList.Free; end; end.