在一个过程中参数是窗体对象,我要得到窗体对象中某个控件的一个属性返回值怎样得到
如:
Function GetBitMap(vfrm:TForm):TBitMap;
var BitMap:TBitmap;
begin
  BitMap := vfrm.Vcl.BitMap;end;
Vfrm是作为参数在传递

解决方案 »

  1.   

    Result := BitMap;
    或者直接 Result := vfrm.Vcl.BitMap;
      

  2.   

    楼是意思理解错误
    不知道是那个窗体,
    有可能是窗体一
    有可能是窗体二
    Function GetBitMap(vfrm:TForm):TBitMap; 
    var BitMap:TBitmap; 
    begin 
      BitMap := vfrm.Vcl.BitMap; end;调用时可能是GetBitMap(窗体一)
      

  3.   

    UP 意思是比如窗体一有一个控件,窗体二有一个控件,可能控件名一样,只是窗体不一样,
    而这个函数是将窗体名作为参数,来返回这个窗体上控件的属性值
    如果GetBitMap(窗体一)就返回窗体一的这个值
    Result := 窗体一.vcl.BitMap
    如果GetBitMap(窗体二)就返回窗体2的这个值
    Result := 窗体2.vcl.BitMap
    窗体3、4、5。。
    窗体是非固定的
    Function GetBitMap():TBitMap
      

  4.   

    他是想知道传进函数的vfrm所代表的窗体中的某个组件的属性。
    可以用vfrm.Components属性来获取它包含的某个组件,再获取这个组件的属性。
    或者用vfrm.FindComponent方法也可以。
      

  5.   

    if (vfrm is TForm1) then
      Result := (vfrm as TForm1).Vcl.BitMap
    else if (vfrm is TForm2) then
      Result := (vfrm as TForm2).Vcl.BitMap
    ...是这个意思吗?或者用5楼的方法,比我这个好。
    比如说,想得到Button1这个控件的Caption
    Result := (vfrm.FindComponent('Button1') as TButton).Caption;