unit uDevConfig; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ZAbstractRODataset, ZDataset, Grids, BaseGrid, AdvGrid, AdvUtil, AdvObj; type TfrmDevConfig = class(TForm) Label1: TLabel; cb_nilm: TComboBox; Label2: TLabel; AdvStringGrid1: TAdvStringGrid; ZReadOnlyQuery1: TZReadOnlyQuery; Button1: TButton; Button2: TButton; Button3: TButton; Label3: TLabel; cb_nilmCh: TComboBox; Label4: TLabel; edt_devName: TEdit; edt_devID: TEdit; procedure FormShow(Sender: TObject); procedure Button1Click(Sender: TObject); procedure AdvStringGrid1ClickCell(Sender: TObject; ARow, ACol: Integer); private { Private declarations } select_devID : integer; public { Public declarations } procedure ShowDev(); end; var frmDevConfig: TfrmDevConfig; implementation uses uMain; {$R *.dfm} procedure TfrmDevConfig.ShowDev(); var idxNo, i, nilmid, nilmCh : integer; devID, devName, S : string; begin try try if not frmMain.ZConnection1.Connected then frmMain.ZConnection1.Connect(); if frmMain.ZConnection1.Connected then begin ZReadOnlyQuery1.Active := false; ZReadOnlyQuery1.SQL.Clear; ZReadOnlyQuery1.SQL.Add('SELECT * FROM dev_info'); ZReadOnlyQuery1.Open; if ZReadOnlyQuery1.RecordCount> 0 then begin ZReadOnlyQuery1.First; i := 0; AdvStringGrid1.RowCount := ZReadOnlyQuery1.RecordCount + 1; While not ZReadOnlyQuery1.Eof do begin Inc(i, 1); idxNo := ZReadOnlyQuery1.FieldByName('idxNo').asInteger; devID := ZReadOnlyQuery1.FieldByName('devID').asString; nilmid := ZReadOnlyQuery1.FieldByName('nilm_id').asInteger; nilmCh := ZReadOnlyQuery1.FieldByName('nilm_chNo').asInteger; devName := ZReadOnlyQuery1.FieldByName('devName').asString; AdvStringGrid1.Cells[0, i] := inttostr(idxNo); AdvStringGrid1.Cells[1, i] := devID; AdvStringGrid1.Cells[2, i] := devName; AdvStringGrid1.Cells[3, i] := inttostr(nilmid); AdvStringGrid1.Cells[4, i] := inttostr(nilmCh); AdvStringGrid1.Cells[5, i] := ''; AdvStringGrid1.Cells[6, i] := ''; AdvStringGrid1.Cells[7, i] := ''; ZReadOnlyQuery1.Next; end; end; end; finally if frmMain.ZConnection1.Connected then frmMain.ZConnection1.Disconnect; end; except on e : exception do begin frmMain.printlog('Database Connect Error :: '+e.Message + ' [DB]'); end; end; end; procedure TfrmDevConfig.FormShow(Sender: TObject); begin ShowDev(); end; procedure TfrmDevConfig.Button1Click(Sender: TObject); var sql, devID, nilmID, nilmCh, S : string; begin sql := ''; S := ''; S := cb_nilm.Text; nilmID := Copy(S, 1, Pos(':',S)-1); nilmCh := cb_nilmCh.Text; devID := edt_devID.Text; sql := 'INSERT INTO dev_info VALUES(null, '+ ''''+devID+''', '+ ''+nilmID+', '+ ''+nilmCh+', '+ ''''+edt_devName.Text+''' '+ ')'; frmMain.insertSQL(sql); ShowDev(); end; procedure TfrmDevConfig.AdvStringGrid1ClickCell(Sender: TObject; ARow, ACol: Integer); var nilmID : integer; begin if ARow > 0 then begin select_devID := StrToIntDef(AdvStringGrid1.Cells[0, ARow], 0); edt_DevID.Text := AdvStringGrid1.Cells[1, ARow]; edt_devName.Text := AdvStringGrid1.Cells[2, ARow]; nilmID := StrToIntDef( AdvStringGrid1.Cells[3, ARow], 0); if nilmID > 0 then begin if frmMain.fNILM[nilmID].idxNo>0 then begin cb_nilm.Text := format('%d:%s',[nilmID, frmMain.fNILM[nilmID]._NAME]); end; end; cb_nilmCh.Text := AdvStringGrid1.Cells[4, ARow]; //AdvStringGrid1.Cells[5, ARow] := ''; //AdvStringGrid1.Cells[6, ARow] := ''; //AdvStringGrid1.Cells[7, ARow] := ''; end; end; end.