access ten gelen data dbgridde görünmüyor

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
rapid
Üye
Mesajlar: 10
Kayıt: 25 Mar 2005 01:23

access ten gelen data dbgridde görünmüyor

Mesaj gönderen rapid »

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?
Kullanıcı avatarı
karflake
Üye
Mesajlar: 222
Kayıt: 15 Haz 2003 03:57

Mesaj gönderen karflake »

Not tipli alanlar gridde görüntülenmez. Forma bir dbmemo nesnesi koyarak gerekli bağlantıları yaparsanız, bilgileri görüntüleyebilirsiniz.
rapid
Üye
Mesajlar: 10
Kayıt: 25 Mar 2005 01:23

Mesaj gönderen rapid »

peki bunu dbgrid de görüntülemenin bir yolu yok mu? veya başka bir grid yok mu? illa not tipli alanları dbmemo da göstermek gerekiyor :?:
Kullanıcı avatarı
karflake
Üye
Mesajlar: 222
Kayıt: 15 Haz 2003 03:57

Mesaj gönderen karflake »

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.
Kullanıcı avatarı
muskut
Kıdemli Üye
Mesajlar: 1118
Kayıt: 22 Ara 2003 09:50
Konum: Sandalyemden
İletişim:

Mesaj gönderen muskut »

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...

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;
Cevapla