Dbeditte Para birimi...
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Dbeditte Para birimi...
Selam.
Daha önce bu konuya forumda değinilmesine karşın ne yaptımsa yapayım yazılan formüller hata verdi.Onun için ben de çareyi yazmak da buldum.
Projemde iki formum var birinci formda 3 dbedit ikinci formda 2 dbedit var
Bu dbeditlerin bağlı bulunduğu table olan dbaseIV table da bu dediğim alanlar number özelliğini taşıyordu sonra bu editlerin data
alanlarını Float olarak değiştirdim.
İlk formumdan bahsedeyim hocam.İlk formumda 3 tane dbedit şu isimleri taşıyor.
Günlük Gün Ödenecek.Ödenecek isimli dbeditin readonly özelliğini true yaptım ki elle değiştirme olmasın rakamda.
Ödenecek Günlük ile Gün alanını çarpacak kendi haznesine yazacak.
Ödenecek dbeditinin OnEnter olayına şu komutları yazdım :
dbedit14.Text:=floattostr(strtofloat(dbedit13.Text)*strtofloat(dbedit12.Text));
Şimdi bu formla bağlantılı diğer formu anlatayım
Bu formda form1e bağlı ödenecek dbediti , Verilen ,Borç isimli üç dbedit var.
Şimdi burada Verilen dbediti Ödenecek dbedittinden çıkarılıp Borca yazdırılacak.Verilen dbeditin OnExit olayına ise :
form2.Table1BORC.Value:= form2.Table1ÖDENE.Value-form2.Table1VERILEN.Value;
yazdım.
Kodlar çalışıyor çarpma çıkarma gibi işlemler yapıyor ama ben bunu virgüllü sayılar için yapmak istiyorum 1.dbedite 50.000 gireyim diğerine 100.000 son dbedit bunu hesaplamıyor üçüne de virgüllü sayı haline gelmeleri için komut uyguladım ama virgüllü sayıları çarpma veya çıkarma yapmıyorlar.Ama hiçbir şey uygulamasam hesaplamalar falan tamam yapıyor iş noktalı sayıya gelince olmuyor hata veriyor.Yani ben para birimi olarak yazdırmak istiyor ve ona göre işlem yaptırmak istiyorum.Acaba çarpma veya çıkartma komutlarını Onexit veya Onenter eventslerine değil de başka yere mi yazdıracağım.Sorunum için önceki konulara baktım formatfloat uyguladım,fieldin display formatına #,## yazdım ama istediğim olmadı
Şimdi Nasıl olacak ?
Daha önce bu konuya forumda değinilmesine karşın ne yaptımsa yapayım yazılan formüller hata verdi.Onun için ben de çareyi yazmak da buldum.
Projemde iki formum var birinci formda 3 dbedit ikinci formda 2 dbedit var
Bu dbeditlerin bağlı bulunduğu table olan dbaseIV table da bu dediğim alanlar number özelliğini taşıyordu sonra bu editlerin data
alanlarını Float olarak değiştirdim.
İlk formumdan bahsedeyim hocam.İlk formumda 3 tane dbedit şu isimleri taşıyor.
Günlük Gün Ödenecek.Ödenecek isimli dbeditin readonly özelliğini true yaptım ki elle değiştirme olmasın rakamda.
Ödenecek Günlük ile Gün alanını çarpacak kendi haznesine yazacak.
Ödenecek dbeditinin OnEnter olayına şu komutları yazdım :
dbedit14.Text:=floattostr(strtofloat(dbedit13.Text)*strtofloat(dbedit12.Text));
Şimdi bu formla bağlantılı diğer formu anlatayım
Bu formda form1e bağlı ödenecek dbediti , Verilen ,Borç isimli üç dbedit var.
Şimdi burada Verilen dbediti Ödenecek dbedittinden çıkarılıp Borca yazdırılacak.Verilen dbeditin OnExit olayına ise :
form2.Table1BORC.Value:= form2.Table1ÖDENE.Value-form2.Table1VERILEN.Value;
yazdım.
Kodlar çalışıyor çarpma çıkarma gibi işlemler yapıyor ama ben bunu virgüllü sayılar için yapmak istiyorum 1.dbedite 50.000 gireyim diğerine 100.000 son dbedit bunu hesaplamıyor üçüne de virgüllü sayı haline gelmeleri için komut uyguladım ama virgüllü sayıları çarpma veya çıkarma yapmıyorlar.Ama hiçbir şey uygulamasam hesaplamalar falan tamam yapıyor iş noktalı sayıya gelince olmuyor hata veriyor.Yani ben para birimi olarak yazdırmak istiyor ve ona göre işlem yaptırmak istiyorum.Acaba çarpma veya çıkartma komutlarını Onexit veya Onenter eventslerine değil de başka yere mi yazdıracağım.Sorunum için önceki konulara baktım formatfloat uyguladım,fieldin display formatına #,## yazdım ama istediğim olmadı
Şimdi Nasıl olacak ?
Nerde Yanlış yaptığını bilmiyorum ama Table ın fields editorun de Hangi fields sa onun Display formatına "###,###,###,###,###" yaz. Bunun haricinde virgül için yazdığın bütün kodları sil. Display formata sadece bunu yazmak yetecektir.
sevgiler...
sevgiler...
Geçip gideriz bizde ağızsız,dilsiz ve sorgusuz
İstanbul gibi düşeriz iki kıtaya birden...
En aşağılık düş, en büyük sevdadan belki
Erkek ölümler; bir uzun iç çekişle büyür göğsümüz
İstanbul gibi düşeriz iki kıtaya birden...
En aşağılık düş, en büyük sevdadan belki
Erkek ölümler; bir uzun iç çekişle büyür göğsümüz
texti sayıya çeviriken virgüllerden kurtulman gerekiyor. Bunun için daha önce biri bir kod yazmıştı ama şimdi hatırlamıyorum ararsan bulursun.
Diğer bir çözüm de sayıyı dbeditlerden değilde database'den almak. O zaman porblemin kalmaz.
Kolay Gelsin...
Diğer bir çözüm de sayıyı dbeditlerden değilde database'den almak. O zaman porblemin kalmaz.
Kolay Gelsin...
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned

Ez cüdâyîhâ şikâyet mîküned

Re: Dediklerinizi yaptım ama yine Dbeditte Para birimi...
Arkadaşım bu problemle karşılaşman gayet dolay çünkü DBEdit'lerin Text'inde işlem tapmaya çalışıyorsun. Yapılması gereken en güzel olay bunların Dataset kısmıyla işlem yaptırman olacaktır. Yok illaki ben DBEdit'lerin Text'leriyle işlem yapmak istiyorum dersem o zaman String tipte veriyi sayı (Float, Integer vb...) tipine çevirmelisin. Bu arada arama yapsaydın bu sorununu şimdiye kadar halletmiştin.selman yazdı: 1.dbedite 50.000 gireyim diğerine 100.000 son dbedit bunu hesaplamıyor üçüne de virgüllü sayı haline gelmeleri için komut uyguladım ama virgüllü sayıları çarpma veya çıkarma yapmıyorlar.

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.
Benim Yazmış olduğum bir fonksiyon.
MAKALE VE İPUCU kısmında HusoEdit bileşeninin içinde aynısı vardı.
P206 Arkadışımızın yazdığı aynı kod'un farklı bir yapıda kod'lanması
viewtopic.php?p=20325#20325
Kolay Gelsin...
MAKALE VE İPUCU kısmında HusoEdit bileşeninin içinde aynısı vardı.
Kod: Tümünü seç
function Value(Str: String): Double;
var
i:integer;
begin
for i:=1 to length(Str) do
Begin
if Str[i]='.' then
delete(Str,i,1);
End;
result:= StrToFloat(Str);
end;
viewtopic.php?p=20325#20325
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.
Bu kodu ilk önce kopyala implement kısmının altına yapıştır. Sonra toplama çıkartma yapacağın zaman fonkisyonun çağır.
Örnek.
Edit3.Text := FloatToStr(Value(Edit1.Text) + Value(Edit2.Text));
Kolay Gelsin...
Örnek.
Edit3.Text := FloatToStr(Value(Edit1.Text) + Value(Edit2.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.
İmplement Kısmı ?
İmplement kısmı nerde abi ne field editörüne ne de herhangi bir yerde implement kısmı göremedim.
İmplement kısmına sizin dediğiniz kodu yazınca sonra son yazdığınız kodu ;
Edit3.Text := FloatToStr(Value(Edit1.Text) + Value(Edit2.Text));
Edit3.text in OnExit olayına yazacağım herhalde galiba değil mi ?
Ama önce implement olayını açıklarsan biraz anlarım yoksa işime yaramaz .
Ayrıca
function Value(Str: String): Double;
var
i:integer;
begin
for i:=1 to length(Str) do
Begin
if Str='.' then
delete(Str,i,1);
End;
result:= StrToFloat(Str);
end;
kodunu tüm dbeditlerin implement olayına mı yazacağım onu da açıklarsan sevinirim.
Gene sorak bari
İmplement olayı nedir ?
Şimdiden Teşekkürler.
İmplement kısmına sizin dediğiniz kodu yazınca sonra son yazdığınız kodu ;
Edit3.Text := FloatToStr(Value(Edit1.Text) + Value(Edit2.Text));
Edit3.text in OnExit olayına yazacağım herhalde galiba değil mi ?
Ama önce implement olayını açıklarsan biraz anlarım yoksa işime yaramaz .
Ayrıca
function Value(Str: String): Double;
var
i:integer;
begin
for i:=1 to length(Str) do
Begin
if Str='.' then
delete(Str,i,1);
End;
result:= StrToFloat(Str);
end;
kodunu tüm dbeditlerin implement olayına mı yazacağım onu da açıklarsan sevinirim.
Gene sorak bari

Şimdiden Teşekkürler.
İzmir doğumluyum.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation //işte bu kısım implement kısmıdır.
{$R *.dfm}
function Value(Str: String): Double;
var
i:integer;
begin
for i:=1 to length(Str) do
Begin
if Str='.' then
delete(Str,i,1);
End;
result:= StrToFloat(Str);
end;
Arakadaşım Edit lerin exit eventine de Edit3.Text := FloatToStr(Value(Edit1.Text) + Value(Edit2.text); yazman yeterli olacaktır.
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.