Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - dupError einer TStringList abfangen
Torsten - Fr 25.10.02 19:52
Titel: dupError einer TStringList abfangen
Moinsen Leute!
Wie aus dem Betreff zu sehen, will ich jenen Fehler abfangen.
Bekanntlich kann man über TStringList.Duplicates die Aktion bei Duplikaten festlegen.
Zunächst etwas Code.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| ...
myList.Duplicates:=dupError; myList.Sorted:=True; myList.Add(Edit1.Text); ListBox1.Clear;
try ListBox1.Items.Add(myList.CommaText); except on EStringListError do ShowMessage('Fehler'); end;
... |
Kommen also doppelte Strings vor, so sollte eigentlich eine Message ausgegeben werden.
Dies ist aber nicht der Fall. Es kommt lediglich die Standard-Message. Die kommt auch, wenn man alles unbehandelt lässt.
Doch eben diese Message will ich nicht haben, sondern die Exception per Hand abfangen.
Kann mir jemand helfen?
Fragende Grüße
Torsten
aogwaba - Fr 25.10.02 20:40
Hi!
Starte das Programm vom WindowExplorer aus, oder schalte unter:
Project-Optionen-Compiler die Laufzeitfehler aus.
Die IDE fängt die Fehler sonst ab.
cu
waba
Schattengeist - Sa 26.10.02 11:24
Moin!
Das hat nichts mit den Laufzeitfehlern zu tun.
Du meinst wahrscheinlich eher: Tools / Debuggeroptionen / Sprachexceptions / Bei Delphi-Exceptions stoppen.
Allerdings ist das Woscht.
Wenn aktiviert, hält Delphi bei der Exception an (nicht immer zuverlässig an der richtigen stelle! Immer danach nochmal 'F7' drücken, damit man weiß, wo es aufgetreten ist).
Dann kann man sich in Ruhe alles ansehen, und danach das Programm mit 'F9' weiterlaufen lassen.
Das Anhalten mach Delphi auch bei abgefangenen Exceptions!
Wenn man die Exe so startet, hält Delphi -logischerweise:wink:- nicht an.
Folgender Code klappt bei mir:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TForm1.Button1Click(Sender: TObject); var ts:tstringlist; begin ts:=TStringList.Create; ts.Sorted:=True; ts.Duplicates:=dupError; try ts.add('a'); ts.add('a'); except on e:EStringListError do begin ShowMessage('es sind doppelte da..'); end; on e:Exception do begin ShowMessage('Irgendwas lief hier nicht richtig: '+e.Message); end; end; ts.free; end; |
MFG,cu,LLAP Schattengeist
aogwaba - Sa 26.10.02 13:10
Hi Schattengeist!
Hast natürlich recht, ist Blödsinn was da steht! :oops:
Blos gut das hier noch welche mitlesen!
cu
waba
Torsten - Sa 26.10.02 13:37
Moinsen Leute!
Besten Dank für die Antworten. Doch das kannte ich bereits alles.
Der Fehler lag bei mir. Habe ich eben gerade erst gesehen.
Ich versuche in meinem Code die Exception abzufangen, wenn der Inhalt der StringList in die ListBox eingefügt wird.
Das ist natürlich Schwachsinn. Ich muss die Exception behandeln, wenn ich die StringList fülle. Ich Dussel.
@Schattengeist
Ja, logisch. So dachte ich, hätte ich es auch gemacht. Aber stimmt ja nicht.
Grüße
Torsten
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!