Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi EConversionError bei SpinEdit verhindern (https://www.delphipraxis.net/20434-econversionerror-bei-spinedit-verhindern.html)

Tubos 17. Apr 2004 21:19


EConversionError bei SpinEdit verhindern
 
Hi;

ich habe ein kleines Problem mit einem Spinedit.
Bei
Delphi-Quellcode:
var i: integer;
{......}
procedure TForm1.spineditChange(Sender: TObject);
begin
 i:=spinedit.value
end;
bekomme ich natürlich einen Conversion Error, wenn ich einen Eintrag markiere und einen anderen hineinschreibe. Denn für einen kurzen Moment steht dann gar nichts drinnen.
Wie verhindere ich das?
Wenn ich eine Abfrage einbaue:
Delphi-Quellcode:
if (spinedit.value>0) and (spinedit.value<1000) then i:=spinedit.value
stürzt das Programm auch ab und
Delphi-Quellcode:
 try
  i:=spinedit.value;
  except
  showmessage('Fehler!');
  end;
stürzt auch ab.

Wie kann ich feststellen, ob das Feld leer ist?

d3g 17. Apr 2004 21:27

Re: EConversionError bei SpinEdit verhindern
 
Zitat:

Zitat von Tubos
und
Delphi-Quellcode:
 try
  i:=spinedit.value;
  except
  showmessage('Fehler!');
  end;
stürzt auch ab.

Das glaube ich eher nicht. Es ist doch so, dass du die Exception in der Delphi-IDE und deine Message angezeigt bekommst, oder? Das ist nur in der IDE so, das fertiggestellte Executable wird nicht in die IDE zurückspringen (wie auch). Das Verhalten des Abbrechens kannst du auch in der IDE ausschalten, wenn du willst (in den Debuggeroptionen den Haken bei "Stop on Delphi Exceptions" entfernen).

MrSpock 17. Apr 2004 21:29

Re: EConversionError bei SpinEdit verhindern
 
Hallo Tubos,

ich denke auch, dass der try ... except Block genau das tut, was du willst. Trotzdem zu deiner Frage:

Delphi-Quellcode:
if Trim(SpinEdit1.Text) <> '' then
   { ist nicht leer }

Tubos 17. Apr 2004 21:31

Re: EConversionError bei SpinEdit verhindern
 
ja, du hast recht!
danke!

edit: danke spock für die andere lösung!


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:05 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