Yuvarlama ile ilgili soru

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
sinancaylak
Üye
Mesajlar: 151
Kayıt: 30 Oca 2004 09:16
Konum: Manisa

Yuvarlama ile ilgili soru

Mesaj gönderen sinancaylak »

Merhaba arkadaşlar bi yuvarrlama yapmak istiyorum ama aşağıdaki kodu edite nasıl uyarlayabilirim yardımcı olursanız sevinirim

Kod: Tümünü seç

function ayuvarla(gelen:real):real;
begin
Result:=trunc(gelen-(Trunc(gelen) mod 50));
end;
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

kod yazmak için illa buton, edit vs. olması gerekmez. Bu hataya çok düşülüyor :!: Bu fonksiyonu nerden çağırırsan çağır sana Real bir sayı döndürür. Edit'e almak istiyorsan FloatToStr veya FormatFloat ile stringe çevirebilirsin.

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

Mesaj gönderen husonet »

Kod: Tümünü seç

    Edit1.Text := FloatToStr(Ayuvarla(StrToFloat(Edit1.Text)));
Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
sinancaylak
Üye
Mesajlar: 151
Kayıt: 30 Oca 2004 09:16
Konum: Manisa

Mesaj gönderen sinancaylak »

Hüseyin abi merhaba bir buton koyup gönderdiğin kodu içine koydum ama edit içinde yuvarlama yapmıyor.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Yazdığın fonksiyonu ilave ettinmi?

Ben test ettim çalışıyor.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
sinancaylak
Üye
Mesajlar: 151
Kayıt: 30 Oca 2004 09:16
Konum: Manisa

Mesaj gönderen sinancaylak »

Tamam abi şimdi oldu saol valla her zaman genelde ilk yardıma sen yetişiyon çok saol
sinancaylak
Üye
Mesajlar: 151
Kayıt: 30 Oca 2004 09:16
Konum: Manisa

Mesaj gönderen sinancaylak »

Birde ben şöyle bir virgülleme kullanıyorum bu yuvarlamayı nasıl uyarkayacam buna

Kod: Tümünü seç

function noktala(noktalastr:string):string;
var
noktalad,noktalai:integer;
noktalistr:string;
begin
noktalastr:=ansireplacestr(noktalastr,'.','');
noktalistr:='';
noktalad:=0;
for  noktalai:=length(noktalastr) downto 1  do
begin
noktalad:=noktalad+1;
noktalistr:=noktalastr[noktalai]+noktalistr;
if noktalad mod 3 = 0 then noktalistr:='.'+noktalistr;
end;
if copy(noktalistr,1,1)='.' then
noktalistr:=copy(noktalistr,2,length(noktalistr)-1);
noktala:=noktalistr;
end;
**********************

Kod: Tümünü seç

procedure TForm1.Edit3Change(Sender: TObject);
var
editboyut,editcp:integer;
deg:boolean;
begin
edit2.SelectAll;
editcp:=Edit3.SelStart;
editboyut:=length(Edit3.Text);
if editcp<>length(Edit3.Text) then
deg:=true else deg:=false;
Edit3.Text:=noktala(Edit3.text);
if deg then
Edit3.SelStart:=editcp+(length(Edit3.Text)-editboyut)
else
Edit3.SelStart:=length(Edit3.text)
end;
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Kod: Tümünü seç

function noktala(noktalastr:string):string;
var
    noktalad,noktalai:integer;
    noktalistr:string;
begin
    noktalastr:=ansireplacestr(noktalastr,'.','');
    noktalistr:='';
    noktalad:=0;
    for  noktalai:=length(noktalastr) downto 1  do
    begin
        noktalad:=noktalad+1;
        noktalistr:=noktalastr[noktalai]+noktalistr;
        if noktalad mod 3 = 0 then
            noktalistr:='.'+noktalistr;
    end;
    if copy(noktalistr,1,1)='.' then
        noktalistr:=copy(noktalistr,2,length(noktalistr)-1);
    noktala:=noktalistr;
end;

function ayuvarla(gelen:real):real;
begin
    Result:=trunc(gelen-(Trunc(gelen) mod 50));
end;

function Value(Str: String): String;
var
     i:integer;
begin
     for i:=1 to length(Str) do
     Begin
        if Str[i]='.' then
            delete(Str,i,1);
     End;
     result:= Str;
end;


procedure TForm1.Edit1Change(Sender: TObject);
var
    editboyut,editcp:integer;
    deg:boolean;
begin
    edit1.SelectAll;
    editcp:=Edit1.SelStart;
    editboyut:=length(Edit1.Text);
    if editcp<>length(Edit1.Text) then
        deg:=true else deg:=false;
    Edit1.Text:=noktala(Edit1.text);
    if deg then
        Edit1.SelStart:=editcp+(length(Edit1.Text)-editboyut)
    else
        Edit1.SelStart:=length(Edit1.text);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
    islemStr:String;
begin
    islemStr := Value(Edit1.Text);
    Edit1.Text := FloatToStr(Ayuvarla(StrToFloat(islemStr)));
end;


Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
sinancaylak
Üye
Mesajlar: 151
Kayıt: 30 Oca 2004 09:16
Konum: Manisa

Mesaj gönderen sinancaylak »

Abi olmadı hata veriyor napabilirim
sinancaylak
Üye
Mesajlar: 151
Kayıt: 30 Oca 2004 09:16
Konum: Manisa

Mesaj gönderen sinancaylak »

Abi saol becerebildim sonunda teşekkür ederim
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Benim yazdığım kod'u test ettim çalışıyor. Forum'una bir adet Edit objesi birde button ekle kodları gerekli yerlere yapıştır test et.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
NeverFear
Üye
Mesajlar: 69
Kayıt: 20 Tem 2004 09:41
Konum: İzmir

Mesaj gönderen NeverFear »

Kod: Tümünü seç

Al sana kısacık bir cevap
procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit2.Text:= FloatToStr(Round(StrToFloat(Edit1.Text)));
end;
Umarım istediğin sonuca ulaşırsın
rainman9
Üye
Mesajlar: 11
Kayıt: 08 Eki 2003 11:18

Mesaj gönderen rainman9 »

delphi 2005 vcl 'de deniyorum
[Error] Unit1.pas(45): E2003 Undeclared identifier: 'ansireplacestr'
hatasını veriyor
neden olabilir
teşekkürler
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Merhaba.

- ansireplacestr fonksiyonu kütüphane olarak StrUtils unit'i içinde bulunuyor.. Uses kısmında StrUtils eklersen aldığın, bu fonksiyonun tanımlanmadığına ilişkin hatayı bertaraf etmiş olursun... :idea:

- Genel için yazıyorum, bunun benzeri bir hata aldığında hata verdiren

Kod: Tümünü seç

[Error] Unit1.pas(45): E2003 Undeclared identifier: 'ansireplacestr' 
satırdaki tırnak içinndeki ifadeyi program içinde bulup cursor'u üzerine gel ve F1 tuşuna bas... şunun benzeri bir sayfayla karşılaşırsın...
Delphi IDE F1 Help sayfası yazdı: AnsiReplaceStr function

See also

------------------------------------------------
Replaces all occurrences of a substring with another string.

Unit

StrUtils

Category

string handling routines

Delphi syntax:

function AnsiReplaceStr(const AText, AFromText, AToText: string): string;
...
...
...
- İşte burada UNIT yazan yerde ne yazıyorsa ve senin UNIT'lerin içinde yoksa, bunu eklersen tanım sorununu aşarsın... :wink:

- Çalışmalarında başarılar...
Resim
Resim ....Resim
Cevapla