Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Tedit i pozicioniranje

[es] :: Pascal / Delphi / Kylix :: Tedit i pozicioniranje

[ Pregleda: 2217 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.co.yu.



Profil

icon Tedit i pozicioniranje10.11.2007. u 11:04 - pre 200 meseci
pokusavam ali ne uspevam da ako ima greska u unosu teksta u Tedit da mi pozicionira ulaz/pokazivac/ na gresku
 
Odgovor na temu

ntojzan
Sandor II Tojzan
Becej

Član broj: 36657
Poruke: 168
*.eonet.ne.jp.



Profil

icon Re: Tedit i pozicioniranje10.11.2007. u 11:32 - pre 200 meseci
Sta je ulaz/pokazivac?
 
Odgovor na temu

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.co.yu.



Profil

icon Re: Tedit i pozicioniranje10.11.2007. u 11:34 - pre 200 meseci
>Sta je ulaz/pokazivac?

pa ona crtica sto blinka,kako da je nazovem drugacije, kursor :-)
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.dynamic.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Tedit i pozicioniranje10.11.2007. u 11:40 - pre 200 meseci
Code:

{ POZICIJA = 0 .. Length(Edit1.Text) }
Edit1.SelStart:=POZICIJA;
Edit1.SelLength:=0;


 
Odgovor na temu

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.co.yu.



Profil

icon Re: Tedit i pozicioniranje10.11.2007. u 11:55 - pre 200 meseci
X Files hvala na brzoj pomoci,radi OK
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.dynamic.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Tedit i pozicioniranje10.11.2007. u 11:57 - pre 200 meseci
A ako te muči fokusiranje, koje se inicira prethodnim klikom na neki taster, TEdit::OnEnter se može upotrebuti u kontekstu priče:

Code:

procedure TForm1.Button1Click(Sender: TObject);
begin
   Edit1.SetFocus;
end;


Code:

procedure TForm1.Edit1Enter(Sender: TObject);
begin
   { POZICIJA = 0 .. Length(Edit1.Text) }
   Edit1.SelStart:=POZICIJA;
   Edit1.SelLength:=0;
end;
 
Odgovor na temu

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.co.yu.



Profil

icon Re: Tedit i pozicioniranje10.11.2007. u 20:58 - pre 200 meseci
da se nadovezem na ovu temu

kako treba da izgleda procedura koja upravo radi gore resenje od X Files-a

provera(ulKalkCena.Text);

Procedure TForm1.provera(ulaz:string);
begin
try
if (ulaz[length(ulaz)] in ['A'..'Z'])or(ulaz[length(ulaz)] in ['a'..'z']) then
showmessage('Greska, niste uneli ispavno podatak !!');
if ulaz[length(ulaz)]='.' then
begin
ulaz[length(ulaz)]:=','; //a i ovde nece da vrati vrednost ','
ulaz.SelStart:=length(ulaz); //ovde je greska jer je ulaz string
end;
except end;
end;

tj. kako da definisem izlazni podatak da radi na Tedit polju

[Ovu poruku je menjao Brkic dana 11.11.2007. u 09:47 GMT+1]
 
Odgovor na temu

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.co.yu.



Profil

icon Re: Tedit i pozicioniranje11.11.2007. u 08:57 - pre 200 meseci
resio sam problem

Procedure TForm1.provera(ulaz:TEdit);
begin
try
if (ulaz.text[length(ulaz.text)] in ['A'..'Z'])or(ulaz.text[length(ulaz.text)] in ['a'..'z']) then
showmessage('Greska, niste uneli ispavno podatak !!');
pom1:=ulaz.text;
if pom1[length(pom1)]='.' then
begin
pom1[length(pom1)]:=',';
ulaz.text:=pom1;
ulaz.SelStart:=length(ulaz.Text);
end;
except end;
end;

mozda nekom zatreba
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.dynamic.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Tedit i pozicioniranje11.11.2007. u 09:00 - pre 200 meseci
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]
 
Odgovor na temu

anon68680

Član broj: 68680
Poruke: 528
*.dynamic.sbb.co.yu.



+14 Profil

icon Re: Tedit i pozicioniranje11.11.2007. u 12:31 - pre 200 meseci
Da se nadovezem na tvoj reply.
Ja bi sve to uradio ovako nekako:

Code:

var
strlist:tstringlist;
begin
strlist:=TStringList.Create;
strlist.Delimiter:=',';
if pos(',',edit1.text)>1 then
 begin
  strlist.DelimitedText:=edit1.text;
  if strlist.Count=2 then
   try
    Strtoint(strlist[0]);
    Strtoint(strlist[1]);
   except
    //Greska Nije integer;
   end
  else
   //Greska - Previse parametara ili je zarez na pocetku;
 end
else
// Greska Nema zareza;

I to ubacis u onChange event i trebalo bi da sljaka...
Prikačeni fajlovi
 
Odgovor na temu

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.co.yu.



Profil

icon Re: Tedit i pozicioniranje11.11.2007. u 21:51 - pre 200 meseci
>Da li se provera vrši u trenutku kucanja (unosa) broja?
-da provera se vrsi u trenutku kucanja

>Da li decimalna tačka sme da započne upis broja?
-ne sme,nisam se ni setio toga

>Da li više decimalnih tačaka sme da bude u broju (naravno ne, samo da pomenem)?
-nisam se ni setio toga

>Šta ćeš ako se broj upiše sa Paste (a u tvom kodu razmatraš samo poslednje slovo)?
-predvidjeno je da se ukucava,mogu staviti FOR perlju umesto da proveri samo krajnji znak

>Da sam na tvom mestu, ja bih proveru i eventualno pozicioniranje na problematični deo Edita radio nakon pokušaja napuštanja Edit polja.
-mislis na 'OnExit' ??

zadao si mi dosta stvari da ubacim,zurim da zavrsim program pa sitnice smetnem sa uma a u stvari su vazne.
 
Odgovor na temu

Milan Milosevic

Član broj: 67
Poruke: 932
212.200.223.*



+31 Profil

icon Re: Tedit i pozicioniranje12.11.2007. u 00:16 - pre 200 meseci
Ja sam problem prepoznavanja stringa kao broja odavno resio.
Dacu ti deo mog koda kojim ces to brzo da resis.
Podrzava decimalni zapis i zapis u exponecionalnom obliku tipa -12.3333E-444
Radio sam ga u assembleru tako da je dosta brz. Prava zmija a ima i jedna dodatna funkcija koja
moze da ti koristi StringBezBlanko za izbacivanje praznih mesta iz stringa.
Evo ti prostog primera pa probaj.

[Ovu poruku je menjao Milan Milosevic dana 13.11.2007. u 23:44 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Tedit i pozicioniranje

[ Pregleda: 2217 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.