dbgrid ve para formatı sorunu?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen Battosai »

Hazır cevap bekleyeceğine cevaplardan birşeylre öğrensen nasıl olur...Önceki mesajımda dedimki MySQL ondalık ayraç olarak nokta(.) kullanır diye virgüllü değer gönderdin mi hatalı yazar...Bilmem hatırlarlıyor musun mesajı. Peki ne yapmak lazım bu durumda ? Tabiki virgülleri nokta ile değiştirmek...formundaki uses satırına strutils unit ini ekle...sonra replacetext fonksiyonu ile değiştir...

Kod: Tümünü seç

deger:=ReplaceText(deger,',','.');
Ayrıca ondalık hane ikiden fazla olduğunda sen 2 olarak tanımladığın için MySQL değeri yuvarlayarak yazar...
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen Battosai »

Şimdi yine eksik olacak...Madem tam çözüm verelimde kurtaralım seni bu dertten...Aşağıya yazdığım fonksiyonu Ana formun var bloğunun üstünde tanımla...

Kod: Tümünü seç

function MyDecimal(dec: string): string;
begin
if  Pos(',',dec)>0  then
Begin
Result:=AnsiReplaceText(AnsiReplaceText(dec,'.',''),',','.');
End
 else
  Result:=AnsiReplaceText(dec,'.','');
end;
Bu fonksiyonu kayıt esnasında kullanırsın.. edit içinde ne yazdığı önemli değil doğru şekilde kayıt eder....
insert into....Quatedstr(mydecimal(deger)) şeklinde kullanacaksın...
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen pelitt »

Battosai yazdı:Şimdi yine eksik olacak...Madem tam çözüm verelimde kurtaralım seni bu dertten...Aşağıya yazdığım fonksiyonu Ana formun var bloğunun üstünde tanımla...

Kod: Tümünü seç

function MyDecimal(dec: string): string;
begin
if Pos(',',dec)>0 then
Begin
Result:=AnsiReplaceText(AnsiReplaceText(dec,'.',''),',','.');
End
else
Result:=AnsiReplaceText(dec,'.','');
end;
Bu fonksiyonu kayıt esnasında kullanırsın.. edit içinde ne yazdığı önemli değil doğru şekilde kayıt eder....
insert into....Quatedstr(mydecimal(deger)) şeklinde kullanacaksın...
valla çok makbule geçer zaten bi döğmediğiniz kaldı :lol:
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen Battosai »

valla çok makbule geçer zaten bi döğmediğiniz kaldı
Az kaldıydı zaten.... :twisted:
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen pelitt »

bu işi ben kaptım heralde

Kod: Tümünü seç

procedure TForm4.Edit1KeyPress(Sender: TObject; var Key: Char);

begin
    if Key=#13 then//enterla aşşağı satıra geçmek
  begin
    Key:=#0;
    Perform(WM_NEXTDLGCTL,0,0);
    end
    else if not (Key in ['0'..'9','.',',',#8]) then
begin
Key:=#0;
end
else if (key in [','])then
begin
Key:='.';
end;
end;
edite sadece rakam girilmesi için bir kod ararken dedim bu kodla biraz oynarsam istediğim şeyi yaparım dedim son hali bu girilen (,) ü kendi (.) ile değiştirityor
denedim çalışıyor böyle kolay bir yolu vardı niye söylemiyonuz çok merak ediyom :(
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen pelitt »

fonksiyon lazım oldu kayıtları değiştirirken kayıtlar virgüllü gidiyor bu fonksiyon nasıl kullanılıyor bana anlatacak bir delüganlı yokmi :Nevil
Battosai yazdı:Şimdi yine eksik olacak...Madem tam çözüm verelimde kurtaralım seni bu dertten...Aşağıya yazdığım fonksiyonu Ana formun var bloğunun üstünde tanımla...

Kod: Tümünü seç

function MyDecimal(dec: string): string;
begin
if Pos(',',dec)>0 then
Begin
Result:=AnsiReplaceText(AnsiReplaceText(dec,'.',''),',','.');
End
else
Result:=AnsiReplaceText(dec,'.','');
end;
Bu fonksiyonu kayıt esnasında kullanırsın.. edit içinde ne yazdığı önemli değil doğru şekilde kayıt eder....
insert into....Quatedstr(mydecimal(deger)) şeklinde kullanacaksın...
aliplane
Üye
Mesajlar: 30
Kayıt: 06 Eki 2008 03:32

Re: dbgrid ve para formatı sorunu?

Mesaj gönderen aliplane »

bu bölümü inceleyebilirsiniz.

viewtopic.php?f=2&t=4924&p=148893#p148893
Cevapla