Opši tačno šta hoćeš da postigneš ( mrzi me da započinjem, ako ne znam precizne zahteve :D ).
Pretpostavljam da želiš da formatizuješ upis broja, odnosno da imaš neki TEdit objekat (recimo Edit1) u koji ukucavaš BROJ (0..9) koji može da ima i JEDNU decimalnu tačku koja mora da bude u stvari ZAREZ. Čim se uoči greška da ne dozvoli dalji upis, nego da vrati korisnika tačno na grešku.
Da li se provera vrši u trenutku kucanja (unosa) broja?
Da li decimalna tačka sme da započne upis broja?
Da li više decimalnih tačaka sme da bude u broju (naravno ne, samo da pomenem)?
Šta ćeš ako se broj upiše sa Paste (a u tvom kodu razmatraš samo poslednje slovo)?
Ovde ima dovoljno materijala za razmišljanje, pa zato i rekoh da prvo tačno opišeš zahteve tog podsistema.
Imaj u vidu da sa stanovište korisnika ovo može da bude iritirajuće, iako je ideja da mu se olakša posao. Drugim rečima, možda je greška sintaksno napravljena negde na početku stringa a da ga mehanizam provere vraća na neki drugi deo, koji je zapravo ispravan, ali u kombinaciji sa onim prvim čini anomaliju.
Da sam na tvom mestu, ja bih proveru i eventualno pozicioniranje na problematični deo Edita radio nakon pokušaja napuštanja Edit polja.
(Ovde je trenutak da priupitam zašto baš zarez? Ako je zbog Regional Settingsa, onda si na krivom putu. Postoji globanla varijalbla DecimalSeparator kojom u Dephiju možeš da definišeš kako se odvajaju decimalni brojevi)
P.S.
Ovde imaš jednu ideju:
http://decompile.com/html/tedit_input_control.html
... koja se može razraditi.
a postoje i posebni TMaskedEdit za formatizovani upis brojeva.
[Ovu poruku je menjao X Files dana 11.11.2007. u 11:44 GMT+1]