Danke
Ich bin sehr froh, dass ich euch gefunden habe.
Leider krieg ich bei deiner Demo den Fehler "ungültiges Streamformat" und kanns nicht laufen lassen.
Aber es klappt mit Application.Terminate tatsächlich.
Ich habs sogar hingekriegt, dass er nach Ablauf des Timers und bei Drücken des Abbrechen-Buttons alles zumacht, wenn ein Feld nicht ausgefüllt ist.
Delphi-Quellcode:
procedure TFormIdentPunktEingabe.BitBtnAbbruchClick(Sender: TObject);
begin
TimerSec.Enabled:=false;
Label2.Visible:=false;
LabelSekunden.Visible:=false;
Label4.Visible:=false;
if (EditIdentPunkt.Text = '') or (EditEIP.Text = '') or (EditFIP.Text = '') or (EditSubnet.Text = '') or (EditGateway.Text = '') then
begin
Application.terminate;
end
else
Close;
end;
procedure TFormIdentPunktEingabe.TimerSecTimer(Sender: TObject);
var
SekAkt:integer;
begin
SekAkt:=StrToInt(LabelSekunden.Caption)-1;
if SekAkt <=0 then
begin
TimerSec.Enabled:=false;
if (EditIdentPunkt.Text = '') or (EditEIP.Text = '') or (EditFIP.Text = '') or (EditSubnet.Text = '') or (EditGateway.Text = '') then
begin
Application.terminate;
end
else
Close;
end
else
begin
LabelSekunden.Caption:=IntToStr(SekAkt);
end;
end;
Jetzt müsste ich nur vielleicht vorher noch ein Hinweisfenster aufmachen, das sagt, dass das Programm neu gestartet werden soll, und alle Felder gefüllt werden sollen. Aber irgendwie ist das umständlich.