function aaaa(sender:object);
begin
if sender is TButton then  //判断不同控件
...
if sender is TEdit then
 if TEdit(sender as object).name='Edit1' then //判断同种控件的不同个体
....
end;

解决方案 »

  1.   

    控件的TabOrder属性唯一标识控件,你第一个放在Form上的控件TabOrder为0,第二个为1,以次类推。你可以修改这个属性,但其它控件的该属性也会随之变化。原则是:假设一个控件TabOrder=8,你把它改为4(其值不能大于控件数-1);那么原来TabOrder为4的就会变成8。以确保标识的唯一性。
      

  2.   

    首先 谢谢 oracle_lover(数据库情人) ,不过使用TabOrder属性,还不如使用tag好,sender:object中sender中有什么内容?
      

  3.   

    tag的值可以重复,无法满足唯一性的要求。sender的类型是object,表示触发该事件的object(对象)。在没有强制类型转换(如TEdit(sender), TButton(sender)...)之前具有object的所有属性。类型转换后,具有该类型的所有属性,如TEdit(sender).text
      

  4.   

    调用:
    1. 如果需要有返回值,可定义函数function aaaa(sender:object):string;
       调用时形如:aaaa(button1); aaaa(Edit1); ...
    2. 如果不需要返回值,可定义过程procedure aaaa(sender:object);更方便。
       在Button1的OnClick中选aaaa,在Edit1的OnClick中选aaaa,...
       当控件被点击,该过程自己知道sender是Button1, Edit1, ...