如何使过程应用于多个事件?
我做了一个点击dbgrid1表头引发的过程,现在的问题是,我如何使dbgrid2、dbgrid3可使用该过程,过程里只使用了dbgrid1。
var i : integer;
for i:= 1 to DBGridEh1.Columns.Count do
begin
…
end
[解决办法]
使用Sender参数。下面用3个Button举例说明(楼主看懂了,应用到DBGrid里去,就很简单了)
type
TForm1 = class(TForm)
Button1: TButton;//放三个Button做试验
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure BtnsOnClick(Sender : TObject);//声明为TForm1的类方法
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BtnsOnClick(Sender : TObject);
begin
ShowMessage( '您点击的是 ' + TButton(Sender).Name);//使用了Sender参数
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.OnClick := BtnsOnClick;//三个按钮的单击事件都指向BtnsOnClick
Button2.OnClick := BtnsOnClick;
Button3.OnClick := BtnsOnClick;
end;
end.
[解决办法]
procedure clickhead(hh : TDBGridEh);
var i : integer;
begin
for i:= 1 to hh.Columns.Count do
begin
…
end
end;
比如你点第一个就使用
clickhead(DBGridEh1)依此类推