CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

如何得到一个一个控件(如:BUTTON,LABLEL等)的《所有属性》和所有属性的全部可能取值?多谢!!!!

楼主banana12345(华北电力大学)2003-05-01 14:29:58 在 Delphi / VCL组件开发及应用 提问

如何得到一个一个控件(如:BUTTON,LABLEL等)的《所有属性》和所有属性的全部可能取值?多谢!!!! 问题点数:100、回复次数:25Top

1 楼banana12345(华北电力大学)回复于 2003-05-01 14:41:37 得分 0

求求大家了!!!  
  求求大家了!!!!!!  
  求求大家了!!!!!!!!  
  Top

2 楼banana12345(华北电力大学)回复于 2003-05-01 15:11:05 得分 0

求求大家了!!!  
  求求大家了!!!!!!  
  求求大家了!!!!!!!!Top

3 楼zouliyuan(3000万悬赏你的想法)回复于 2003-05-01 15:17:30 得分 2

DELPHI的帮助F1帮助主题输入要找的控件名Top

4 楼banana12345(华北电力大学)回复于 2003-05-01 15:31:24 得分 0

求求大家了!!!  
  求求大家了!!!!!!  
  求求大家了!!!!!!!!  
  Top

5 楼xiaobudian125(Amamn)回复于 2003-05-01 16:22:13 得分 2

利用delphi的helpTop

6 楼tw_cshn(一无所有)回复于 2003-05-01 16:29:42 得分 6

这样  
      for   I:=0   to   componentcount-1   do  
              if   components[I]   is   TButton   then  
                    TButton(components[I]).enabled:=true;  
              if   components[I]   is   TLABLEL   then  
                    TLABLEL(components[I]).enabled:=true;  
  如此而已Top

7 楼banana12345(华北电力大学)回复于 2003-05-01 17:09:00 得分 0

我需要的是用程序读出   一个一个控件(如:BUTTON,LABLEL等)的《所有属性》和所有属性的全部可能取值?  
  Top

8 楼banana12345(华北电力大学)回复于 2003-05-01 19:02:31 得分 0

gzTop

9 楼kataboy(老公)回复于 2003-05-01 19:04:45 得分 6

支持支持支持支持支持支持支持支持支持支持支持支持█████████支持支持  
  支持支持支持支持支持支持支持支持支持███████████████支持支持  
  支持支持支持支持支持支持支持无██████████████████支持支持  
  支持支持支持支持支持支████████████████支持支持支持支持支持  
  支持支持支持支持███████无███支持█████持支持支持支持支持支持  
  支持无████████████支持支持支持████支持支持支持支持支持支持  
  无██████████████支持支持支持████支持支持支持支持支持支持  
  无████████████支持支持支持无███████████支持支持支持  
  无████████████支持支持支持██████████████支持支持  
  支持██████████支持支持无██████支支持███████支持支持  
  支持支持支持支持████支持支持无████支支持支持持█████支支持支持  
  支持支持支持支持████支持支持████支持██支持无█████支持支持无  
  支持支持支持支持████支持支持████支持████无█████支持支持无  
  支持支持支持支持████支持支持████支持████无█████支持支持无  
  支持支持支持支持████支持支持████支持███支持█████支持支持无  
  支持支持支持支持████支持支持████支持███支持█████支持支持无  
  支持支持支持支持████支持支持████无████支持█████支持支持无  
  支持支持支持支持████支持支持████无████支持█████支持支持无  
  支持支持支持支持████支持支持████无████支持█████支持支持无  
  支持支持支持支持████支持支持████无████支持█████支持支持无  
  支持支持支持支持████支持支持███支持████支持█████支持支持无  
  支持██支持无█████支持支持███支持███支持无█████支持支持无  
  支持██████████支持支持无██支持██支持支持█████支持支持无  
  支持无█████████支持支持支持支持███支持支持无████支持支持无  
  支持支持无███████支持支持支持支持███无████支持支持支持支持无  
  支持支持支持██████支持支持支持无████支持█████支持支持支持无  
  支持支持支持支持无███支持支持支持█████支持无███████支持支持  
  支持支持支持支持支持支持支持支持██████支持支持无██████支持支持  
  支持支持支持支持支持支持支持无██████支持支持支持███████支持无  
  支持支持支持支持支持支持支持█████支持支持支持支持无██████支持无  
  支持支持支持支持支持支持无█████支持支持支持支持支持无████支持支持  
  支持支持支持支持支持支持███支持支持支持支持支持支持支持无███Top

