Ein paar Anmerkungen zu deinem Code
- Das hier
Delphi-Quellcode:
If DataModule2.IBD.LoginPrompt = TRUE THEN DataModule2.IBD.LoginPrompt := FALSE;
IF DataModule2.IBD.Connected = TRUE THEN DataModule2.IBD.Connected := FALSE;
kannst du auch so schreiben
Delphi-Quellcode:
DataModule2.IBD.LoginPrompt := FALSE;
DataModule2.IBD.Connected := FALSE;
- das hier
Delphi-Quellcode:
Screen.Cursor := ...;
Foo;
// Hier kommt eine Exception und der Cursor wird nicht zurückgesetzt!
try
Bar;
finally
Screen.Cursor := ...;
end;
eher so
Delphi-Quellcode:
Screen.Cursor := ...;
try
Foo; // kann kommen was will, der Cursor wird zurückgesetzt
Bar;
finally
Screen.Cursor := ...;
end;
- und hier
Delphi-Quellcode:
try
Foo;
Bar;
except
on E:EDatabaseError do
begin
MessageBeep(MB_ICONEXCLAMATION);
MessageDlg(E.Message, mtError, [mbOk], 0);
end;
end;
machst du das Gleiche, was bei einer normalen (ungefangenen) Exception auch passiert.
Es wird eine Messagebox mit dem Fehler angezeigt. Allerdings wird bei dir der Code nach except ... end;
noch weiter ausgeführt.
Es passiert hier nur deswegen nichts, weil danach nur noch Zeilen kommen, die auch bei einer Exception ausgeführt werden.
So behandelt man Exceptions nicht.
kannst du also auch so vereinfachen (verbessern)
Zum eigentlichen Thema:
Wenn du uns das Script zeigst, dann können wir evtl. auch die Frage beantworten.
Offene Fragen schließen:
Schreibe eine Antwort und entferne unten den Haken bei "Dieses Thema als offene Frage markieren"
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)