Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 12 odgovora
  • 4.731 pregleda

Najnovija ↓

Problem sa maskedit i sa pretvaranjem strtoint?! 09.03.2006. u 07:24 · pre 251 mesec #1
Trebalo bi da sa maskedit polja koje sam ogranicio na 13 polja maksimalno ucitam JMBG broj koji je integer. Tj pretvaram string od 13 karaktera u pojedinacne brojeve i onda pomocu formule proveravam ispravnost. Sve to radi lepo jedino kada ne unesem do kraja broj, tj. ostane blanko mesta u toj masci izbaci mi poruku da ne moze da konvertuje " " polje u integer... Kako bih mogao da izbegnem tu gresku i da mi se izbaci upozorenje da se unese do kraja ceo broj?
Re: Problem sa maskedit i sa pretvaranjem strtoint?! 09.03.2006. u 08:12 · pre 251 mesec #2
Imas nekoliko funkcija za prevodjenje stringa u broj.

StrToInt prevodi string u broj, a ako se u stringu nalazi neki karakter koji se ne moze prevesti u broj javlja se exception. Mozes uz pomoc try except bloka da, umesto standardne poruke o gresci, ispises neku svoju.

StrToIntDef prevodi string u broj, a u slucaju greske broj koji vraca ima Default vrednost koju navedes prilikom pozivanja funkcije. Default vrednost mozes staviti na npr. -1. Kada se funkcija zavrsi, proveris rezultet i ako je -1 znaci da je doslo do greske.

TryStrToInt prevodi string u broj (promenljiva u kojoj treba da je rezultat se daje kao parametar) i vraca True ili False u zavisnosti da li je operacija uspela. Ako vrati False znaci da nije.

Nadam se da je pomoglo... i pogledaj help pre nego sto pitas jer tamo sve lepo pise.
Potpis
Play Store
Re: Problem sa maskedit i sa pretvaranjem strtoint?! 09.03.2006. u 17:21 · pre 251 mesec #4
Probao sam onu prvu i drugu varijantu i ne radi opet... Izbaci mi istu
gresku...

Probao sam ovako:

try
broj:=strtoint(maskedit1.Text);

except

on exception do

halt;
end;

Primera radi samo da stane program ali nece... Stalno to predje i
izbaci gresku...
Re: Problem sa maskedit i sa pretvaranjem strtoint?! 09.03.2006. u 17:57 · pre 251 mesec #5
Ne znam sta da ti kazem, ali meni ovo radi
Code:
try
  I := StrToInt('Proba');
except
  Greska;
end;

I := StrToIntDef('Proba', -1);
if I = -1 then
  Greska;

if not TryStrToInt('Proba', I) then
  Greska;


Sva tri nacina lepo rade.
Potpis
Play Store
Re: Problem sa maskedit i sa pretvaranjem strtoint?! 09.03.2006. u 21:13 · pre 251 mesec #6
u OnExit event za edit postavi proveru da li je duzina edit.text = 13 i ako nije nemoj da pozivas metodu za validaciju.
A da bi sprecio da se unose drugi znaci osim brojeva, postavi u onKeyDown (ili onKeyPress, ne znam tacno koja od njih ima char za parametar) nesto slicno ovome

if Key not in [1, 2, 3, ...] then MessageBox('greska, ovde je moguce uneti samo broj')

To bi trebalo da ti smanji muke oko validacije...
Potpis
http://www.onedevteam.com/
http://www.skuvajme.com/
Re: Problem sa maskedit i sa pretvaranjem strtoint?! 09.03.2006. u 21:36 · pre 251 mesec #8
Ok, hvala ti puno!
Problem je bio sto je kod maskedit-a bilo:

maskedit1.editmask:�99999999999; a treba
maskedit1.editmask:=!9999999999999;
nije bilo znaka uzvika ali kada sam to stavio proradilo je. Nemam
pojma za cega ce taj znak uzvicnika ali sada radi...

Hvala ti!
Re: Problem sa maskedit i sa pretvaranjem strtoint?! 13.03.2006. u 18:56 · pre 251 mesec #10
Citat:
Toyo: A kako ti mislis da string od 13 polja pretvaras u int64 koji je maksimalne duzine 10 polja, ili 9 ako je prva cifra veca od 2?


Int64 ima opseg –2^63 do 2^63–1 sto je vece od 10 cifara (mislim da ima 19)
To o cemu ti pises je LongInt...
Re: Problem sa maskedit i sa pretvaranjem strtoint?! 13.03.2006. u 22:19 · pre 251 mesec #12
real u string:
pogledaj u helpu sledece funkcije (sve rade ono sto hoces):
FloatToStr
FloatToStrF
FomatFloat
FloatToText

obrnuto:
StrToFloat
StrToFloatDef
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme