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
dbgrid de combobox
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.
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.
Re: dbgrid de combobox
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....
-
- Üye
- Mesajlar: 8
- Kayıt: 09 Tem 2003 02:57
- Konum: ankara
Re: dbgrid de combobox
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;
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;
Re: dbgrid de combobox
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
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.)
ibadetle geçen bin geceden hayırlıdır. HZ. MUHAMMED (S.A.)