PDA

Tam Sürümünü Görmek İçin : DbGrid'te tıklanan satırın bilgileri


TeDDy
28/03/2003, 16:35
selam arkadaşlar

ben grid'de tıklanan bir satır (veya Cell farketmez) veritabanındaki kayıt no'sunu nasıl alabilirim


hmustak
28/03/2003, 17:10
procedure TForm1.DBGrid1ColEnter(Sender: TObject);
begin

label1.Caption :=format('column: %2d; Row: %d',[TFake (DBGrid1).Col,TFake (DBGrid1).row]);

end;

procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin

DBGrid1ColEnter(sender);

end;

TeDDy
28/03/2003, 17:48
hocam peki "TFake" nedir? onda hata werdi. Onu kullanmak USES kısmına bişiler yazmak gerekiyor mu?

hmustak
28/03/2003, 21:21
ya pardon yaa. O Dbgrid için bi sınıftı...

Ara ara vermiyeyimde hepsini birden vereyim düzeltmeler le istersen...

Olduğu gibi Copy/paste yapıyorum...




unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, StdCtrls, Grids, DBGrids;

type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
Label1: TLabel;
DataSource1: TDataSource;
Table1: TTable;
procedure DBGrid1ColEnter(Sender: TObject);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

type
TFake = class(TDBGrid);

procedure TForm1.DBGrid1ColEnter(Sender: TObject);
begin
label1.Caption :=format('column: %2d; Row: %d',[TFake (DBGrid1).Col,TFake (DBGrid1).row]);
end;

procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
DBGrid1ColEnter(sender);
end;

end.

TeDDy
29/03/2003, 09:43
hocam olmadı yaaa

sanırım ben yanlış şeyi istedim sizden ya :( :(

bi daha anlatmayı deneyeyim.Şimdi;

DgGrid'e tıklanınca tıklanan kaydın istenen bir alanını yada bütün alanlarının bilgileri almak istiyorum. Dbgrid'de bütün alanlar gözükmüyor.Sadece benim belirlediklerim.

TeDDy
29/03/2003, 11:02
hocam çok teşekkür ederim. ben bu olayı başka bir yöntem ile çözdüm

procedure TFrm_OdemeGirisi.DBGrid1CellClick(Column: TColumn);
begin
DataMD.Tbl_Sozlesme.Locate('Sozlesme_ID',DBGrid1.S electedField.AsString,[]);
end;




bu yöntemle o kaydın Sozlesme_ID 'sini bulup Table'i buraya konumlandırdıktan sonra işimi görebiliyorum.

Yardımların için saolasın hmustak

hmustak
29/03/2003, 20:13
always, we share somebody...
but

Sorununu çözmene sevindim, ama ne yaptığını anlamadım, yanlış açıdan bakıyorum belkide ???

:)

TeDDy
31/03/2003, 09:43
sanırım ben bayağı düz bir mantıkla çözdüm. birde bişi dicem.

Dbgrid'in RowSelect veya MultiSelect özelliğini True yaptğımda ve bir POPUP MENU koduğumda DbGrid'e sağ tıklayınca iki satır birden seçiliyor. bunu sadece tek satır seçme gibi bişi yapabilme ihtimalimiz war mı?

hmustak
31/03/2003, 18:19
:D

TeDDy
01/04/2003, 09:25
yani yok galiba birde senin şu "savaşa hayır" avatarını bende kullanmak isterim. bence çok güzel bir eylem.

eğer izin verirsen bende kullanmak isterim. ama yok izin wermezsen anlayışla karşılarım.

:D :D

hmustak
01/04/2003, 22:03
Paylaşıma açtım :)