📄 disp_ext.pas
字号:
unit disp_ext;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ActnList, OleCtrls, Formula_TLB, StdCtrls, {Menus,} ComCtrls, Db, RxMemDS,
Grids, DBGrids, Menus;
type
TGestione_Dispositivi = class(TForm)
ActionList1: TActionList;
Formula: TFormula;
Imposta: TAction;
Attiva: TAction;
Disattiva: TAction;
Nascondi: TAction;
MainMenu1: TMainMenu;
File1: TMenuItem;
Attiva1: TMenuItem;
Disattiva1: TMenuItem;
Imposta1: TMenuItem;
Nascondi1: TMenuItem;
stato: TStatusBar;
Tampone: TRxMemoryData;
TamponeData: TDateField;
TamponeOra: TTimeField;
TamponeCodice: TStringField;
TamponeQta: TFloatField;
Pulisci: TAction;
DBGrid1: TDBGrid;
dsTampone: TDataSource;
procedure ImpostaExecute(Sender: TObject);
procedure AttivaExecute(Sender: TObject);
procedure DisattivaExecute(Sender: TObject);
procedure NascondiExecute(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure PulisciExecute(Sender: TObject);
procedure FormulaDataEvent(Sender: TObject; OutputID: Smallint);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
chiudi_ok : boolean ;
public
{ Public declarations }
Procedure Chiudi ;
end;
var
Gestione_Dispositivi: TGestione_Dispositivi;
implementation
//uses main;
{$R *.DFM}
procedure Tgestione_Dispositivi.Chiudi ;
begin
chiudi_ok := true ;
close ;
end;
procedure TGestione_Dispositivi.ImpostaExecute(Sender: TObject);
begin
Formula.Action ;
end;
procedure TGestione_Dispositivi.AttivaExecute(Sender: TObject);
begin
Formula.open ;
attiva.Checked := True ;
disattiva.Checked := False ;
Stato.SimpleText := 'Comunicazione attiva' ;
end;
procedure TGestione_Dispositivi.DisattivaExecute(Sender: TObject);
begin
Formula.Close;
attiva.Checked := False ;
disattiva.Checked := True ;
Stato.SimpleText := 'Comunicazione non attiva' ;
end;
procedure TGestione_Dispositivi.NascondiExecute(Sender: TObject);
begin
self.WindowState := wsMinimized ;
end;
procedure TGestione_Dispositivi.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if not chiudi_ok then
CanClose := (MessageDlg('Chiudendo questa finestra si interrompe il collegamento con il dispositivo esterno, continuare ?',mtConfirmation,[mbYes,mbNo],0) = mrYes)
else
CanClose := True ;
Disattiva.Execute ;
end;
procedure TGestione_Dispositivi.PulisciExecute(Sender: TObject);
begin
While not Tampone.IsEmpty do Tampone.Delete ;
end;
procedure TGestione_Dispositivi.FormulaDataEvent(Sender: TObject;
OutputID: Smallint);
Var
riga : String ;
strQta : String ;
Anno,Mese,Giorno,Ora,minuto,Secondo,Code : integer ;
begin
riga := Formula.DeviceData ;
strQta := Trim(copy(riga,52,5)) ;
If strQta = '' then strQta := '1' ;
If strQta = '0' then exit ;
Tampone.append ;
val(Copy(riga,1,2),Giorno,Code) ;
val(Copy(riga,4,2),Mese,Code) ;
val(Copy(riga,7,2),Anno,Code) ;
val(Copy(riga,10,2),Ora,Code) ;
val(Copy(riga,13,2),Minuto,Code) ;
val(Copy(riga,16,2),Secondo,Code) ;
TamponeData.AsDateTime := EncodeDate(Anno+2000,Mese,Giorno) ;
TamponeOra.AsDateTime := EncodeTime(Ora,Minuto,Secondo,0) ;
TamponeCodice.AsString := Trim(copy(riga,19,32)) ;
TamponeQta.AsString := strQta ;
Tampone.Post ;
end;
procedure TGestione_Dispositivi.FormCreate(Sender: TObject);
begin
chiudi_ok := false ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -