Merhaba,
DbGrid'in OnTitleClick, olayı sadece sol tık yapıldığında çalışıyor, sağ tık yapınca çalışmıyor.
Çalıştırmanın bir yolu var mıdır?
Teşekkürler...
DbGrid, title click sağ butonla çalışmıyor
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
DbGrid, title click sağ butonla çalışmıyor
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned

Ez cüdâyîhâ şikâyet mîküned

DBGrid in OnMouseDown olayına aşağıdaki kodu yaz.
Kod: Tümünü seç
procedure TForm1.DBGrid1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight then
DBGrid1TitleClick(nil);
end;
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Tabi soruyu eksik sormuşum. Cevap gelince anladım.
buradaki column değişkeni de lazım bana.
özelliğini kullanarak bir query çalıştırıyorum.
Hangi başlığa tıklanmışsa o başlığın alanına göre sıralama yapıyor. Ben sağ tık yapınca ters (desc) sıralama yapsın istiyorum. ile çağırınca olmuyor bu. Sağ klik yapıldığında TColumn cinsinden bişey de elde etmem gerekiyor.
Kod: Tümünü seç
TForm1.DBGrid1TitleClick(Column: TColumn)
Kod: Tümünü seç
Column.FieldName
Hangi başlığa tıklanmışsa o başlığın alanına göre sıralama yapıyor. Ben sağ tık yapınca ters (desc) sıralama yapsın istiyorum.
Kod: Tümünü seç
DBGrid1TitleClick(nil);
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned

Ez cüdâyîhâ şikâyet mîküned

Dbgrid.pas'ın içindeki mouse up olayını biraz değiştirerek olabileceğini tahmin ediyorum. pas dosyasında değişikliği yaptıktan sonra onu nasıl derlemem lazım?if ((Button = mbLeft) or (Button = mbRight)) and (Cell.X >= FIndicatorOffset) and (Cell.Y >= 0) then
if Cell.Y < FTitleOffset then
TitleClick(Columns[RawToDataColumn(Cell.X)])
En son hdayi tarafından 08 Nis 2005 09:25 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned

Ez cüdâyîhâ şikâyet mîküned

- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
Kod: Tümünü seç
if (Button = mbLeft) and (Cell.X >= FIndicatorOffset) and (Cell.Y >= 0) then
Kod: Tümünü seç
if (Cell.X >= FIndicatorOffset) and (Cell.Y >= 0) then
şeklinde değiştir ve dbgrids.pas dosyasındaki değişiklikleri kaydet.
C:\Program Files\Borland\Delphi6\Source\Vcl\dbgrids.pas dosyasını
C:\Program Files\Borland\Delphi6\Lib dizinine kopyala ve ardından build all deçeneğini seç.
eğer bu şekilde yemezse C:\Program Files\Borland\Delphi6\Lib dizinindeki dbgrids.dcu dosyasını sil ve ardından tekrar Build All seçeneğini seç.
bu şekilde yaparsan cellclick olayıda sağ tuşla tetiklenebilir. artık duruma göre ilgili kodları şekillendirirsin

Hallettim,
senin dediğin gibi yaparsak orta tuşla falanda aynı event çalışıyor, sadece sol ve sağla olması işime geldi biraz diye değiştirdim.
Teşekkürler...
senin dediğin gibi yaparsak orta tuşla falanda aynı event çalışıyor, sadece sol ve sağla olması işime geldi biraz
Kod: Tümünü seç
or (Button=mbRight)
Teşekkürler...
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned

Ez cüdâyîhâ şikâyet mîküned