10 楼zleeway(杂草)回复于 2003-05-01 19:17:11 得分 2

你在写什么程序啊?怎么会有这么怪的需求.Top

11 楼banana12345(华北电力大学)回复于 2003-05-01 19:22:11 得分 0

to   kataboy(小浩子)    
  谢谢  
  我在设计一个在运行期可以调整得应用  
  Top

12 楼mikehs(hu)回复于 2003-05-01 20:04:39 得分 2

typeinfoTop

13 楼banana12345(华北电力大学)回复于 2003-05-01 20:26:16 得分 0

upTop

14 楼banana12345(华北电力大学)回复于 2003-05-01 20:32:52 得分 0

upTop

15 楼INeedCa(缺钙)回复于 2003-05-01 20:49:16 得分 54

procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      Pclass   :PTypeInfo;  
      PClasstd   :PTypeData;  
   
      ppi   :PPropInfo;  
   
      i,   j:Integer;  
      ptd   :PTypeData;  
   
      RowIndex   :Integer;  
   
      tmpProps   :PPropList;  
      tmpCount   :Integer;  
   
      tmpValue   :Variant;  
      FnPropCount   :Integer;  
          FPProps     :PPropList;         //当前编辑的属性列表  
   
      FControl   :TObject;  
  begin  
      FControl   :=   xx;  
   
              PClass   :=   PTypeInfo(FControl.ClassInfo);  
              //得到控件信息  
              if   PClass^.Kind   =   tkClass   then   begin     //如果是类  
                  PClasstd   :=   GetTypeData(PClass);             //得到TypeData  
   
   
                  FnPropCount   :=   PClasstd^.PropCount;  
                  if   FnPropCount   >   0   then   begin  
                      GetMem(FPProps,   sizeof(   PPropInfo)   *   FnPropCount);     //分配内存  
   
                      GetPropInfos(PClass,   FPProps);       //得到所有的属性  
                  end;  
              end;  
              //得到第一个控件的所有属性,并放入到FPProps中  
   
   
              for   i   :=   0   to   FnPropCount   -   1   do  
              begin  
                  pPi   :=   FpProps[i];  
   
                  if   Assigned(Ppi)   then   begin  
                      if   {inStringArray(ifo_gPropClasses,   ppi.PropType^.Name)  
                          or   inStringArray(ifo_gProps,   ppi.Name)}   True   then  
                      begin  
                          Self.Memo1.Lines.Add(ppi.Name   +   '   -   '   +   ppi.PropType^.Name   +   '   -   '   +   ppi.Name);  
                          case   ppi.PropType^.Kind   of  
                              tkLString:begin  
                                  tmpValue   :=   GetStrProp(FControl,   ppi.Name);  
                                  Self.Memo1.Lines.Add('     '   +   tmpValue);  
                              end;  
                              tkInteger:begin  
                                  tmpValue   :=   GetOrdProp(FControl,   ppi.Name);  
                                  Self.Memo1.Lines.Add('     '   +   IntToStr(tmpValue));  
   
                              end;  
                              tkClass:begin  
                                  if   ppi.PropType^.Name   =   TFont.ClassName   then   begin  
                                      Self.Memo1.Lines.Add('     '   +   '(TFont)');  
                                  end;  
                              end;  
                              tkEnumeration:begin  
                              end;  
                          end;  
   
                          end;  
                      end;  
                  end;  
   
   
  //         Self.PropGridSelectCell(nil,   FForm.sgrdEdit.Col,  
  //                 FForm.sgrdEdit.Row,   tmpbool);  
  end;  
  Top

16 楼banana12345(华北电力大学)回复于 2003-05-01 21:14:39 得分 0

upTop

17 楼banana12345(华北电力大学)回复于 2003-05-01 21:16:00 得分 0

upTop

