![]() |
Indy - Fehlermeldungen unterdrücken
Hallo allerseites,
ich habe einen FTP-Uploader mit Hilfe der Indy-Komponenten geschrieben, welcher auch schon recht gut funktioniert. Das Programm wird von einem anderen Programm aus gestartet, sucht danach in einem definierten Verzeichnis nach "neuen" Dateien, lädt diese dann automatisch auf den Server und beendet sich danach automatisch. Und hier gibt es mitunter ein Problem: Wenn nämlich die Verbindung zum Server aus irgendeinem Grund total abbricht, kommt ein Fenster mit einer Fehlermeldung: Socket-Error #1006 oder ähnliches und will mit OK bestätigt werden. Und genau dies ist mein Problem, da ja das Programm dann auf diese OK-Bestätigung wartet und sich nicht mehr automatisch beendet. Meine Frage dazu: Kann man diese Fehlermeldung irgendwie unterdrücken, bzw. kann man trotz dieser Fehlermeldung das Programm nach einer gewissen Zeit beenden lassen. mfg Herbert |
Re: Indy - Fehlermeldungen unterdrücken
dann schließe doch vorher das von der fehlermeldung ;)
oder lass die fehlermeldung irgendwo in einem "StatusLabel" oder so ausgeben ... |
Re: Indy - Fehlermeldungen unterdrücken
Hallo :hi:,
schreib den Code in einen try - except - end Block. ;)
Delphi-Quellcode:
MfG
try
fehlerverursachender Code except Hier steht was passieren soll wennn der Fehler auftritt. end; freak |
Re: Indy - Fehlermeldungen unterdrücken
naja wie ich verstanden habe will er ja die fehlermeldung haben....
und ein programm kann sich nun mal nich schließen wenn eine form mit ShowModal aufgerufen wird (Wie eine MessageBox). erst wenn diese geschlossen ist, kann sich auch das programm schließen... |
Re: Indy - Fehlermeldungen unterdrücken
Nein, die Fehlermeldungen will ich nicht.
Diese Fehlermeldungen werden irgendwo in den Indy-Komponenten erzeugt. Ich hab nur keine Ahnung, wo bzw. wieviele Fehlermeldungen Indy irgendwo erzeugt. Mein Problem ist wie gesagt, dass das Programm sich auf alle Fälle automatisch beenden soll, egal ob Fehler auftauchen oder nicht. Und da kann ich eben keine Fenster brauchen, die eine Bestätigung (OK oder ähnliches) benötigen. mfg Herbert |
Re: Indy - Fehlermeldungen unterdrücken
achsooo.
ja dann machs wie freak4fun gesagt hat.... dann ist das genau was du suchst... also bei dir dann zB während dem kopieren
Delphi-Quellcode:
try
//Kopiere Daten blabla except //hier leer lassen, weil du ja keine Fehlermeldung haben willst... end; |
Re: Indy - Fehlermeldungen unterdrücken
ja, das mach ich so.
Nur wenn im try - except Block die Verbindung z.B. abbricht, dann erzeugt Indy automatisch ein Fenster mit einer Fehlermeldung und wartet natürlich auf Bestätigung - und das Programm steht. Dies ist das Problem. mfg Herbert |
Re: Indy - Fehlermeldungen unterdrücken
dann guck doch wo in den indys diese messagebox erzeugt wird und kommentiere die entsprechenden passagen aus...
|
Re: Indy - Fehlermeldungen unterdrücken
ja, werde ich wohl tun müssen. Ich wollte mir nur ersparen, diese tausenden Seiten durchzustudieren.
Trotzdem schönen Dank für Eure Mithilfe. mfg Herbert |
Re: Indy - Fehlermeldungen unterdrücken
naja tausende seiten.. :?
such doch einfach nach dem, was im titel steht oder sowas. das wird schon nicht dynamisch sein, jedenfalls nicht vollständig...dann gehts doch etwas schneller ;) |
Re: Indy - Fehlermeldungen unterdrücken
Wie kommt ihr darauf, dass der Dialog von Indy kommt? Indy bindet keine Forms Unit ein. Das einzige was Indy macht ist Exceptions werfen und vielleicht auch die SysUtils.ShowException Funktionsvariable aufrufen. Und die wiederum ruft bei einer VCL Anwendung Application.ShowException auf. Man kann sie aber umbiegen, so dass kein Dialog angezeigt wird.
|
Re: Indy - Fehlermeldungen unterdrücken
jo dann musstes doch mit try..except machen .
ich hab mir die units net angeguckt und was da gemacht wird. kann mir aber auch nicht so recht vorstellen, dass da eigene messgeboxes aufgerufen werden... |
Re: Indy - Fehlermeldungen unterdrücken
Hallo jbg,
vielleicht kannst du nähere Angaben machen, wie man die Exeptions "umbiegen" kann, damit kein Dialog angezeigt wird. Ich bin leider noch auf keine Lösung gekommen. mfg Herbert |
Re: Indy - Fehlermeldungen unterdrücken
Wie lautet genau die Exception die geworfen wird? Und kommt der Dialog auch, wenn du die Exe außerhalb der IDE ausführst?
Handelt es sich eventuell um dieses Indy Problem: ![]() |
Re: Indy - Fehlermeldungen unterdrücken
Am meisten stören mich die Dialoge, die bei einem Verlust der Verbindung bzw. beim erfolglosen Connect kommen, wie z.B.:
SocketError #10006 (connection refused). Diese Dialoge sind ja durchaus sinnvoll, nur in meinem Beispiel, wo das Programm vollautomatisch beenden muss, sind diese nicht zu gebrauchen. Ich frage sowieso in meinem Programm ab, ob die Übertragung einer Datei erfolgreich war, bzw. wenn nicht, wird 3 mal versucht, diese Datei zu übertragen. Nach dem dritten Misserfolg wird dann ein Disconnect ausgeführt und das Programm sollte sich schliessen, was ja in der Regel auch einwandfrei funktioniert. Ausser der Misserfolg ist auf einen Verbindungsfehler zurückzuführen, dann wartet leider eine Dialogbox auf Bestätigung und das Programm bleibt am Bildschirm. mfg Herbert |
Re: Indy - Fehlermeldungen unterdrücken
Du hast Luckies Fragen noch nicht beantwortet:
Kommt der Dialog auch, wenn das Programm außerhalb der Delphi IDE gestartet wurde? |
Re: Indy - Fehlermeldungen unterdrücken
Ja, kommen ausserhalb der Delphi IDE auch.
mfg Herbert |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz