DBComboBox lara Ortak kod

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

DBComboBox lara Ortak kod

Mesaj gönderen HBV »

5 tane DBComboBoxda Örnek; İşçi,Öğrenci,Memur vs.. gibi seçenekleri Ortak bir kodla ,ayrı ayrı nasıl seçtirebilirim.(Firebird).
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
sorununuzu biraz açabilir misiniz? 5 tane dbcombobox ınız var. Ve her combobox ta İşçi,Memur, Öğrenci mi var yoksa bir tanesinde mi var.

Yani tam olarak ne yaptığınızı yazabilir misiniz?

Ayrıca bu soruyu programlama formuna sormanız lazımdı.
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Mesela tüm dbcombobox ların itemslerinde
Öğrenci
Memur
İşçi
Güvenlik Gör.
değerleri var.
Bütün dbcomboboxları Shift tuşu basılı iken seçip daha sonra events tabına geçip Onexit çıft tıklayıp aşağıdaki kodu yazarsanız hepsi için geçerli olur.

Burada dbcombobox tan çıkarken dbcomboboxtaki değer İşçi ise çıkmaya izin vermiyor. Bütün comboboxlarda öyle yapıyor.

Kod: Tümünü seç

procedure TForm1.DBComboBox1Exit(Sender: TObject);

var
gonderen:tdbcombobox;
begin
          gonderen:=sender as tdbcombobox;


          if gonderen.text='İşçi' then

          begin
           showmessage('İşçi yazamazsınız. ');
           gonderen.setfocus;


          end;



end;
Sizin istediğiniz öyle bir şey mi? Yoksa başka bir şey mi istiyorsunuz?

Kolay gelsin.
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Mesaj gönderen HBV »

Selamlar ..Her DBComboboxda Olsun !.

Kod: Tümünü seç

DBComboBox1.Items.Add('isci');
DBComboBox1.Items.Add('memur');
DBComboBox1.Items.Add('ogrenci');
DBComboBox1.Items.Add('gorevli');
vs.......gibi.
Bu kod gibi 5 ayrı DBComboboxda Seçilebilsin.Yani Birinde "isci"yi seçerken Öbüründe "Memur" u seçebileyim.Seçenekler fazla olucağı için Tek bir kodla yapmak istiyorum.tabi Yukarıdaki örnek diziliş hepsinde olacak.İlgilendiğiniz için çok teşekkür ediyorum.
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
Probleminizi tam olarak anlayamadım. Değerleri belirttiğiniz gibi girmişsiniz. Bundan sonra neyi yapmak istiyorsunuz biraz açabilir misiniz?
Seçilen verilerin kontrolü mü? Kontrolse yukarıda örnek vermişim.
Bana bir örnek verirseniz size yardımcı olmaya çalışayım.
Kolay gelsin.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhaba,

sanırım şöyle birşey vardı. tüm bileşenleri şift tuşu ile seçiyorsun. sıralamayı nasıl yapmak istiyorsan. sonra ilk sırada olması gereken bileşenin yani combobox1 in onexit olayına istediğin kodu yazarsan diğerlerinide tetiklemesi lazım. tam hatırlamıyorum ama aldığım delphi kitabında combobox için örnek değildi sanırım buna benzer bir örnek vardı.

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Mesaj gönderen HBV »

O değerler her DBcomboboxda olsun.ve ayrı ayrı seçilsin..Bilmem anlatabildimmi? ama tek bir kodla atayayım.

Kod: Tümünü seç

procedure TForm1.DBComboBox1Exit(Sender: TObject); 
begin 
   DBComboBox1.Items.add('isci');
   DBComboBox1.Items.add('memur');
end;

Kod: Tümünü seç

TForm1.DBComboBox1Exit(Sender: TObject); 
begin 
   DBComboBox2.Items.add('isci');
   DBComboBox2.Items.add('memur');
end;
gibi gözükecek.........
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,

Eğer sizin yapmak istediğiniz itemsleri doldurmak ise dbcombobox lardan birinin items özelliğine tıklarsınız, bir defa bir tanesine eklersiniz ondan sonra diğerlerini copy paste ile alırsınız. Bunlar sürekli orda kalır her programa girişte girmenize gerek kalmaz. Ama eğer itemse girdiğiniz değerler değişen şeyler ise bir table a yazarsınız. Table daki değerleri ise dblookupcomcobox ile dosyadan direk okutursunuz.

Başka da bir şey aklıma gelmiyor. Tek bir kodla atamayı tam bilmiyorum ama olmayabilir.

Kolay gelsin.
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

bence soru hala net değil arkadaş bizim bildiğimiz çok basit bir seyi sölüyor ama istediği sekeri biz ona veremiyoruz çünkü daha sunu bilmiyoruz seker mi istedi dondurma....

ne istiyorsun sekermi dondurma ?
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba,

@HBV arkadaşım dediğini anladım sanırım.

Sen comboboxların içini doldurmak için kod kullanıyorsun, ama çok fazla combobox olduğu için kodlar uzayacağından dolayı bunun kolay yolunu soruyorsun galiba.

Şimdi yukarıda arkadaşların belirttiği şekilde combobox'ların hepsini seçip açılan items kutusuna bir defaya mahsus yazmak istediğin yazıp kapatman yeterli olacaktır.

Eğer sen bunu illa ben kodla yapayım dersen veyada herhangi bir nedenden dolayı böyle olması gerekiyorsa Şöyle bir yol izleyebilrsin.

Bir for döngüsü açarsın değişken olarak combobox sayısı kadar bir değişken verirsin. Sonra bu döngünün içerisine eklemek istediğinz şeyleri eklersiniz ve döngüyü sonlandırısınız. istediğiniz işlemi bir defa yapmış olursunuz ve tüm combobox'lara istediğiniz şeylere yazdırmış olursunuz.

Kod yazım kısmında takılırsanız veya mantığı anlayamadıysanız tekrar yazın elimden geldiğince yardımcı olabilirim.

Saygılarımla
Kolay gelsin.
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

Bunu biraz daha kullanışlı yapalım...

Kod: Tümünü seç


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DBCtrls, Grids, DBGrids;

type
  TForm1 = class(TForm)
    DBComboBox1: TDBComboBox;
    DBComboBox2: TDBComboBox;
    DBComboBox3: TDBComboBox;
    DBComboBox4: TDBComboBox;
    DBComboBox5: TDBComboBox;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public

  Procedure comboxdoldur(Var DBCombobox1,DBCombobox2,DBCombobox3,DBCombobox4,DBCombobox5:TDBComboBox;yazveri1,yazveri2,yazveri3,yazveri4,yazveri5:string);
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

Procedure Tform1.comboxdoldur(Var DBCombobox1,DBCombobox2,DBCombobox3,DBCombobox4,DBCombobox5:TDBComboBox;yazveri1,yazveri2,yazveri3,yazveri4,yazveri5:string);
var
componentvarmi:String;
begin

  DBCombobox1.Items.Add(yazveri1);
  DBCombobox1.items.add(yazveri2);
  DBCombobox1.items.add(yazveri3);
  DBCombobox1.items.add(yazveri4);
  DBCombobox1.items.add(yazveri5);


  DBCombobox2.items.add(yazveri1);
  DBCombobox2.items.add(yazveri2);
  DBCombobox2.items.add(yazveri3);
  DBCombobox2.items.add(yazveri4);
  DBCombobox2.items.add(yazveri5);

  DBCombobox3.items.add(yazveri1);
  DBCombobox3.items.add(yazveri2);
  DBCombobox3.items.add(yazveri3);
  DBCombobox3.items.add(yazveri4);
  DBCombobox3.items.add(yazveri5);

  DBCombobox4.items.add(yazveri1);
  DBCombobox4.items.add(yazveri2);
  DBCombobox4.items.add(yazveri3);
  DBCombobox4.items.add(yazveri4);
  DBCombobox4.items.add(yazveri5);

  DBCombobox5.items.add(yazveri1);
  DBCombobox5.items.add(yazveri2);
  DBCombobox5.items.add(yazveri3);
  DBCombobox5.items.add(yazveri4);
  DBCombobox5.items.add(yazveri5);


end;
procedure TForm1.Button1Click(Sender: TObject);
begin
comboxdoldur(dbcombobox1,dbcombobox2,dbcombobox3,dbcombobox4,dbcombobox5,'Ahmet','Mehmet','Süleyman','Tuanna','Uğur');
end;

end.
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
HBV
Üye
Mesajlar: 114
Kayıt: 30 Haz 2005 09:28

Mesaj gönderen HBV »

Çok sağol Tuanna kardeş benim istediğimde bunun gibi bir şey amaç fazla kod yazmamak..kod olayını minumum seviyeye indirmek.Teşekkür ederim.
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

bunu biraz daha geliştirip..çalışma anında istediğin kadar db combobox istediğin kadar veri eklenecek hala getirebilenecek hale getirmek çok daha iyi olur...
Siz hayal edin...Biz yapalım TuannaSoft...
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Şöyle kısaltılabilir.

Kod: Tümünü seç

procedure FillCombos(const Combos: array of TDBComboBox; Items: TStringList);
var
  I: Integer;
begin
  for I:= 0 to High(Combos) do
    if Assigned(Combos[I]) then
      Combos[I].Items.Assign(Items);
end;
Bunu combobox'ları doldurmak için kullanacağız. Nasıl kullanırız:

Kod: Tümünü seç

var
  SL: TStringList;
begin
  SL:= TStringList.Create;
  try
    SL.Append('Bir');
    SL.Append('İki');
    SL.Append('Üç');
    FillCombos([DBComboBox1, DBComboBox2], SL);
  finally
    SL.Free;
  end;
end;
Bu şekilde istediğin kadar DBComboBox da ekleyebilirsin.
Ör:

Kod: Tümünü seç

[DBComboBox1, DBComboBox2, DBComboBox3, ...... ]
En son fduman tarafından 23 Eyl 2005 11:34 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

işte ben buna herkesin demlediği çayın tadı farklı olur diyorum

sağ ol coderlord...
Siz hayal edin...Biz yapalım TuannaSoft...
Cevapla