18 楼larruping(久有凌云志)回复于 2003-05-01 21:21:11 得分 2

markTop

19 楼banana12345(华北电力大学)回复于 2003-05-02 09:15:08 得分 0

UPTop

20 楼vuen(阿土)回复于 2003-05-02 10:41:22 得分 2

不懂,关注Top

21 楼banana12345(华北电力大学)回复于 2003-05-02 11:06:38 得分 0

UPTop

22 楼winsock2000(风筝)回复于 2003-05-02 13:16:04 得分 20

转自大富翁的!  
  unit   Unit1;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Classes,   Graphics,   Controls,   Forms,   Dialogs,  
      Grids,   StdCtrls,typinfo;  
   
  type  
      TForm1   =   class(TForm)  
          Button1:   TButton;  
          insp:   TStringGrid;  
          event:   TStringGrid;  
          procedure   Button1Click(Sender:   TObject);  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      Form1:   TForm1;  
   
  implementation  
   
  {$R   *.DFM}  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var   count,j,k,i   :   integer;  
          proplist:   PPropList;//  
          Propinfo   :   PPropinfo;  
  begin  
      Count   :=   GetTypeData(Sender.ClassInfo)^.PropCount;  
      if   Count   >   0   then  
      begin  
          //   得到属性数  
          GetMem(PropList,   Count   *   SizeOf(PPropList));  
          try  
              //   得到属性  
              GetPropInfos(Sender.ClassInfo,   PropList);  
              insp.RowCount:=count;  
              event.RowCount:=count;  
              j:=0;  
              K:=0;  
              for   I   :=   0   to   Count   -   1   do  
              begin  
                  PropInfo   :=   PropList^[I];  
   
                  case   PropInfo.PropType^.kind   of  
                  tkInteger,  
                  tkEnumeration   :  
                      insp.cells[1,j]:=   inttostr(getordProp(Sender,PropInfo));  
                  tkString,  
                  tkLString,  
                  tkWString   :  
                      insp.cells[1,j]:=   getstrProp(Sender,PropInfo);  
                  tkFloat   :  
                      insp.cells[1,j]:=FloattoStr(GetFloatProp(Sender,PropInfo));  
                  tkMethod   :  
                      event.cells[1,k]:='Event';  
                  else  
                      insp.cells[1,i]:='TYPE'+inttostr(ord(PropInfo.PropType^.kind));  
                  end;  
                    if   PropInfo.PropType^.kind=tkMethod   then  
                  begin  
                      event.cells[0,k]:=PropInfo.Name;  
                      k:=k+1  
                  end      
                  else  
                  begin  
                      insp.cells[0,j]:=PropInfo.Name;  
                      j:=j+1;  
                  end;  
              end;  
              insp.RowCount:=j;  
              event.RowCount:=k;  
          finally  
              FreeMem(PropList,   Count   *   SizeOf(PPropList));  
          end;  
      end;  
  end;  
  Top

23 楼banana12345(华北电力大学)回复于 2003-05-02 19:03:55 得分 0

TO   INeedCa(缺钙)    
  您的程序仅仅遍历了所有的属性,并没有给出这些属性的所有的取值,如:windowstate的值可能是:wsNormal,wsMaximized,wsMinimizedTop

24 楼banana12345(华北电力大学)回复于 2003-05-02 19:18:29 得分 0

up  
  Top

相关问题

  • DropDownList控件取值问题
  • 日期控件取值问题?
  • 控件取值问题,很急!!
  • 关于DropDownList控件的取值问题
  • 用户控件取值问题
  • 控件循环赋值或取值
  • 关于DataList控件的取值~~~~
  • 同名控件 取值问题。。。
  • 模板列中控件取值问题
  • 请教从html控件中取值!急!

关键词

  • 属性
  • 控件
  • 支持支持
  • insp
  • propinfo
  • lablel
  • 支
  • 支持
  • proplist
  • 所有属性

得分解答快速导航

  • 帖主:banana12345
  • zouliyuan
  • xiaobudian125
  • tw_cshn
  • kataboy
  • zleeway
  • mikehs
  • INeedCa
  • larruping
  • vuen
  • winsock2000

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo