Autor Beitrag
Torsten
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 160



BeitragVerfasst: Fr 25.10.02 19:52 
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.

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 29



BeitragVerfasst: 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 160



BeitragVerfasst: 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