combo da seçilen ayları rakama dönüştürme?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

combo da seçilen ayları rakama dönüştürme?

Mesaj gönderen pelitt »

comboboxtan seçtiğim mesala şubat ayını yani comboboxta 'ŞUBAT' şeklinde sıralı
rakama çevirmek için bir yol biliyom ancak siz daha kısasını biliyosanız veya benim düşündüğüm yoldan yapılıyorsa söylerseniz sevinirim
örnek

ay:=combobox1.text;
if ay='ocak' then a:=1 else
if ay='şubat' then a:=2 else
.
.
şeklindemi olacak yoksa başka şekildemi
Ertugrul
Üye
Mesajlar: 136
Kayıt: 09 May 2009 12:05

Re: combo da seçilen ayları rakama dönüştürme?

Mesaj gönderen Ertugrul »

var
a:integer;
begin
a:=combobox1.itemindex+1; //0: ocak, 1: subat, ocak secilince 1 gelmesi icin +1.
end;
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

Re: combo da seçilen ayları rakama dönüştürme?

Mesaj gönderen pelitt »

ok sağol bunları parça parça birleştirip tarih olarak kaydedebilirim demi
mesala combobox2 den yıl gelecek

yil:=combobox2.text
gun:=15
a:=combobox1.itemindex+1;

dedikten sonra

tarih:=gun'.'+a'.'+yil

şeklinde olmazmı
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

Re: combo da seçilen ayları rakama dönüştürme?

Mesaj gönderen pelitt »

pelitt yazdı:ok sağol bunları parça parça birleştirip tarih olarak kaydedebilirim demi
mesala combobox2 den yıl gelecek

yil:=combobox2.text
gun:=15
a:=combobox1.itemindex+1;

dedikten sonra

tarih:=gun'.'+a'.'+yil

şeklinde olmazmı
olmuyomuş
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: combo da seçilen ayları rakama dönüştürme?

Mesaj gönderen CiTiZEN »

olmayan neresi bir hata vb mi alıyorsun?
UWESIS CORPORATION
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: combo da seçilen ayları rakama dönüştürme?

Mesaj gönderen CiTiZEN »

eğer a veya aktaracağın bileşen string tipinden ise (öyle tahmin ediyorum) itemindex i string tipine dönüştürmelisin

Kod: Tümünü seç

var a,yil,gun:string;
begin
yil:=combobox2.text;
gun:=15;
a:=inttostr(combobox1.itemindex+1);

tarih:=gun'.'+a'.'+yil
UWESIS CORPORATION
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

Re: combo da seçilen ayları rakama dönüştürme?

Mesaj gönderen pelitt »

gun:=15;

burada hata veriyor
elde ettiğim sonucu msql de date tipli alana kaydedeceğim

procedure TForm4.Button1Click(Sender: TObject);
var
xkim,xaidat,xyakit,ay,gun,ekle,idm,xay,xyil,xtarih:String;
s:Integer;
begin
if combobox1.Text='Ben Seçeyim' then
begin
idm:=edit3.text;
xaidat:=Edit1.Text;
xyakit:=Edit2.Text;
xay:=ComboBox3.Text;
xyil:=ComboBox2.Text;
ekle:='INSERT INTO hesap (kim,aidat,yakit,ay,yil) values'+'('+idm+','+QuotedStr(xaidat)+','+QuotedStr(xyakit)+','+QuotedStr(xay)+','+QuotedStr(xyil)+')';
ZQuery2.SQL.Text:=ekle; //Zquery1--->Zeos Bileşeni
ZQuery2.ExecSQL;
ZQuery1.Close;
ZQuery1.Open;
DBGrid2.Visible:=false;
dbgrid1.Visible:=true;
GridAyarla(DBGrid1);
DBGrid1.DataSource.DataSet.Fieldbyname('id').Visible:=false;
Edit3.Text:=DBGrid1.DataSource.DataSet.Fieldbyname('id').AsString
end
else
if combobox1.Text='Tüm Üyeler' then
for s:=1 to Form4.ZQuery2.RecordCount do
begin
xaidat:=Edit1.Text;
xyakit:=Edit2.Text;
xay:=ComboBox3.Text;
xyil:=ComboBox2.Text;
ay:=inttostr(combobox3.itemindex+1);
gun:=15;
xtarih:=gun'.'+a'.'+xyil;
ekle:='INSERT INTO hesap (kim,aidat,yakit,ay,yil,tarih) values'+'('+IntToStr(s)+','+QuotedStr(xaidat)+','+QuotedStr(xyakit)+','+QuotedStr(xay)+','+QuotedStr(xyil)+','+DateTimeToStr(xtarih)+')';
ZQuery2.SQL.Text:=ekle; //Zquery1--->Zeos Bileşeni
ZQuery2.ExecSQL;
ZQuery1.Close;
ZQuery1.Open;
DBGrid2.Visible:=false;
dbgrid1.Visible:=true;
GridAyarla(DBGrid1);
DBGrid1.DataSource.DataSet.Fieldbyname('id').Visible:=false;
Edit3.Text:=DBGrid1.DataSource.DataSet.Fieldbyname('id').AsString
end;
end;
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: combo da seçilen ayları rakama dönüştürme?

Mesaj gönderen CiTiZEN »

gun değişkenin tipi string tanımlamışsın gun:=15 şeklinde girdiğinde integer girmeye çalışıyorsun bunu gun:='15' şeklinde veya başka bir integer değeri string tipinde girmeye çalışıyorsan gün:=inttostr(15) şeklinde girebilirsin yani rakam gireceğin zaman 'rakam' eklemelisin aksi halde integer olarak algılar, birde bu şekilde denermisin
UWESIS CORPORATION
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

Re: combo da seçilen ayları rakama dönüştürme?

Mesaj gönderen pelitt »

özürdilerim ben dediğiniz yeri siz yazmadan halletmiştim biraz string filan okuyordum yinede sağolun ancak show mesage ile tarihi ekrana yazdırınca örnek:2592010 şeklinde oluyor kayıtta ilgili yere 00.00.0000 olarak yapılıyor koduma bakarmısınız nerede yanlış yaptım

yeni kod yanlız tarihte araya . yı kabul ettiremedim

Kod: Tümünü seç

procedure TForm4.Button1Click(Sender: TObject);
var
yenit:TDate ;
xkim,xaidat,xyakit,ay,gun,ekle,idm,xay,xyil,xtarih:String;
s:Integer;

begin
if combobox1.Text='Ben Seçeyim' then
begin
idm:=edit3.text;
xaidat:=Edit1.Text;
xyakit:=Edit2.Text;
xay:=ComboBox3.Text;
xyil:=ComboBox2.Text;
ekle:='INSERT INTO hesap (kim,aidat,yakit,ay,yil) values'+'('+idm+','+QuotedStr(xaidat)+','+QuotedStr(xyakit)+','+QuotedStr(xay)+','+QuotedStr(xyil)+')';
ZQuery2.SQL.Text:=ekle;  //Zquery1--->Zeos Bileşeni
ZQuery2.ExecSQL;
ZQuery1.Close;
ZQuery1.Open;
DBGrid2.Visible:=false;
dbgrid1.Visible:=true;
 GridAyarla(DBGrid1);
  DBGrid1.DataSource.DataSet.Fieldbyname('id').Visible:=false;
Edit3.Text:=DBGrid1.DataSource.DataSet.Fieldbyname('id').AsString
end
else
if combobox1.Text='Tüm Üyeler' then
 for s:=1 to Form4.ZQuery2.RecordCount do
begin

xaidat:=Edit1.Text;
xyakit:=Edit2.Text;
xay:=ComboBox3.Text;
xyil:=ComboBox2.Text;
ay:=inttostr(combobox3.itemindex);
gun:=IntToStr(15);
xtarih:=gun+ay+xyil;
yenit:=StrToDate(xtarih);
ShowMessage(DateToStr(yenit));

ekle:='INSERT INTO hesap (kim,aidat,yakit,ay,yil,tarih) values'+'('+IntToStr(s)+','+QuotedStr(xaidat)+','+QuotedStr(xyakit)+','+QuotedStr(xay)+','+QuotedStr(xyil)+','+QuotedStr(xtarih)+')';
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: combo da seçilen ayları rakama dönüştürme?

Mesaj gönderen CiTiZEN »

birincisi combobox ı kontrol ederken if combobox.text='Ben Seçeyim' then demişsin burda istisna bir durum yoksa yani eğer illaki 'Ben Seçeyim' gibi bir metin olmak zorunda değil ve bu kod ile amaç combobox dan birşeyler seçildiğini kontrol etmek ise; if combobox.itemindex>=0 then kullanılabilir daha kararlı olur.
ikincisi ise

Kod: Tümünü seç

xtarih:=gun+'.'+ay+'.'+xyil
olursa düzelecektir.

Kolay Gelsin.
UWESIS CORPORATION
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

Re: combo da seçilen ayları rakama dönüştürme?

Mesaj gönderen pelitt »

ben bir adım öndeyim heralda dediğinizide ben çözdüm ancak

Kod: Tümünü seç

ekle:='INSERT INTO hesap (kim,aidat,yakit,ay,yil,tarih) values'+'('+IntToStr(s)+','+QuotedStr(xaidat)+','+QuotedStr(xyakit)+','+QuotedStr(xay)+','+QuotedStr(xyil)+','+DateToStr(yenit)+')';
burada tarihi yani (yenit) yi DateToStr mi yapcam yoksa QuotedStr mi onu çözemedim değer 00.00.0000 olarak kaydediliyor
benseçeyim kısmı ise o seçilirse hangi isim seçilirse o borçlandırılıyo vs. başka bir olay sorun çıkarsa sorarım zaten sağolun
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: combo da seçilen ayları rakama dönüştürme?

Mesaj gönderen CiTiZEN »

pelitt yazdı:ben bir adım öndeyim heralda dediğinizide ben çözdüm ancak

Kod: Tümünü seç

ekle:='INSERT INTO hesap (kim,aidat,yakit,ay,yil,tarih) values'+'('+IntToStr(s)+','+QuotedStr(xaidat)+','+QuotedStr(xyakit)+','+QuotedStr(xay)+','+QuotedStr(xyil)+','+DateToStr(yenit)+')';
burada tarihi yani (yenit) yi DateToStr mi yapcam yoksa QuotedStr mi onu çözemedim değer 00.00.0000 olarak kaydediliyor
benseçeyim kısmı ise o seçilirse hangi isim seçilirse o borçlandırılıyo vs. başka bir olay sorun çıkarsa sorarım zaten sağolun

QuotedStr hiç kullanmadım açıkcası onun hakkında yorum yapamıycam ancak şöyle söyleyim mantıken eğer işin içinde tarih varsa datetostr saat veya saat+tarih formtından bir zaman bildirisi varsa datetimetostr kullanılır.QuotedStr ile ne yapmaya çalıştığını da yazarsan yardımcı olabilirim diye düşünüyorum.(Tarih ve saat parçalama vs. gibi işlemler için mi kullanıyorsun)
UWESIS CORPORATION
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

Re: combo da seçilen ayları rakama dönüştürme?

Mesaj gönderen pelitt »

hayır amacım
combobox1 den gelen yılı
combobox2 den gelen ayı
gun:=15 sıtandart değişmeyecek
hepsini bir tarih yapıp mysql kaydetmek hesap yaptırırken hani o tarihten öceki tarihlerin değerlerini hesaplama açısından işime yarayacak
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: combo da seçilen ayları rakama dönüştürme?

Mesaj gönderen CiTiZEN »

bunların hepsinin değeri yanlış hatırlamıyorsam string di bunları birleştiriyordunuz da xtarih değişkenindeydi yanlış hatırlamıyorsam bu değişken türüde string di yapman gereken tek şey kaydetmek bir değişime ihtiyaç varmış gibi gözükmüyor.Hiçbir değişime uğramadan (QuotedStr(xaidat) gibi )bu değerleri veritabanına direk girmeye çalış.

Kolay Gelsin
UWESIS CORPORATION
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

Re: combo da seçilen ayları rakama dönüştürme?

Mesaj gönderen pelitt »

sorun şundan kaynaklanıyor msql de tarih aralarında 12-09-2005 oluyor biz . koduk ondan kaynaklanıyor aradaki . yı - yapınca delphi tam kayıt ederken hata verdi tarih tipli olan sutunun tipini varchar yapsam olmazmı
Cevapla