Files
EMPolar-plgEMPDeleniTrubek/frmCalc.pas
2025-09-13 09:14:20 +02:00

188 lines
4.5 KiB
ObjectPascal

unit frmCalc;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, AdvTouchKeyboard,
Vcl.ExtCtrls;
type
TformCalc = class(TForm)
lblCalcPnl: TLabel;
advKbd: TAdvTouchKeyboard;
edtNum: TEdit;
btnCalcPnlClose: TButton;
procedure advKbdKeyClick(Sender: TObject; Index: Integer);
procedure btnCalcPnlCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{
procedure NastavMsgWin(b1Vis: Boolean; b2Vis: Boolean; b3Vis: Boolean; b1Res: Integer; b2Res: Integer; b3Res: Integer; timerInt: Integer; timerRes: Integer;
b1Lbl: string; b2Lbl: string; b3Lbl: string; titulek: string; msg: string; memoMsg: string);
}
public
pnlAkce, mrVal: integer;
retVal: string;
edtNumAlign: TAlignment;
mnMax: Single;
end;
var
formCalc: TformCalc;
implementation
{$R *.dfm}
uses System.StrUtils,
datModul, funkceTB, frmMain;
{
procedure TformCalc.NastavMsgWin(b1Vis: Boolean; b2Vis: Boolean; b3Vis: Boolean; b1Res: Integer; b2Res: Integer; b3Res: Integer; timerInt: Integer; timerRes: Integer;
b1Lbl: string; b2Lbl: string; b3Lbl: string; titulek: string; msg: string; memoMsg: string);
begin
end;
}
procedure TformCalc.advKbdKeyClick (Sender: TObject; Index: Integer);
var i: integer;
m, mnOdeslat, mnOK, mnZmIO, mnZmNeopr: Extended;
msg: string;
rI: Integer;
rE: Extended;
begin
i:= -1;
if (RightStr(edtNum.Text.Trim,1)='"') and (Index<>10) and (Index<>11) and (Index<>13) then
Exit;
case Index of
10: begin // enter
edtNum.Text:= Trim(edtNum.Text);
case pnlAkce of
1,3,5: begin // osobni cislo / cislo nadoby / DN
if not(TryStrToInt(edtNum.Text, rI)) then
rI:= 0;
retVal:= rI.ToString;
end;
2,7: begin
if not(TryStrToFloat(edtNum.Text, rE)) then // mnozstvi do srotu (mm) / sila (tloustka)
rE:= 0;
retVal:= rE.ToString;
end;
4,6: retVal:= edtNum.Text; // material / prumer
end;
mrVal:= 0;
Close;
end;
11: begin
edtNum.Text:= LeftStr(edtNum.Text, Length(edtNum.Text)-1);
// if (edtNum.Text='') then
// edtNum.Text:= '0';
end;
12: if (edtNum.Text<>'') and (Pos(',', edtNum.Text)=0) then
edtNum.Text:= edtNum.Text + ',';
13: edtNum.Text:= '';
else
edtNum.Text:= edtNum.Text + advKbd.Keys[Index].Caption;
end;
if (Length(edtNum.Text)=2) and (edtNum.Text.LeftStr(1)='0') and (edtNum.Text<>'0.') then
edtNum.Text:= RightStr(edtNum.Text, 1);
end;
procedure TformCalc.btnCalcPnlCloseClick (Sender: TObject);
begin
mrVal:= 10;
Close;
end;
procedure TformCalc.FormCreate (Sender: TObject);
begin
self.Visible:= false;
end;
procedure TformCalc.FormShow (Sender: TObject);
begin
Self.Left:= (Screen.WorkAreaWidth - self.Width) div 2;
Self.Top:= (Screen.WorkAreaHeight - self.Height) div 2;
if (btnCalcPnlClose.CanFocus) then
btnCalcPnlClose.SetFocus;
// desetinna tecka
advKbd.Keys.Items[12].Width:= 0;
advKbd.Keys.Items[12].Height:= 0;
// znak "
advKbd.Keys.Items[14].Width:= 0;
advKbd.Keys.Items[14].Height:= 0;
if (pnlAkce=1) then
begin
lblCalcPnl.Caption:= 'Osobní číslo zaměstnance:';
end;
if (pnlAkce=2) then
begin
advKbd.Keys.Items[12].Width:= 100;
advKbd.Keys.Items[12].Height:= 100;
lblCalcPnl.Caption:= 'Množství do šrotu (mm)';
end;
if (pnlAkce=3) then
begin
lblCalcPnl.Caption:= 'Číslo nádoby';
end;
if (pnlAkce=4) then
begin
lblCalcPnl.Caption:= 'Materiál';
end;
if (pnlAkce=5) then
begin
lblCalcPnl.Caption:= 'DN';
end;
if (pnlAkce=6) then
begin
lblCalcPnl.Caption:= 'Průměr';
advKbd.Keys.Items[12].Width:= 100; // desetinna tecka
advKbd.Keys.Items[12].Height:= 100;
advKbd.Keys.Items[14].Width:= 100; // znak "
advKbd.Keys.Items[14].Height:= 100;
end;
if (pnlAkce=7) then
begin
lblCalcPnl.Caption:= 'Síla (tloušťka)';
advKbd.Keys.Items[12].Width:= 100; // desetinna tecka
advKbd.Keys.Items[12].Height:= 100;
advKbd.Keys.Items[14].Width:= 100; // znak "
advKbd.Keys.Items[14].Height:= 100;
end;
end;
end.