Ĺadny brzuch
Witam!
Jaki wyjatek sluzy do obslugi bledu konwersji, probowalem z EConvertError, ale nic z tego.
Chodzi mi o to, ze w edit1 ma byc liczba, a gdy bedzie tam jakis znak typu string powinien pojawic sie odpowiedni komunikat jak to zrobic :?
__ __ __ __ __ __ __ __ __ __
Procedure Oskar_;
Begin
ShowMessage('GG:4206396');
End;
help powiada: "If S does not represent a valid number, StrToInt raises an EConvertError exception".ale zeby twoja obsluga wyjatku wyszkoczyla musisz sobie opcjach zmienic:
tools->debugger options->zakladka language exceptions->odznaczyc stop on delphi exceptions.
nu albo odpalic progsa spoza srodowiska delpi.
pozdrawiam
pepsi^no1
try begin blablabla end except on EConvertError do ShowMessage('Błąd konwersji.');
Na przykład :D
Strona mojej grupki programistycznej: www.blaze.er.pl
gg: 4644238
A nie lepiej zapobiec wpisania znaku innego niż cyfrę? Ja zrobiłem coś takiego:
var s:string; implementation procedure TForm1.Edit1Change(Sender: TObject); var b:string; i:integer; d:boolean; begin b:=Edit1.Text; if b='' then exit; d:=true; if (b[length(b)]>'0')and(b[length(b)]<'9') then d:=false; if d then Edit1.Text:=s; Edit1.SelLength:=1; Edit1.SelStart:=length(s)+1; end; procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin s:=Edit1.Text; end;
to pozwoli na wpisanie tylko cyfr (nawet wklejenie tekstu się nie powiedzie)
------------------------
Pzdr, Cyrkiel
Wielkie THX Cyrkiel, tego mi brakowało ;)
__ __ __ __ __ __ __ __ __ __
Procedure Oskar_;
Begin
ShowMessage('GG:4206396');
End;
Nie lepiej skorzystac z SpinEdit:?
_________________________
www.webpacket.net
Taa, tyle że SpinEdit nie działa z floatopochodnymi.
Strona mojej grupki programistycznej: www.blaze.er.pl
gg: 4644238
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Jaki wyjatek sluzy do obslugi bledu konwersji, probowalem z EConvertError, ale nic z tego.
Chodzi mi o to, ze w edit1 ma byc liczba, a gdy bedzie tam jakis znak typu string powinien pojawic sie odpowiedni komunikat jak to zrobic :?
__ __ __ __ __ __ __ __ __ __
Procedure Oskar_;
Begin
ShowMessage('GG:4206396');
End;
help powiada: "If S does not represent a valid number, StrToInt raises an EConvertError exception".ale zeby twoja obsluga wyjatku wyszkoczyla musisz sobie opcjach zmienic:
tools->debugger options->zakladka language exceptions->odznaczyc stop on delphi exceptions.
nu albo odpalic progsa spoza srodowiska delpi.
pozdrawiam
pepsi^no1
try begin blablabla end except on EConvertError do ShowMessage('Błąd konwersji.');
Na przykład :D
Strona mojej grupki programistycznej: www.blaze.er.pl
gg: 4644238
A nie lepiej zapobiec wpisania znaku innego niż cyfrę? Ja zrobiłem coś takiego:
var s:string; implementation procedure TForm1.Edit1Change(Sender: TObject); var b:string; i:integer; d:boolean; begin b:=Edit1.Text; if b='' then exit; d:=true; if (b[length(b)]>'0')and(b[length(b)]<'9') then d:=false; if d then Edit1.Text:=s; Edit1.SelLength:=1; Edit1.SelStart:=length(s)+1; end; procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin s:=Edit1.Text; end;
to pozwoli na wpisanie tylko cyfr (nawet wklejenie tekstu się nie powiedzie)
------------------------
Pzdr, Cyrkiel
Wielkie THX Cyrkiel, tego mi brakowało ;)
__ __ __ __ __ __ __ __ __ __
Procedure Oskar_;
Begin
ShowMessage('GG:4206396');
End;
Nie lepiej skorzystac z SpinEdit:?
_________________________
www.webpacket.net
Taa, tyle że SpinEdit nie działa z floatopochodnymi.
Strona mojej grupki programistycznej: www.blaze.er.pl
gg: 4644238