procedure clickhead(hh : TDBGridEh); var i : integer; beginfor i:= 1 to hh.Columns.Count do begin … endend;比如你点第一个就使用 clickhead(DBGridEh1)依此类推
按我在一楼的用法,继续给楼主写更接近于DBGrid的代码://... 其他代码请仿效我在一楼的代码...procedure TForm1.ForDBGrids(Sender: TObject); var i : integer; begin for i:= 1 to TDBGridEh(Sender).Columns.Count do begin … TDBGridEh(Sender). ....//如果点击了DBGridEh1,那这里TDBGridEh(Sender)就相当于DBGridEh1 end; end;procedure TForm1.FormCreate(Sender: TObject); begin DBGridEh1.OnClick := ForDBGrids;//三个DBGrid的单击事件都指向过程ForDBGrids DBGridEh2.OnClick := ForDBGrids; DBGridEh3.OnClick := ForDBGrids; end;相信楼主应该明白了。
procedure TForm1.ForDBGrids(Sender: TObject; var1,var2 : VarType);//vartype是参数类型 begin .... end;多日不见楼主了。自从上次那个MainMenu和PageControl问题后。
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.
var i : integer;
beginfor i:= 1 to hh.Columns.Count do
begin
…
endend;比如你点第一个就使用
clickhead(DBGridEh1)依此类推
var i : integer;
begin
for i:= 1 to TDBGridEh(Sender).Columns.Count do
begin
…
TDBGridEh(Sender). ....//如果点击了DBGridEh1,那这里TDBGridEh(Sender)就相当于DBGridEh1
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
DBGridEh1.OnClick := ForDBGrids;//三个DBGrid的单击事件都指向过程ForDBGrids
DBGridEh2.OnClick := ForDBGrids;
DBGridEh3.OnClick := ForDBGrids;
end;相信楼主应该明白了。
begin
....
end;多日不见楼主了。自从上次那个MainMenu和PageControl问题后。
---------------------------------
难道上面的代码,不都是用的“公共过程或函数”吗?