Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi try / except bringt ungewollte Fehlermeldung (https://www.delphipraxis.net/135237-try-except-bringt-ungewollte-fehlermeldung.html)

iBooot 7. Jun 2009 13:10


try / except bringt ungewollte Fehlermeldung
 
Hallo!
Erstmal: Ich habe Delphi 5.
Ich habe mal eine Frage:
Ich habe in meiner Form eine normale ComboBox.
Im OnChange-Ereignis soll jetzt die Image1.Canvas.Pen.Width auf den Wert aus der ComboBox gesetzt werden.
Funktioniert soweit auch.
Auch wenn der Benutzer selbst einen eigenen Wert eingibt (ist ja eigendlich kein Unterschied).
Aber wenn der Benutzer zum Spaß irgendetwas anderes eingibt (Buchstaben o.ä.) gibt Delphi eine Fehlermeldung zurück,
da der Buchstabe (logischerweise) nicht in Integer konvertiert werden kann.
Dann hab ich das mit try.. except gemacht, aber die Meldung kommt immer noch. :?:
Delphi-Quellcode:
try
   Image1.Canvas.Pen.Width := StrToInt(ComboBox1.Text); //versucht die Stiftbreite auf den Wert der ComboBox zu setzen
except
   ComboBox1.Text := IntToStr(Image1.Canvas.Pen.Width); //und bei einem Fehler soll die ComboBox zurück auf den vorherigen Wert gesetzt werden.
end;
Und trotzdem kommt die Meldung
Zitat:

Im Projekt projekt1.exe ist eine Exception der Klasse EConverterError aufgetreten. Meldung: ''a' ist kein gültiger Integerwert'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
Ich hoffe ihr könnt mir helfen.
Danke schonmal im vorraus. :thumb:

LG
-iBooot

Apollonius 7. Jun 2009 13:11

Re: try / except bringt ungewollte Fehlermeldung
 
Diese Meldung gibt der Debugger aus. Wenn du das Programm außerhalb der IDE startest, erscheint sie nicht.

toms 7. Jun 2009 13:16

Re: try / except bringt ungewollte Fehlermeldung
 
oder Val verwenden

Delphi-Quellcode:
var
  I, Code: Integer;
begin
  Val(ComboBox1.Text, I, Code);
  if Code <> 0 then
    Image1.Canvas.Pen.Width := I
  else
    ComboBox1.Text := IntToStr(Image1.Canvas.Pen.Width);

mkinzler 7. Jun 2009 13:18

Re: try / except bringt ungewollte Fehlermeldung
 
Oder TryStrTo<Typ>() oder StrTo<Typ>Def()

toms 7. Jun 2009 13:21

Re: try / except bringt ungewollte Fehlermeldung
 
Zitat:

Zitat von mkinzler
Oder TryStrTo<Typ>() oder StrTo<Typ>Def()

Falls Delphi Version > 5 (was mein Threadersteller nicht der Fall ist)

mkinzler 7. Jun 2009 13:22

Re: try / except bringt ungewollte Fehlermeldung
 
Zitat:

was mein Threadersteller
Teilen wird die TE jetzt untereinander auf :mrgreen: :lol:

toms 7. Jun 2009 13:23

Re: try / except bringt ungewollte Fehlermeldung
 
Zitat:

Zitat von mkinzler
Zitat:

was mein Threadersteller
Teilen wird die TE jetzt untereinander auf :mrgreen: :lol:

mein sollte beim heißen :mrgreen:

iBooot 7. Jun 2009 13:33

Re: try / except bringt ungewollte Fehlermeldung
 
Danke für die schnellen Antworten :thumb:
Also ich lass das jetzt so, da das wirklich nicht mehr angezeigt wird, wenn man nur die startet (also ohne Delphi).
toms Code hat aber leider nicht funktioniert.
Aber naja. mein Programm funzt doch :'D

Danke :thumb:

toms 7. Jun 2009 13:41

Re: try / except bringt ungewollte Fehlermeldung
 
Zitat:

Zitat von iBooot
toms Code hat aber leider nicht funktioniert.

Ich sag dir auch warum: Schreibe
Delphi-Quellcode:
if Code = 0 then
anstatt
Delphi-Quellcode:
if Code <> 0 then

quendolineDD 7. Jun 2009 13:53

Re: try / except bringt ungewollte Fehlermeldung
 
Zitat:

Also ich lass das jetzt so
Wenn du aber mit dem Wert weiter rechnen willst, kann das mal dumme Folgefehler haben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz