有人说用subclass可以,但delphi上的帮助太少, 找不到相应的信息,各位大侠帮帮忙!先谢过!

解决方案 »

  1.   

    判断控件类型:
    举个例子说,你在一个FORM上放了二个CHECKBOX控件,一个EDIT控件。
    每个FORM都有一个COMPONENTCOUNT属性,它代表FORM上的控件数目,在我所举的这个例子里,
    假设你在一个FORM上放了二个CHECKBOX控件,一个EDIT控件,所以现在FORM上有三个控件,
    COMPONENTCOUNT的值为3。
    每个FORM又都有一个COMPONENTS属性,它代表FORM上的控件。
    请看下面的一段代码:
    for icount:=0 to form1.ComponentCount-1 do
    begin
    if form1.Components[icount] is tcheckbox then
    tcheckbox(form1.Components[icount]).checked:=true;
    end;
    这段代码的意思是循环扫描FORM上的控件,本例中你在一个
    FORM上放了二个CHECKBOX控件,一个EDIT控件,所以COMPONENTS[0],
    COMPONENTS[1],COMPONENTS[2]分别代表这三个控件。但到底是COMPONENTS[0]是
    CHECKBOX呢还是COMPONENTS[1]是CHECKBOX呢,我们不得而知,所以我们用
    if form1.Components[icount] is tcheckbox then来判断。
    这段代码的意思是如果“COMPONENTS[ICOUNT]是CHECKBOX的话,那么”,下面再用
    tcheckbox(form1.Components[icount]).checked:=true;把每个CHECKBOX的CHECKED属性
    设置为TRUE。
      

  2.   

    FindControl(hwnd)
    showmessage((FindControl(Button1.Handle) as TButton).Caption);
      

  3.   

    cg1120(代码最优化-§新年祝福你,好运伴着你§) :你好,由于这些控件集成成一个activeform中,编成ocx, 我引用他人的ocx, 刚才用你这种办法,componentcount为零!