Dbgrid satır içinde buton ile form açmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
sadikkavakli
Üye
Mesajlar: 33
Kayıt: 23 Nis 2014 09:04

Dbgrid satır içinde buton ile form açmak

Mesaj gönderen sadikkavakli » 28 May 2014 09:58

Değerli Üstadlarım,

Projem ek'tedir. Form1 de bulunan Dbgrid satır içinde Malzeme Kodu içerisinde [...] şeklinde butona benzer çıkıyordu bulamadım.
1-Klik olayını gerçekleştirince Form2 açılıyordu bunu yapamadım.
2-Form2 de Popup menu var Ekle Değiştir incele değimde (Adotable1:Field(M_id) not found) Hatası almaktayım düzeltemedim.
3-Form2 de ilgili satırı seçim yapınca (Ctrl tuşuna basıp çoklu seçim yaptığımda)Form1deki gbgrid satırlarına nasıl getirbilirim.

Saygılarımla.
Dosya ekleri
GBGrid.rar
(55.18 KiB) 83 kere indirildi

xxxjedixxx
Üye
Mesajlar: 216
Kayıt: 10 Ara 2013 03:50

Re: Dbgrid satır içinde buton ile form açmak

Mesaj gönderen xxxjedixxx » 29 May 2014 08:48

1) Grid satırında button gösterme içim

Kod: Tümünü seç

procedure TForm1.DBGrid1ColEnter(Sender: TObject);
var index: integer; // selectedindex sütun indeksleri aynı olmayabilir, bu yüzden sütun indeksini arıyoruz
begin
  if DBGrid1.SelectedField.FieldName = 'Malz_Kodu' then
  begin
    for index := 0 to DBGrid1.Columns.Count - 1 do // sütun indeksini buluyoruz.
      if DBGrid1.Columns[index].FieldName = DBGrid1.SelectedField.FieldName then Break;
    DBGrid1.Columns[index].ButtonStyle := cbsEllipsis; // buton göstermek için
  end;
end;

// burası da butonun tıklanmasında çalışacak kod
procedure TForm1.DBGrid1EditButtonClick(Sender: TObject);
begin
  if DBGrid1.SelectedField.FieldName = 'Malz_Kodu' then
  begin
    ShowMessage('aaaaaaaa');
  end;
end;
2. Bu kısımda, daha önce sana gönderdiğim başka bir projeden alıntı yapmışsın. Bir şeyi atlamışsın. Önceki gönderdiğimde Ekle, değiştir, göster menülerinin herbirinin bir Tag değeri vardı. Fakat bu yeni yaptığında hepsi sıfır görünüyor. Aşğıdaki koda dikkat edersen Tag'lara göre EditMod belirleniyor. Tag sıfır olunca EditMod = D oluyor ve I'den farklı olduğu için M_Id yok hatası veriyor. Form2'deki Ekle menüsü için Tag = 1, Değiştir için Tag = 2, İncele için Tag = 3 olmalı.

Kod: Tümünü seç

  ...
  if TMenuItem(Sender).Tag = 1 then
    EditForm.EditMod := 'I' //Yeni Kayıt
  else if TMenuItem(Sender).Tag = 2 then
    EditForm.EditMod := 'E' // Değiştir
  else EditForm.EditMod := 'D'; // Görüntüle
  if EditForm.EditMod <> 'I' then
  EditForm.M_id:=DBGrid1.DataSource.DataSet.FieldByName('M_id').AsInteger;
  ...
3. Çoklu seçimler için DBGrid.SelectedRows 'u incele.

Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 349
Kayıt: 05 Oca 2012 12:55

Re: Dbgrid satır içinde buton ile form açmak

Mesaj gönderen xozcanx » 29 May 2014 10:06

2-

Kod: Tümünü seç

EditForm.M_id:=DBGrid1.DataSource.DataSet.FieldByName('M_id').AsInteger;
yerine

Kod: Tümünü seç

EditForm.M_id:=DBGrid1.DataSource.DataSet.FieldByName('M_İd').AsInteger;
denermisiniz.
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..

sadikkavakli
Üye
Mesajlar: 33
Kayıt: 23 Nis 2014 09:04

Re: Dbgrid satır içinde buton ile form açmak

Mesaj gönderen sadikkavakli » 29 May 2014 10:41

Sayın xozcanx,

Access veritabanından o değişliği yaptım M_id olarak düzeltme yapmıştım.

sadikkavakli
Üye
Mesajlar: 33
Kayıt: 23 Nis 2014 09:04

Re: Dbgrid satır içinde buton ile form açmak

Mesaj gönderen sadikkavakli » 29 May 2014 10:56

Sayın xxxjedixxx,

Öncelikle bu ifade etmek istiyorum Popup ekle değiştir incele çalışması tamamen size ait kod çalışmasıdır.

Değerli bilgilerinizi paylaştığınız için çok teşekkür ederim. Form2 Popup menü ile başım belada ekle dediğimde EditForm açılıyor fakat veriler gelmiyor. Tagları da dediğiniz gibi 1,2,3 olarak tanımladım fakat hata mesajları ile başım belada. Proje Version 2 ek'tedir.

Saygılarımla.
Dosya ekleri
GBGrid v2.rar
(59.19 KiB) 61 kere indirildi

xxxjedixxx
Üye
Mesajlar: 216
Kayıt: 10 Ara 2013 03:50

Re: Dbgrid satır içinde buton ile form açmak

Mesaj gönderen xxxjedixxx » 29 May 2014 09:09

Merhaba,

Önceki gönderdiğim projede fark etmediklerinizi bu yeni projede düzelttim. 3 tane menü tek bir prosedürü kulalnıyordu fakat sen sadece ekle için prosedür tanımlamışsın. Tag'leri bu yüzden kullanmıştım. 3 tane click prosedürü yazmamak için. Tag'ler ile hangi menüye tıklandığını buluyoruz. Her bir menü için EditForm açılmaktadır.

Diğer bir hata da malzeme tablona "m_İd" adında bir alan tanımlamışsın fakat "m_id" diye kullanmaya kalkmışsın. Büyük/küçük harf sorunu. Ayrıca sana tavsiyem, hiç bir zaman tablo isimlerinde ve alan adlarında türkçe karakter kullanma, başına bela olur.

EditForm ve Form2'deki Adoconnection'lar sildim, AdoTable ve DataSet'lerin bağlantılarını form1'in Adoconnection1'ine bağladım. Böylelikle tek bir noktadan bağlantı metnini (connection string) değiştirebilirsin. Projenin kaynak kodundaki otomatik form create'leri de kaldırdım.
Dosya ekleri
GBGrid_v3.rar
(60.94 KiB) 67 kere indirildi

sadikkavakli
Üye
Mesajlar: 33
Kayıt: 23 Nis 2014 09:04

Re: Dbgrid satır içinde buton ile form açmak

Mesaj gönderen sadikkavakli » 30 May 2014 10:31

Sayın xxxjedixxx,

Elinize sağlık Bugün Cuma Allah'tan ne dilersen onu versin.

Hakkınızı helal ediniz.

Saygılarımla.

xxxjedixxx
Üye
Mesajlar: 216
Kayıt: 10 Ara 2013 03:50

Re: Dbgrid satır içinde buton ile form açmak

Mesaj gönderen xxxjedixxx » 30 May 2014 12:10

Rice ederim. Güzel temennilerin için de ayrıca teşekkür ederim. Allah hepimiz için hayırlısı neyse onu versin. Saygılar.

sadikkavakli
Üye
Mesajlar: 33
Kayıt: 23 Nis 2014 09:04

Re: Dbgrid satır içinde buton ile form açmak

Mesaj gönderen sadikkavakli » 30 May 2014 03:05

Sayın xxxjedixxx,

Popupda değiştir dediğimizde hata vermektedir. Proje ek'tedir. bazı düzenlemeler yaptım ama birde kod gelince açıklama,Birim otomatik olarak gelebilir mi?

Saygılarımla.
Dosya ekleri
GBGrid v4.rar
(72.84 KiB) 60 kere indirildi

xxxjedixxx
Üye
Mesajlar: 216
Kayıt: 10 Ara 2013 03:50

Re: Dbgrid satır içinde buton ile form açmak

Mesaj gönderen xxxjedixxx » 30 May 2014 08:14

Değiştirdeki hata unit3'teki update sorgusundan kaynaklanıyor. Kodunda,

Kod: Tümünü seç

      SQL.Text := 'update malzemeler set code=:code' +
                            'where M_id = :M_id';
yazıyor. Dikkat edersen :code 'dan sonra boşluk koymamışsın. Ya oraya yada where 'İn önüne bir boşluk koy.

Açıklama ve birim ile ilgili olarak;
DBGrid1EditButtonClick prosedürüne aşağıdaki satırları ekle.

Kod: Tümünü seç

      DBGrid1.DataSource.DataSet.FieldByName('Malz_Aciklamasi').Value := Form2.DBGrid1.DataSource.DataSet.FieldByName('aciklama').AsString;
      DBGrid1.DataSource.DataSet.FieldByName('Birim').Value := Form2.DBGrid1.DataSource.DataSet.FieldByName('birim').AsString;

sadikkavakli
Üye
Mesajlar: 33
Kayıt: 23 Nis 2014 09:04

Re: Dbgrid satır içinde buton ile form açmak

Mesaj gönderen sadikkavakli » 30 May 2014 09:12

Sayın xxxjedixxx,

Proje son hali ek'tedir. Ellerine Sağlık

Saygılarımla.
Dosya ekleri
GBGrid v5 SEÇ AKTAR son hali.rar
(82.88 KiB) 153 kere indirildi

erbedas
Üye
Mesajlar: 14
Kayıt: 23 Tem 2018 05:34

Re: Dbgrid satır içinde buton ile form açmak

Mesaj gönderen erbedas » 25 Tem 2018 01:44

Tüm paylaşımlar için teşekürler
aradığım buydu

Cevapla