unit main;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs, IdIOHandler, IdIOHandlerSocket,
IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdFTP,
Vcl.StdCtrls,
Vcl.ComCtrls,
Vcl.ExtCtrls, system.IOUtils, shellapi,
Vcl.Menus;
type
TForm1 =
class(TForm)
IdFTP1: TIdFTP;
IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
Memo_Log: TMemo;
Edit_Host: TEdit;
Edit_User: TEdit;
Edit_Password: TEdit;
Edit_Port: TEdit;
Edit_LS: TEdit;
Edit_RE: TEdit;
Edit_ET1: TEdit;
Edit_ET2: TEdit;
Edit_verbindungsDAUER: TEdit;
Label1: TLabel;
Timer1_dauer_Counter: TTimer;
ProgressBar_VerbindungsZeit: TProgressBar;
CheckBox_DebugLog: TCheckBox;
Button_start_action: TButton;
Edit_update_pause: TEdit;
Label2: TLabel;
timer_restarter: TTimer;
Edit_pause_wiederverbindung: TEdit;
Label3: TLabel;
CheckBox_verstecke_cmd: TCheckBox;
Label4: TLabel;
Edit_druck_pause: TEdit;
Button_STOP: TButton;
Edit_rechnungen_max: TEdit;
Edit_papierfach_max: TEdit;
Label_rechnung_aktuell: TLabel;
Label_Papier_aktuell: TLabel;
Label5: TLabel;
Label6: TLabel;
CheckBox_tray: TCheckBox;
CheckBox_autostart: TCheckBox;
TrayIcon1: TTrayIcon;
PopupMenu1: TPopupMenu;
ffneprogramm1: TMenuItem;
Timer1autominimize: TTimer;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Button_zähler_auf_null: TButton;
CheckBox_papierzähler: TCheckBox;
PopupMenu2: TPopupMenu;
Loglschen1: TMenuItem;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
edit_pause_zwischen_directories: TEdit;
CheckBox_SSL: TCheckBox;
procedure Timer1_dauer_CounterTimer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button_start_actionClick(Sender: TObject);
procedure timer_restarterTimer(Sender: TObject);
procedure Button_STOPClick(Sender: TObject);
procedure ffneprogramm1Click(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure TrayIcon1Click(Sender: TObject);
procedure TrayIcon1DblClick(Sender: TObject);
procedure CheckBox_trayClick(Sender: TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
procedure Timer1autominimizeTimer(Sender: TObject);
procedure Button_zähler_auf_nullClick(Sender: TObject);
procedure Loglschen1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
stop_op,progress_running: boolean;
programmpfad:
string;
papierfach, rechnungsfach: integer;
ts_log: tstringlist;
implementation
{$R *.dfm}
procedure addline (s:
string);
var
i: integer;
begin
try
form1.Memo_Log.Lines.Add(datetimetostr(now)+'
: '+S);
if form1.Memo_Log.Lines.Count>5000
then begin
if tfile.Exists (programmpfad+'
log_OLD.txt')
then begin
ts_log.loadfromfile (programmpfad+'
log_OLD.txt');
if ts_log.Count>20000
then begin
ts_log.Clear;
ts_log.Add(Datetimetostr(now)+'
Altes Log wurde automatisch zurückgesetzt da über 20 000 zeilen.')
end;
for I := 0
to form1.Memo_Log.Lines.Count-1
do ts_log.Add(form1.Memo_Log.Lines[i]);
end;
form1.Memo_Log.Lines.SaveToFile(programmpfad+'
log_OLD.txt');
form1.Memo_Log.Clear;
end;
form1.Memo_Log.Lines.SaveToFile(programmpfad+'
log.txt');
except on e:
exception do form1.Memo_Log.Lines.Add('
Fehler beim speichern des Log Files: '+e.
Message);
end;
end;
procedure Addline_Debug (S:
String);
var
i: integer;
begin
if form1.CheckBox_DebugLog.Checked=true
then begin
form1.Memo_Log.Lines.Add(datetimetostr(now)+'
_DEBUG: '+S);
if form1.Memo_Log.Lines.Count>5000
then begin
if tfile.Exists (programmpfad+'
log_OLD.txt')
then begin
ts_log.loadfromfile (programmpfad+'
log_OLD.txt');
if ts_log.Count>20000
then begin
ts_log.Clear;
ts_log.Add(Datetimetostr(now)+'
Altes Log wurde automatisch zurückgesetzt da über 100000 zeilen.')
end;
for I := 0
to form1.Memo_Log.Lines.Count-1
do ts_log.Add(form1.Memo_Log.Lines[i]);
end;
form1.Memo_Log.Lines.SaveToFile(programmpfad+'
log_OLD.txt');
form1.Memo_Log.Clear;
end;
form1.Memo_Log.Lines.SaveToFile(programmpfad+'
log.txt');
end;
end;
procedure savesettings;
var
ts: tstringlist;
begin
try
ts:=tstringlist.Create;
ts.Add(form1.Edit_Host.Text);
ts.Add(form1.Edit_User.Text);
ts.Add(form1.Edit_Password.Text);
ts.Add(form1.Edit_Port.Text);
TS.Add(Form1.Edit_LS.Text);
TS.Add(Form1.Edit_RE.Text);
TS.Add(Form1.Edit_ET1.Text);
TS.Add(Form1.Edit_ET2.Text);
TS.Add(Form1.Edit_verbindungsdauer.Text);
TS.Add(Form1.Edit_update_pause.Text);
TS.Add(Form1.Edit_pause_wiederverbindung.Text);
TS.Add(Form1.Edit_druck_pause.Text);
TS.Add(Form1.Edit_rechnungen_max.Text);
TS.Add(Form1.Edit_papierfach_max.Text);
if form1.CheckBox_tray.Checked=false
then ts.Add('
tray:off')
else ts.Add('
tray:on');
if form1.CheckBox_autostart.Checked=false
then ts.Add('
autostart:off')
else ts.Add('
autostart:on');
if form1.CheckBox_DebugLog.Checked=false
then ts.Add('
debug:off')
else ts.Add('
debug:on');
if form1.CheckBox_verstecke_cmd.Checked=false
then ts.Add('
hidecmd:off')
else ts.Add('
hidecmd:on');
ts.Add(inttostr(papierfach));
ts.Add(inttostr(rechnungsfach));
ts.Add(form1.edit_pause_zwischen_directories.text);
ts.SaveToFile(programmpfad+'
settings.txt');
ts.Free;
except on e:
exception do
addline('
Fehler beim speichern der Einstellungen: '+e.
message);
end;
end;
procedure loadsettings;
var
ts: tstringlist;
begin
ts:=tstringlist.Create;
if tfile.Exists(programmpfad+'
settings.txt')
then begin
ts.LoadFromFile(programmpfad+'
settings.txt');
form1.Edit_Host.Text:=ts.strings[0];
form1.Edit_User.Text:=ts.strings[1];
form1.Edit_Password.Text:=ts.strings[2];
form1.Edit_Port.Text:=ts.strings[3];
form1.Edit_LS.Text:=ts.strings[4];
form1.Edit_RE.Text:=ts.strings[5];
form1.Edit_ET1.Text:=ts.strings[6];
form1.Edit_ET2.Text:=ts.strings[7];
form1.Edit_verbindungsdauer.Text:=ts.strings[8];
form1.Edit_update_pause.Text:=ts.strings[9];
form1.Edit_pause_wiederverbindung.Text:=ts.strings[10];
form1.Edit_druck_pause.Text:=ts.strings[11];
form1.Edit_rechnungen_max.Text:=ts.strings[12];
form1.Edit_papierfach_max.Text:=ts.strings[13];
if ts.Strings[14]='
tray:off'
then form1.CheckBox_tray.Checked:=false;
if ts.Strings[15]='
autostart:off'
then form1.CheckBox_autostart.Checked:=false;
if ts.Strings[16]='
debug:off'
then form1.CheckBox_DebugLog.Checked:=false;
if ts.Strings[17]='
hidecmd:off'
then form1.CheckBox_verstecke_cmd.Checked:=false;
papierfach:=strtoint(ts.Strings[18]);
rechnungsfach:=strtoint(ts.Strings[19]);
form1.Label_rechnung_aktuell.Caption:=ts.Strings[19];
form1.Label_Papier_aktuell.Caption:=ts.Strings[18];
try form1.edit_pause_zwischen_directories.text:=ts.Strings[20];
except end;
end;
ts.Free;
end;
procedure ftpverbinden ;
begin
if form1.IdFTP1.Connected=false
then begin
try
form1.ProgressBar_VerbindungsZeit.max:=strtoint(form1.Edit_verbindungsDAUER.Text);
form1.ProgressBar_VerbindungsZeit.Position:=strtoint(form1.Edit_verbindungsDAUER.Text);
form1.IdFTP1.Username:= form1.Edit_User.Text;
form1.IdFTP1.Password:= form1.Edit_Password.Text;
form1.IdFTP1.Port:= strtoint(form1.Edit_Port.Text);
form1.IdFTP1.Host:= form1.Edit_Host.Text;
form1.Timer1_dauer_Counter.enabled:=true;
form1.IdFTP1.Connect;
addline_debug('
FTP Verbindung hergestellt');
except on e:
exception do addline('
Fehler während Verbindungsaufbau: '+e.
Message)
end;
end else addline('
FTP Verbindung sollte aufgebaut werden ist aber bereits aufgebaut.');
end;
procedure ftp_trennen;
begin
try
if form1.IdFTP1.Connected=true
then begin
form1.IdFTP1.Disconnect;
addline_debug('
FTP Erfolgreich getrennt');
end;
except on e:
exception do begin
addline('
Fehler beim trennen der FTP Verbidung: '+e.
Message);
try form1.IdFTP1.Disconnect
except end;
end;
end;
end;
procedure ftp_directory_change (S:
String);
begin
sleep(strtoint(form1.edit_pause_zwischen_directories.text)*1000);
try
form1.IdFTP1.ChangeDir(s);
addline_debug('
ftp directory change ok: '+s);
except on e:
exception do addline('
Fehler beim Directory change: '+e.
message)
end;
end;
procedure PrinServer_action;
var
i: integer;
ts: tstringlist;
s:
string;
begin
progress_running:=true;
ts:=tstringlist.Create;
if form1.IdFTP1.Connected=false
then begin
form1.timer_restarter.enabled:=false;
addline('
Die Verbindung wurde getrennt? sollte aber offen sein für PrintServer Action. versuche neustart des ganzen Task');
sleep(2000);
form1.Button_start_action.Click;
abort;
end;
try
//erstes verzeichniss LS
ftp_directory_change(form1.Edit_LS.Text);
//mache aktion
form1.idftp1.List();
for i := 0
to form1.idftp1.DirectoryListing.Count-1
do
if form1.idftp1.DirectoryListing[i].FileName='
.'=false
then
if form1.idftp1.DirectoryListing[i].FileName='
..'=false
then begin
s:=form1.idftp1.DirectoryListing[i].FileName;
ts.Add(s);
form1.idftp1.Get(s,programmpfad+'
LS\'+s, true);
form1.idftp1.Delete(s);
addline_debug('
: LS Download von Server OK: '+s);
end;
if ts.Count>0
then begin
s:='
ACTUAL_PRINT.PDF';
for I := ts.count-1
downto 0
do begin
if tfile.exists(programmpfad+'
LS\'+s)
then begin
tfile.Delete(programmpfad+'
LS\'+s);
addline('
AlteDatei war vorhanden und wurde gelöscht: '+programmpfad+'
LS\'+s);
end;
tfile.move(programmpfad+'
LS\'+ts.strings[i],programmpfad+'
LS\'+s );
if tfile.Exists(Programmpfad+'
LS.bat')=false
then begin
addline('
BAT Fehler... '+ Programmpfad+'
LS.bat nicht gefunden');
end else begin
if form1.checkbox_verstecke_cmd.Checked=true
then
ShellExecute(Application.Handle, '
open', PChar('
LS.bat'),
nil,
nil, SW_HIDE)
else
ShellExecute(Application.Handle, '
open', PChar('
LS.bat'),
nil,
nil, SW_NORMAL);
papierfach:=papierfach+1;
try
addline_debug('
Druckbefehl (LS) gesendet: '+ts.Strings[i]);
try
sleep(strtoint(form1.Edit_druck_pause.text)*1000);
tfile.Delete(programmpfad+'
LS\'+s);
except on e:
exception do
addline('
Fehler beim löschen der Lokalen Datei (LS)... evt zu kurze Wartezeit? '+e.
Message)
end;
TS.Delete(i);
except on e:
exception do addline(e.
Message)
end;
end;
end;
end;
ts.Clear;
//zweites verzeichniss RE
ftp_directory_change(form1.Edit_RE.Text);
//mache aktion
form1.idftp1.List();
for i := 0
to form1.idftp1.DirectoryListing.Count-1
do
if form1.idftp1.DirectoryListing[i].FileName='
.'=false
then
if form1.idftp1.DirectoryListing[i].FileName='
..'=false
then begin
s:=form1.idftp1.DirectoryListing[i].FileName;
ts.Add(s);
form1.idftp1.Get(s,programmpfad+'
RE\'+s, true);
form1.idftp1.Delete(s);
addline_debug('
: RE Download von Server OK: '+s);
end;
if ts.Count>0
then begin
s:='
ACTUAL_PRINT.PDF';
for I := ts.count-1
downto 0
do begin
if tfile.exists(programmpfad+'
RE\'+s)
then begin
tfile.Delete(programmpfad+'
RE\'+s);
addline('
AlteDatei war vorhanden und wurde gelöscht: '+programmpfad+'
RE\'+s);
end;
tfile.move(programmpfad+'
RE\'+ts.strings[i],programmpfad+'
RE\'+s );
if tfile.Exists(Programmpfad+'
RE.bat')=false
then begin
addline('
BAT Fehler... '+ Programmpfad+'
RE.bat nicht gefunden');
end else begin
if form1.checkbox_verstecke_cmd.Checked=true
then
ShellExecute(Application.Handle, '
open', PChar('
RE.bat'),
nil,
nil, SW_HIDE)
else
ShellExecute(Application.Handle, '
open', PChar('
RE.bat'),
nil,
nil, SW_NORMAL);
rechnungsfach:=rechnungsfach+1;
try
addline_debug('
Druckbefehl (RE) gesendet: '+ts.Strings[i]);
try
sleep(strtoint(form1.Edit_druck_pause.text)*1000);
tfile.Delete(programmpfad+'
RE\'+s);
except on e:
exception do
addline('
Fehler beim löschen der Lokalen Datei (RE)... evt zu kurze Wartezeit? '+e.
Message)
end;
TS.Delete(i);
except on e:
exception do addline(e.
Message)
end;
end;
end;
end;
ts.Clear;
//drittes verzeichniss ET1
ftp_directory_change(form1.Edit_ET1.Text);
//mache aktion
form1.idftp1.List();
for i := 0
to form1.idftp1.DirectoryListing.Count-1
do
if form1.idftp1.DirectoryListing[i].FileName='
.'=false
then
if form1.idftp1.DirectoryListing[i].FileName='
..'=false
then begin
s:=form1.idftp1.DirectoryListing[i].FileName;
ts.Add(s);
form1.idftp1.Get(s,programmpfad+'
ET1\'+s, true);
form1.idftp1.Delete(s);
addline_debug('
: ET1 Download von Server OK: '+s);
end;
if ts.Count>0
then begin
s:='
ACTUAL_PRINT.PDF';
for I := ts.count-1
downto 0
do begin
if tfile.exists(programmpfad+'
ET1\'+s)
then begin
tfile.Delete(programmpfad+'
ET1\'+s);
addline('
AlteDatei war vorhanden und wurde gelöscht: '+programmpfad+'
ET1\'+s);
end;
tfile.move(programmpfad+'
ET1\'+ts.strings[i],programmpfad+'
ET1\'+s );
if tfile.Exists(Programmpfad+'
ET1.bat')=false
then begin
addline('
BAT Fehler... '+ Programmpfad+'
ET1.bat nicht gefunden');
end else begin
if form1.checkbox_verstecke_cmd.Checked=true
then ShellExecute(Application.Handle, '
open', PChar('
ET1.bat'),
nil,
nil, SW_HIDE)
else ShellExecute(Application.Handle, '
open', PChar('
ET1.bat'),
nil,
nil, SW_NORMAL);
try
addline_debug('
Druckbefehl (ET1) gesendet: '+ts.Strings[i]);
try
sleep(strtoint(form1.Edit_druck_pause.text)*1000);
tfile.Delete(programmpfad+'
ET1\'+s);
except on e:
exception do
addline('
Fehler beim löschen der Lokalen Datei (ET1)... evt zu kurze Wartezeit? '+e.
Message)
end;
TS.Delete(i);
except on e:
exception do addline(e.
Message)
end;
end;
end;
end;
ts.Clear;
//viertes verzeichniss ET2
ftp_directory_change(form1.Edit_ET2.Text);
//mache aktion
form1.idftp1.List();
for i := 0
to form1.idftp1.DirectoryListing.Count-1
do
if form1.idftp1.DirectoryListing[i].FileName='
.'=false
then
if form1.idftp1.DirectoryListing[i].FileName='
..'=false
then begin
s:=form1.idftp1.DirectoryListing[i].FileName;
ts.Add(s);
form1.idftp1.Get(s,programmpfad+'
ET2\'+s, true);
form1.idftp1.Delete(s);
addline_debug('
: ET2 Download von Server OK: '+s);
end;
if ts.Count>0
then begin
s:='
ACTUAL_PRINT.PDF';
for I := ts.count-1
downto 0
do begin
if tfile.exists(programmpfad+'
ET2\'+s)
then begin
tfile.Delete(programmpfad+'
ET2\'+s);
addline('
AlteDatei war vorhanden und wurde gelöscht: '+programmpfad+'
ET2\'+s);
end;
tfile.move(programmpfad+'
ET2\'+ts.strings[i],programmpfad+'
ET2\'+s );
if tfile.Exists(Programmpfad+'
ET2.bat')=false
then begin
addline('
BAT Fehler... '+ Programmpfad+'
ET2.bat nicht gefunden');
end else begin
if form1.checkbox_verstecke_cmd.Checked=true
then
ShellExecute(Application.Handle, '
open', PChar('
ET2.bat'),
nil,
nil, SW_HIDE)
else
ShellExecute(Application.Handle, '
open', PChar('
ET2.bat'),
nil,
nil, SW_NORMAL);
try
addline_debug('
Druckbefehl (ET2) gesendet: '+ts.Strings[i]);
try
sleep(strtoint(form1.Edit_druck_pause.text)*1000);
tfile.Delete(programmpfad+'
ET2\'+s);
except on e:
exception do
addline('
Fehler beim löschen der Lokalen Datei (ET2)... evt zu kurze Wartezeit? '+e.
Message)
end;
TS.Delete(i);
except on e:
exception do addline(e.
Message)
end;
end;
end;
end;
if form1.CheckBox_papierzähler.Checked=true
then begin
if papierfach>strtoint(form1.Edit_papierfach_max.text)
then begin
if form1.checkbox_verstecke_cmd.Checked=true
then
ShellExecute(Application.Handle, '
open', PChar('
wartung.bat'),
nil,
nil, SW_HIDE)
else
ShellExecute(Application.Handle, '
open', PChar('
wartung.bat'),
nil,
nil, SW_NORMAL);
rechnungsfach:=0;
papierfach:=0;
end else begin
if rechnungsfach>strtoint(form1.Edit_rechnungen_max.text)
then begin
if form1.checkbox_verstecke_cmd.Checked=true
then
ShellExecute(Application.Handle, '
open', PChar('
wartung.bat'),
nil,
nil, SW_HIDE)
else
ShellExecute(Application.Handle, '
open', PChar('
wartung.bat'),
nil,
nil, SW_NORMAL);
rechnungsfach:=0;
papierfach:=0;
end;
end;
end;
savesettings;
addline_debug('
PrinServer_Action fertig!');
except on e:
exception do begin
addline('
Fehler im "PrinServer_action" '+e.
Message);
try ftp_trennen
except on e:
exception do addline('
Fehler beim versuch FTP zu trennen... '+e.
Message);
end;
end;
end;
form1.Label_rechnung_aktuell.Caption:=inttostr(rechnungsfach);
form1.Label_Papier_aktuell.Caption:= inttostr(papierfach);
ts.free;
progress_running:=false;
form1.timer_restarter.interval:=strtoint(form1.Edit_update_pause.Text)*1000;
if form1.ProgressBar_VerbindungsZeit.Position>strtoint(form1.Edit_pause_wiederverbindung.text)
then
form1.timer_restarter.enabled:=true
else begin
form1.timer_restarter.enabled:=false;
addline_debug('
Restart Timer wurde nicht gestartet da weniger als '+ form1.Edit_pause_wiederverbindung.text+'
sek übrig sind: '+inttostr(form1.ProgressBar_VerbindungsZeit.Position)+'
Sek');
ftp_trennen;
end;
end;
procedure TForm1.Button_zähler_auf_nullClick(Sender: TObject);
begin
papierfach:=0;
rechnungsfach:=0;
form1.Label_rechnung_aktuell.Caption:='
0';
form1.Label_Papier_aktuell.Caption:='
0';
savesettings;
end;
procedure TForm1.Button_start_actionClick(Sender: TObject);
begin
if stop_op=true
then begin
stop_op:=false;
ftp_trennen;
abort;
end
else begin
ftpverbinden;
PrinServer_action;
end;
end;
procedure TForm1.Button_STOPClick(Sender: TObject);
begin
stop_op:=true;
end;
procedure TForm1.CheckBox_trayClick(Sender: TObject);
begin
if form1.CheckBox_tray.Checked=false
then form1.TrayIcon1.Visible:=false
else form1.TrayIcon1.Visible:=true;
end;
procedure TForm1.ffneprogramm1Click(Sender: TObject);
begin
form1.Visible:=true;
form1.WindowState:=wsnormal;
end;
procedure TForm1.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
savesettings;
addline('
Close Tool');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ts_log:=tstringlist.Create;
progress_running:=false;
stop_op:=false;
programmpfad:=extractfilepath(application.ExeName)+'
\';
if tfile.Exists(programmpfad+'
log.txt')
then form1.Memo_Log.Lines.LoadFromFile(programmpfad+'
log.txt');
addline('
');
addline('
Programm Start');
loadsettings;
if tdirectory.exists(programmpfad+'
LS')=false
then tdirectory.CreateDirectory(programmpfad+'
LS');
if tdirectory.exists(programmpfad+'
RE')=false
then tdirectory.CreateDirectory(programmpfad+'
RE');
if tdirectory.exists(programmpfad+'
ET1')=false
then tdirectory.CreateDirectory(programmpfad+'
ET1');
if tdirectory.exists(programmpfad+'
ET2')=false
then tdirectory.CreateDirectory(programmpfad+'
ET2');
if form1.CheckBox_autostart.checked=true
then form1.Button_start_action.Click;
end;
procedure TForm1.FormResize(Sender: TObject);
begin
if form1.CheckBox_tray.Checked=true
then if form1.WindowState=wsminimized
then form1.Visible:=false;
end;
procedure TForm1.Loglschen1Click(Sender: TObject);
begin
form1.Memo_Log.Clear;
addline('
Log cleaned');
end;
procedure TForm1.Timer1autominimizeTimer(Sender: TObject);
begin
form1.Timer1autominimize.Enabled:=false;
if form1.CheckBox_tray.Checked=true
then form1.WindowState:=wsminimized;
end;
procedure TForm1.Timer1_dauer_CounterTimer(Sender: TObject);
begin
if stop_op=true
then begin
form1.ProgressBar_VerbindungsZeit.Position:=0;
Timer1_dauer_Counter.Enabled:=false;
ftp_trennen;
abort;
end;
if form1.ProgressBar_VerbindungsZeit.Position>0
then form1.ProgressBar_VerbindungsZeit.Position:=form1.ProgressBar_VerbindungsZeit.Position-1;
form1.ProgressBar_VerbindungsZeit.Refresh;
if progress_running=false
then begin
if form1.ProgressBar_VerbindungsZeit.Position=0
then begin
if form1.IdFTP1.Connected=true
then form1.IdFTP1.Disconnect;
form1.Timer1_dauer_Counter.Enabled:=false;
Addline_Debug('
Beendigung des PrintServer Vorgang... ERFOLGREICH');
form1.Button_start_action.Click;
end;
end else begin
Addline_Debug('
Warte auf beendigung des PrintServer Vorgang...');
end;
end;
procedure TForm1.timer_restarterTimer(Sender: TObject);
begin
if stop_op=false
then PrinServer_action
else begin
form1.timer_restarter.Enabled:=false;
ftp_trennen;
end;
end;
procedure TForm1.TrayIcon1Click(Sender: TObject);
begin
form1.Visible:=true;
form1.WindowState:=wsnormal;
form1.BringToFront;
end;
procedure TForm1.TrayIcon1DblClick(Sender: TObject);
begin
form1.Visible:=true;
form1.WindowState:=wsnormal;
form1.BringToFront;
end;
end.