edit te bindelik ayıracı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
mertcenk3
Üye
Mesajlar: 41
Kayıt: 21 Eki 2003 02:15
Konum: istanbul
İletişim:

edit te bindelik ayıracı

Mesaj gönderen mertcenk3 »

normal editte bindelik ayıracını nasıl oluşturabilirim..
örneğin : 12.500 bir sıfır daha ekledğimde 125.000 olmalı...

şimdiden teşekkürler...
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

1. Yol : http://www.delphiturkiye.com/ipobjpas.htm#edit_binlik

2. Yol : TEdit içinde bir arkadaş kod göndermişti. Arama kısmından aratıp bulabilirsin.

Kolay gelsin.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Merhabalar
ilk önce FormatSayi Fonksiyonumuzu yazalım normalde bunu formatfloat('###,###',StrToFloat(fiyat)); olarak ta kullanabilirsin ama problem yaratıyor o yüzden aşağıdaki fonksiyonu kullanman daha sağlıklı.

Kod: Tümünü seç


Function FormatSayi(sayi:string):string;
var s,s1,s2     :string;
    x,i,ns      :integer;
    nokta_sayisi:real;
begin
        s:=sayi;
        s1:='';
        x:=length(s);
        for i:=x downto 1 do
        begin
             insert(copy(s,i,1),s1,x-i+1);
        end;

        if (x mod 3)=0 then
                nokta_sayisi:=(x/3-1);
        if (x mod 3)<>0 then
        begin
                nokta_sayisi:=trunc(x/3);
        end;
        ns:=strtoint(floattostr(nokta_sayisi));

        x:=x+ns;
        for i:=1 to x do
        begin
            if (i Mod 4)=0 then
                insert('.',s1,i);
        end;

        x:=length(s1);
        s2:='';
        for i:=x downto 1 do
        begin
             insert(copy(s1,i,1),s2,x-i+1);
        end;
        result:=s2;
end;
2.nci olarak Edit bileşeninin Change Eventine

Kod: Tümünü seç

procedure TForm1.Edit1Change(Sender: TObject);
var
    i:integer;
    Fiyat:String;
begin

        Fiyat := Edit1.Text;

        for i:=1 to length(Edit1.Text) do
        begin
            if copy(Fiyat,i,1)='.' then
               delete(Fiyat,i,1);
        end;

        Edit1.Text := FormatSayi(fiyat);
        Edit1.SelStart := length(Edit1.Text);

end;
Edit te ki noktalı rakamları kaydetmek için ise mesala Button nun Click eventine de aşağıdaki kodu yaz noktalar kalkacaktır kod çok basit o yüzden açıklama yapmıyorum.

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
    Fiyat:String;
begin
        Fiyat := Edit1.Text;
        for i:=1 to length(Edit1.Text) do
        begin
            if copy(Fiyat,i,1)='.' then
               delete(Fiyat,i,1);
        end;
        ShowMessage(Fiyat);
end;

Kolay Gelsin...
En son husonet tarafından 15 Ara 2003 10:39 tarihinde düzenlendi, toplamda 1 kere düzenlendi.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
abdulkadir
Kıdemli Üye
Mesajlar: 489
Kayıt: 13 Eyl 2003 09:10
Konum: istanbul
İletişim:

Mesaj gönderen abdulkadir »

Husunet ben bunu yazarken sen yollamıssın bile
seninkini gördükten sonrada silmedim

sevgiler

Kod: Tümünü seç

function TForm1.AklBin(cevir:Real):string;
begin
Result:=FormatFloat('###,###,###',cevir);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.text:=AklBin(strtoFloat(Edit1.text));
end;

Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Abdulkadir arkadaşım foruma vede soruya katkıda bulunman belki arkadaşımızın değişik bir yol izlemesini sağlayabilir. Herkezin kod yazış stili farklıdır.

İyi Akşamlar.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Cevapla