dbgrid de combobox

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
kazimaycan
Üye
Mesajlar: 8
Kayıt: 09 Tem 2003 02:57
Konum: ankara

dbgrid de combobox

Mesaj gönderen kazimaycan »

dbgrid in ilk colonuna harici bir comboboz koymak istiyorum db den gelen veriye göre değil.internette baktıgım tum sitelerde
DrawColumnCell de dbgride gelen verinin true yada false olma durumunda işaretli oluyor yada olmuyor ve bu gelen comboboxın check ini kaldırmak içinde illa query nin edit modda olması gerekiyor .... benim istediğim ise query read only modda iken combobox ta değişiklik yapmak .bana db den bagımsız gridin içinde işaretlenebilir bir şekilde acık combobox lazım bunu nasıl yapabilirim yardımcı olabilirseniz sevinirim
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: dbgrid de combobox

Mesaj gönderen Battosai »

http://delphi.about.com/od/usedbvcl/l/aa101403b.htm Burdaki DBlookupCombox'ın nasıl yerleştirildiğine bak...yani sadece DrawColumnCell olayındaki kodları Comboboz'ın için yaz....
kazimaycan
Üye
Mesajlar: 8
Kayıt: 09 Tem 2003 02:57
Konum: ankara

Re: dbgrid de combobox

Mesaj gönderen kazimaycan »

bu yazılan kodda bi sıkıntı var oda db den gelmesi ben dbgridin ilk kolonunu combobox olması istiyorum db den bagımsız combo yada checbox.
umarım yapmak istediğimi anlatabilmişimdir. bu kod çalışıyor fakat db gridde scrool la aşşagı dogru inildiğinde yarattıgım ilk kolon aşşağı inmiyor
function TForm1.getControl (Sender : TWincontrol;Oname : String) : TCheckBox;
var
DrawState: Integer;
DrawRect: TRect;
counter : integer;
begin
Result:=nil;
for counter:=0 to Sender.ControlCount -1 do
if (TObject(Sender.Controls[Counter]) is TCheckBox) then
begin
if TCheckBox(Sender.Controls[Counter]).Name =Oname then
begin
Result:=TCheckBox(Sender.Controls[Counter]);
end;
end;
if (Result = nil) then
begin
Result:=TCheckBox.Create(self);
Result.Name:=Oname;
Result.Caption:=Oname;
Result.OnClick:=CheckBoxClick;
Result.parent:=form1;

end;

end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
chk : TCheckBox;

begin

Rec:=Rect;
if (Column.FieldName = 'a) then // ????????????? ??? ????
begin
chk:=getControl(DBGrid1,'CHK'+dbgrdi1.fields[0].asstring);
End;
End;
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Re: dbgrid de combobox

Mesaj gönderen TRSoft »

Anladığım kadarıyla yapmak istediğin kayıtlar arasında seçim yapmak.

Bunun için ben cxgrid kullanıyorum demolarını incelemeni tavsiye ederim.

Eğer illa dbgrid üzerinde yapacaksan ilk kolona ait bir memtable alanı kullan ..

kolay gelsin
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Cevapla