[ mzarko @ 05.04.2005. 18:05 ] @
Na koji nacin se u MaskEdit postavlja zadati format
npr. da se vrsi novcani unos u formatu 100.000,00, tako
da se moze uneti i veci i manji iznos (1.233,11 ili 12.222.222,15).
Kao i kada se zada odredjeni format u MaskEdit 123-123-123 i cim
se ne ispuni zadat uslov da pojavi poruku o gresci.
[ Toyo @ 05.04.2005. 18:39 ] @
Format zadajes tako sto ga upises u polje EditMask. Formate pogledaj u helpu TEditMask.

MaskEdit1.EditMask :='9999.99';


Za zvucni signal prilikom greske mozes da koristis BeepOnError property.

MaskEdit1.BeepOnError:=True;

Ako hoces da ispises poruku trebalo bi da napravis svoju klasu od TMaskEdit i u njoj da nasledis metodu:
procedure ValidateError; virtual;
Tamo posle mozes da odradis poruku o gresci koja ce da zameni zvucni signal.




[ mzarko @ 05.04.2005. 21:08 ] @
Toyo da li mozes da mi pokazes kako da napravim klasu od TMaskEdita za nasledjivanja metode sa porukom o gresci.

Kao i na koji nacin ako je zadan format '9999.99' a upisu se samo 4 cifre tj 9999 i da prilikom izlaska iz MaskEdita da se upisane cifre pomere i da se nalaze uz desnu stranu i da se pojavi 99.99
[ Toyo @ 06.04.2005. 00:23 ] @
Eeee sad vidim sta hoces, ali to nece ici tako lako. Ako hoces da pravis nove komponente, potrazi medju topicima "Dodavanje novih komponenti", mislim da Srki_82 objasnjavao kako se to radi.

A za ovo sto tebi treba, bice ti dobar i obican Edit (bez maske). Sve sto treba da uradis, je sledece:

Kreiraj novi Edit, idi na event OnExit, dupli klik.
Pojavice ti se procedura TForm1.Edit1Exit.
Umesto nje upisi ovaj kod, pa ga menjaj po potrebi.

Ne dozvoljava tekst, samo unos ispravnih brojeva, sa ili bez zareza.
Code:

procedure TForm1.Edit1Exit(Sender: TObject);
var
  B:Real;
  i,Tacaka:Integer;
  Ok:Boolean;
begin
    Tacaka := 0;
    Ok := True;
    if Edit1.text='' then
      Edit1.Text:='0';
    for i := 1 to length(edit1.text) do
      begin
        if edit1.Text[i]='.' then
          inc(Tacaka)
        else
          ok := ok and (ord(edit1.Text[i])>= ord('0'))and (ord(edit1.Text[i])<= ord('9'));
      end;
    if Ok and (tacaka <2) then
      begin
        B:= strtofloat(edit1.text);
        edit1.Text:= format('%20.2f',[b]);
      end
    else
       begin
          showmessage('greska');
          edit1.setfocus; 
       end;
end;
[ mzarko @ 06.04.2005. 15:58 ] @
Toyo hvala na odgovoru