Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Ereignisse werden nicht ausgeführt
Svenkan - Fr 03.07.09 02:35
Titel: Ereignisse werden nicht ausgeführt
Nachdem ich in meinen Code Exceptions-Messages abgefangen hab, um diese als Textmeldung in einem Statusfeld darzustellen, werden meine TIdSMTP-Ereignisse nicht mehr ausgelöst.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44:
| Try Application.ProcessMessages; try Infos.Lines.Add(TimeToStr(NOW)+': Verbindungsversuch durch '+SMTP.Username+' mit '+SMTP.Host); SMTP.Connect; except on E: Exception do begin Infos.Lines.Add(''); Infos.SelAttributes.Style:=Infos.SelAttributes.Style + [fsBold]; Infos.Lines.Add('Folgende Fehlermeldung wurde vom Server zurückgeliefert:'); Infos.Lines.Add(E.Message); Infos.SelAttributes.Style:=Infos.SelAttributes.Style - [fsBold]; end; end;
if SMTP.Authenticate=True then Infos.Lines.Add(TimeToStr(NOW)+': Login-Daten akzeptiert') else Infos.Lines.Add(TimeToStr(NOW)+': Login-Daten abgewiesen!');
Try Infos.Lines.Add(TimeToStr(NOW)+': Versuche Vertretungspläne zu verschicken..'); SMTP.Send(idMessage); Except on E: Exception do begin Infos.Lines.Add(''); Infos.Lines.Add('Folgende Fehlermeldung wurde vom Server zurückgeliefert:'); Infos.SelAttributes.Style:=Infos.SelAttributes.Style + [fsBold]; Infos.Lines.Add(E.Message); Infos.SelAttributes.Style:=Infos.SelAttributes.Style - [fsBold]; end; End; SMTP.Disconnect; Except If SMTP.Connected = True Then Begin Try SMTP.Disconnect; Except Infos.Lines.Add(TimeToStr(NOW)+': Verbindungsaufbau fehlgeschlagen - Vertretungspläne können nicht verschickt werden!'); End; End; Infos.Lines.Add(TimeToStr(NOW)+': Konnte Verbindung zum Host nicht herstellen oder 1. Empfänger ist fehlerhaft'); End; |
Die Ereignisse wurden noch normal ausgelöst, als die on-do-Anweisungen noch nicht mit eingebaut waren.
[Crosspost:
http://www.delphipraxis.net/topic160653_ereignisse+werden+nicht+ausgefuehrt.html]
Svenkan - Fr 03.07.09 02:55
Oh, mh..ok, ist mir so gar nicht aufgefallen. Keine Ahnung wann ich dazu gekommen bin, das auf True zu prüfen. :?
Aber danke für den Hinweis!
Im Objektinspektor sind die Ereignisse noch zugewiesen, ja.
jaenicke - Fr 03.07.09 03:01
Und du hast Haltepunkte in die Ereignisse gesetzt, die nicht aufgerufen werden?
Kann es denn sein, dass Exceptions auftreten, und deshalb die Ereignisse nicht aufgerufen werden? Also bist du einmal schrittweise durch den Code gegangen und hast geschaut was das Programm macht?
Svenkan - Fr 03.07.09 03:07
Das Programm springt erst gar nicht in diesen Ereignis-Code rein. Habe ich schon ausprobiert.
Also Exceptions treten eigtl keine auf, da sonst direkt auch die IDE wohl direkt das Programm unterbrechen würde. Selbst wenn, würden diese direkt im Info-Feld vermerkt, was auch nicht passiert.
Das komische ist nur, dass dieses Probleme eben erst auftritt, seitdem ich versuche, eben diese Exceptions abzufangen. :?
Allerdings passiert auch so eine nette Sache, dass im Infofeld SelAttributes.Style auf Bold gesetzt wird, was allerdings absolut gar keinen Sinn ergibt, da es keinen Grund dafür gibt. oO
Behelfsmäßig muss ich mir momentan durch dieses "krummen" Code aushelfen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53:
| Try Application.ProcessMessages; Infos.Lines.Add(TimeToStr(NOW)+': Verbindungsversuch durch '+SMTP.Username+' mit '+SMTP.Host); try SMTP.Connect; except on E: Exception do begin Infos.SelAttributes.Style := Infos.SelAttributes.Style - [fsBold]; Infos.Lines.Add(''); Infos.Lines.Add('Folgende Fehlermeldung wurde vom Server zurückgeliefert:'); Infos.SelAttributes.Style:=Infos.SelAttributes.Style + [fsBold]; Infos.Lines.Add(E.Message); Infos.SelAttributes.Style := Infos.SelAttributes.Style - [fsBold]; end; end;
Infos.SelAttributes.Style := [];
if SMTP.Authenticate then Infos.Lines.Add(TimeToStr(NOW)+': Login-Daten akzeptiert') else begin Infos.Lines.Add(TimeToStr(NOW)+': Login-Daten abgewiesen!'); Exit; end;
Infos.SelAttributes.Style := [];
Infos.Lines.Add(TimeToStr(NOW)+': Versuche Vertretungspläne zu verschicken..');
Try SMTP.Send(idMessage); Except on E: Exception do begin Infos.SelAttributes.Style := Infos.SelAttributes.Style - [fsBold]; Infos.Lines.Add(''); Infos.Lines.Add('Folgende Fehlermeldung wurde vom Server zurückgeliefert:'); Infos.SelAttributes.Style:=Infos.SelAttributes.Style + [fsBold]; Infos.Lines.Add(E.Message); Infos.SelAttributes.Style := Infos.SelAttributes.Style - [fsBold]; end; End; SMTP.Disconnect; Except
on E: Exception do begin Infos.SelAttributes.Style := Infos.SelAttributes.Style - [fsBold]; Infos.Lines.Add(''); Infos.Lines.Add('Folgende Fehlermeldung wurde vom Server zurückgeliefert:'); Infos.SelAttributes.Style:=Infos.SelAttributes.Style + [fsBold]; Infos.Lines.Add(E.Message); Infos.SelAttributes.Style := Infos.SelAttributes.Style - [fsBold]; end; End; |
ffgorcky - Sa 11.07.09 15:57
Hallo Svenkan,
ich kann da jetzt leider noch nicht so ganz draus ersehen, weshalb der Fehler auftritt.
(Kann natürlich sein, dass ich da jetzt als einziger nur einfach nicht so schnell durchsteige...)
Aber es wäre vielleicht auch nicht schlecht, wenn Du und mal die ganze procedure/function mitsamt allen Prozedur- und Form-Variablen hier reinstellst...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!