![]() |
Eigene Fehlermeldung ausgeben
Hallo,
ich versuch eine Verbindung zu einem Server aufzubauen. Ist dieser Server aber nicht erreichbar, wird automatisch eine Fehlermeldung ausgegeben. Wie kann ich nun diese "unterdrücken" und meine eigene Fehlermeldung ausgeben?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin ClientSocket1.Host := '127.0.0.1'; ClientSocket1.Port := 77; ClientSocket1.Active := true; end; |
Re: Eigene Fehlermeldung ausgeben
Hallo creeky,
bei den SocketCompos gibts AFAIR ein OnError-Ereignis, in welchem du den Fehlercode abfragen und darauf reagieren kannst. Greetz alcaeus |
Re: Eigene Fehlermeldung ausgeben
Ich nehme an, es kommt eine Exception oder? Dann:
Delphi-Quellcode:
try
...; ...; ...; except on EIdXYZ do ShowMessage('Fehler sowieso ist aufgetreten'); end; |
Re: Eigene Fehlermeldung ausgeben
Vielen Dank.
Aber leider lässt sich damit die Fehlermeldung nicht unterdrücken, sodass NUR die eigene ausgegeben wird. Geht das nicht auch noch anders? |
Re: Eigene Fehlermeldung ausgeben
Moin!
Die TClientSocket und TServerSocket haben intern einen Thread und somit kommen die Exceptions eh unsynchron zum VCL Thread weshalb ein solcher Try/Except Block jeder Grundlage entbehrt. Nutze das OnError Ereignis und zum unterdrücken der Fehlerausgabe setze die übergebene Variable ErrorCode auf 0 und gut ist. Beachte dabei aber auch, dass die Fehlermeldung weiterhin von Delphi gemeldet wird so lange du es unter der IDE startest. Wenn du es ohne IDE startest wird die Meldung nicht mehr ausgegeben. MfG Muetze1 |
Re: Eigene Fehlermeldung ausgeben
Zitat:
|
Re: Eigene Fehlermeldung ausgeben
Vielen Dank. Hat wunderbar geklappt!
|
Re: Eigene Fehlermeldung ausgeben
Hi,
übernehme den Code von Luckie und schalte danach unter Tools/Debugrer-Optionen die integrierte Fehlersuche aus. Dadurch wird mitgeteilt, dass du deine Fehler selber abfangen willst/kannst. :zwinker: MfG Marc P.S.: Versuch mal die *.exe außerhalb der IDE auszuführen. [Edit] Schon wieder zu langsam... :wall: [/Edit] |
Re: Eigene Fehlermeldung ausgeben
Moin!
Zitat:
Und die Einstellungen die du angesprochen hast, macht nix weiter als das die Delphi IDE nix mehr ausgibt. MfG Muetze1 |
Re: Eigene Fehlermeldung ausgeben
Wie soll das funktionieren? Aller weiterere Code hängt doch davon ab, ob eine Verbindung zustandekommt oder nicht.
|
Re: Eigene Fehlermeldung ausgeben
Hallo Luckie,
AFAIK wird beim Aufbau einer Socketverbindung ein zusaetzlicher Thread erzeugt (solange das Socket Non-Blocking ist). Beim Verbinden ist dein Programm also im Leerlauf, und nachdem keine unmittelbare Exception auftritt, ist der try-except-Block nutzlos. Ein Timeout tritt z.B. erst nach 10 Sekunden auf, und nachdem das Socket Non-Blocking ist wird das onError-Ereignis gefeuert und du kannst auf den Fehler reagieren. Bei Blocking Sockets wuerde das funktionieren, ich habs aber noch nie probiert. Greetz alcaeus |
Re: Eigene Fehlermeldung ausgeben
on error machst einfach
Delphi-Quellcode:
wenns nicht auf 0 setzt dann kommt die normale meldung wieder ..
showmessage('fehler: '+ inttostr(errorcode));
errorcode := 0; |
Re: Eigene Fehlermeldung ausgeben
Moin!
Zitat:
MfG Muetze1 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:41 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