Ošetření StrToInt – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ošetření StrToInt – Delphi – Fórum – Programujte.comOšetření StrToInt – Delphi – Fórum – Programujte.com

 

12. 2. 2007   #1
-
0
-

Dobry den. Potreboval bych poradit.
Na formuláři mám Edit1 a text v něm převádím pomocí řetězce StrToInt(Edit1.text). To znamená že to co zadám do pole Edit1 mě to převede do Integer. Ale když do Edit1 nezadám číslo ale nějaký text, tak mi to vyhodí chybovou hlášku: '...to slovo...' is not a valid integer value. Jak to mám ošetřit? Aby mi to hodilo moji hlášku.....třeba- Do pole můžete zadávat jen číslo!

Nahlásit jako SPAM
IP: ...–
*´¨)¸.·´¨)¸.·***·>>> www.seberm.com
janc10
Návštěvník
12. 2. 2007   #2
-
0
-

na to sluzi procedura val

napr:

var:
kod, cislo: integer;
begin
val(Edit1.Text, cislo, kod); // prevedie text z Edit1.Text do premennej cislo a ak bude kod 0 tak bolo zadane cislo;
if (kod <> 0) then ShowMessage('nezadal si cislo');
end;

Nahlásit jako SPAM
IP: ...–
Jan Škrášek
~ Redaktor
+1
Boss
13. 2. 2007   #3
-
0
-

bo taky muzes :

try

a:=strtoint(edit1.text);
finnally
showmessage('povedlo se');

Nahlásit jako SPAM
IP: ...–
http://jan.skrasek.com@hrachcz – webdeveloper
13. 2. 2007   #4
-
0
-

Dobre....díky ;-)

Nahlásit jako SPAM
IP: ...–
*´¨)¸.·´¨)¸.·***·>>> www.seberm.com
1. 3. 2007   #5
-
0
-

Všechno funguje, až na to, že když použiji tu 1. variantu:



var:
kod, cislo: integer;
begin
val(Edit1.Text, cislo, kod);
if (kod <> 0) then ShowMessage('Nezadal si cislo!');
end;

tak mi to vyhodí>>> Nezadal jsi cislo!<<< a hned potom to stejne vyhodí hlášku '...to slovo...' is not a valid integer value.
Da se to nejak osetrit jeste vic? Aby to tu chybu " '...to slovo...' is not a valid integer value" vubec nevyhodilo?

Nahlásit jako SPAM
IP: ...–
*´¨)¸.·´¨)¸.·***·>>> www.seberm.com
bezy
~ Anonymní uživatel
7 příspěvků
1. 3. 2007   #6
-
0
-

a nedělá ti to jenom ve vývojovym prostředí? Zkus program spustit samotnej

Jinak by se taky dalo filtrovat v události OnKeyPress, pokud by zadaný znak nebyl číslo, tak by si nastavil znak na #0

Nahlásit jako SPAM
IP: ...–
1. 3. 2007   #7
-
0
-

nn dělá to i když spustím samotnej program...to je pravda ale nevim jak bych to napsal

Nahlásit jako SPAM
IP: ...–
*´¨)¸.·´¨)¸.·***·>>> www.seberm.com
Jan Škrášek
~ Redaktor
+1
Boss
1. 3. 2007   #8
-
0
-

seberm píše:#
# Všechno funguje, až na to, že když použiji tu 1. variantu: .....


ktomu se právě používá try a except.. tzn udej to takhle:



s:='text';
try
i:=strtoint(s);
except
showmessage('zade cislo');
end;


taky ti vyhodí hlášku, ale jen pokud bude spusten debuger.. pokud spustits zvlast... tak ti to udela to co definujes except..

Nahlásit jako SPAM
IP: ...–
http://jan.skrasek.com@hrachcz – webdeveloper
2. 3. 2007   #9
-
0
-

Aha už to chápu díky moc...zkusim to

Nahlásit jako SPAM
IP: ...–
*´¨)¸.·´¨)¸.·***·>>> www.seberm.com
Jan Šlégr0
Newbie
2. 3. 2007   #10
-
0
-

A aby to bylo ještě pěknější, dal bych míst ShowMessage

Application.MessageBox('Nezadal jsi číslo!','Chyba zadání!',MB_ICONERROR);

Nahlásit jako SPAM
IP: ...–
GeorgeW0
Newbie
12. 3. 2007   #11
-
0
-

seberm píše:#
# Dobry den. Potreboval bych poradit.#
#Na formuláři mám Edit1 a text v něm převádím pomocí řetězce StrToInt(Edit1.text). To znamená že to co zadám do pole Edit1 mě to převede do Integer. Ale když do Edit1 nezadám číslo ale nějaký text, tak mi to vyhodí chybovou hlášku: ##uvozovka##...to slovo...##uvozovka## is not a valid integer value. Jak to mám ošetřit? Aby mi to hodilo moji hlášku.....třeba- Do pole můžete zadávat jen číslo!



var
I: integer
begin
I:= StrToIntDef(Edit1.text,-1);
if I > -1 then
begin

end;
end;

Nahlásit jako SPAM
IP: ...–
certcv
~ Anonymní uživatel
1 příspěvek
29. 9. 2008   #12
-
0
-

Pouzij definici pro except to znamena Try -> except end mezi except a end zadas vlastni hlasku pri kolapsu v behu programu.
Ahoj.

Nahlásit jako SPAM
IP: 85.193.10.–
BEZY
~ Anonymní uživatel
7 příspěvků
30. 9. 2008   #13
-
0
-

setWindowLong(edit.Handle, GWL_STYLE, getWindowLong(edit.Handle, GWL_STYLE) OR ES_NUMBER);
Zavolat někdy při spuštění

Nahlásit jako SPAM
IP: 88.103.107.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

Podobná vlákna

Ošetření StrToInt — založil seberm

StrToInt vs Edit1.Text — založil Nailen

Ošetření include — založil Petr

Ošetření vstupu — založil Koja

Ošetření vstupu — založil Troy585

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý