access ten gelen data dbgridde görünmüyor
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
access ten gelen data dbgridde görünmüyor
access veritabanını kullanarak basit bir progmra yaptım. programda memo nesnesine yazılanları ado ile access veritabanında not tipli alana kaydediyorum. daha sonra tabloyu dbgridde listelettirdiğim zaman bütün veriler normal geliyor ama memo ile kaydettiğim alandaki datalar grid te (MEMO) diye görünüyor. problem nerde çözüm nedir acaba?
Dbgrid ile not alanını göstermek için dbmemo bileşenini dbgrid'e gömmeği deneyebilirsiniz. Ben daha önce böyle bir uygulama yapmadım ancak, buradaki örnekte dbgrid'e datetimepicker nesnesi gömülmüş. Bu örnekten faydalanarak birşeyler deneyebilirsiniz.
Hocam maalesef dbgrid'in not tipi alan gösterme gibi bir özelliği yok. Bunun için ya daha gelişmiş gridler kullanacaksınız yada kendi bileşeninizi yazacaksınız veyaaaaa şimdiki yemek tarifini uygulayacaksınız 
1. Önce yeni bir form oluşturun ve bunun içine bi tane dbmemo cinsinden bir bileşen koyun. Formun üst başlık kısmını yok edin (hani formun BorderStyle özelliği).
2. Bu formu kaydedin.
3. Sonra gridin, hangi projede dbgrid kullandıysanız, dbgrid'in OnDrawColumnCell olayına bu dbmemo bileşenini koyduğumuz formu gösterecek şekilde uygun kodlarını yazarsın.
4. Dbgrid'in OnColExit olayında da dbmemo'nun bulunduğu formu gizleycek kodları yazarsın. İşte sana not alanını gösteren bi grid
Afiyet olsun...

1. Önce yeni bir form oluşturun ve bunun içine bi tane dbmemo cinsinden bir bileşen koyun. Formun üst başlık kısmını yok edin (hani formun BorderStyle özelliği).
2. Bu formu kaydedin.
3. Sonra gridin, hangi projede dbgrid kullandıysanız, dbgrid'in OnDrawColumnCell olayına bu dbmemo bileşenini koyduğumuz formu gösterecek şekilde uygun kodlarını yazarsın.
4. Dbgrid'in OnColExit olayında da dbmemo'nun bulunduğu formu gizleycek kodları yazarsın. İşte sana not alanını gösteren bi grid

Afiyet olsun...
Kod: Tümünü seç
procedure TfrmHareketDuzenleme.grdHareketlerDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (Column.FieldName = 'ACIKLAMA') and (gdFocused in state) then
begin
with frmMemo do
begin
Memo.DataField := 'ACIKLAMA';
Memo.DataSource := DataModule1.dsHareketTablosu;
Left := frmHareketDuzenleme.Left + grdHareketler.Left + Rect.Left + 5;
Top := frmHareketDuzenleme.Top + grdHareketler.Top + Rect.Bottom + 15;
Show;
end;
end;
end;
Kod: Tümünü seç
procedure TfrmHareketDuzenleme.grdHareketlerColExit(Sender: TObject);
begin
if grdHareketler.SelectedField.FieldName = 'ACIKLAMA' then
frmMemo.Hide;
end;