1.比如 我有几个字符串
str1:='111';
str2:='222';
str3:='333';
....
我现在有个comboBox1,想将str1~3都加到items里,combobox1.items.add(str1)这样子
可是我只想通过循环来实现
for i:=0 to *
comboBox1.items.add(str*)这样子,而且我的Str不能用字符串数组表示,不知道怎么写,感觉有点像findcomponent(**)这种样子的东西2.动态判断控件类型
比如有个strType='Tedit,TcomboBox,Tradio...'
我有N个控件 edit1,edit2,comboBox1...我想要的是: 先判断N个控件的每个控件的类型是否属于strType里的某一个,若是就取出它的值,要能过循环实现,而不是这样:
if edit1 is Teidt then str:=Tedit(edit1).text;
if edit1 is TcomboBox then ...
关键是怎么判断控件的类型(返回字符串的形式),比如我判断到是Tedit类型,就让strT:='Tedit'
那我怎么用strT来表示出 Tedit(edit1).text这种形式,总不能strT(edit1)这样肯定不行吧谢谢
str1:='111';
str2:='222';
str3:='333';
....
我现在有个comboBox1,想将str1~3都加到items里,combobox1.items.add(str1)这样子
可是我只想通过循环来实现
for i:=0 to *
comboBox1.items.add(str*)这样子,而且我的Str不能用字符串数组表示,不知道怎么写,感觉有点像findcomponent(**)这种样子的东西2.动态判断控件类型
比如有个strType='Tedit,TcomboBox,Tradio...'
我有N个控件 edit1,edit2,comboBox1...我想要的是: 先判断N个控件的每个控件的类型是否属于strType里的某一个,若是就取出它的值,要能过循环实现,而不是这样:
if edit1 is Teidt then str:=Tedit(edit1).text;
if edit1 is TcomboBox then ...
关键是怎么判断控件的类型(返回字符串的形式),比如我判断到是Tedit类型,就让strT:='Tedit'
那我怎么用strT来表示出 Tedit(edit1).text这种形式,总不能strT(edit1)这样肯定不行吧谢谢
解决方案 »
- fastreport 报表问题
- 报表问题(小的没分了,请不要见怪~!有分一定大大送上!)
- Image 的奇怪问题,求助
- 出题:给出一条合适且优化的 SQL 语句(100分)
- 我装完delphi7后,要求注册,不注册就跳出了,该怎么解决?
- 请各位高手都往这里看,快来看啊!!!!!!!!!!!!!!!!
- 关于.bmp图片的透明处理问题
- 如何制作动态菜单,提供源代码的有分
- 请如下“c”的代码转换成 delphi语言。谢谢了
- 所产生的意外情况为c00000fd,在地址7C821AOB(kernel32!GetTickCount)处
- 关于delphi 调用oracle存储过程返回数据集
- 编译时的一个错误,高手帮指点一下,谢.
var
i: Integer;
begin
for i := 0 to Form1.ComponentCount -1 do
begin
if Form1.Components[i] is TButton then //如果窗体上的控件是TButton 则显示标题,其他的类似你改一下
ShowMessage(TButton(Form1.Components[i]).Caption);
end;
end;
第二个问题可以用TCLass.ClassName获取类名称的字符串形式,入TButton.ClassName是'TButton'
我考虑你的想法不可能实现,因为:要引用一个字符串,必须知道它的地址,也就是需要引用字符串变量的名称,字符串变量随即分配在存储空间中,没有办法统一找到它们的地址。
你使用TStringList不行吗?
第2个问题:
TObject.ClassName()返回的就是字符串类名称。
第二個就是CLASSNAME
var
str1, str2, str3: string;procedure SetStrs;
var
i: Integer;
p: PString;
begin
p := @str1;
for i := 1 to 3 do
begin
p^ := 'test string '+inttostr(i);
p := pointer(integer(p) + 4);
end;
end;
原来1问这么麻烦.ClassName 可以从对象-->字符串类名那反过来呢? 从字符串-->TClass?比如 :str:='TButton'然后: (Form1.Components[i] As TButton).Caption...
~~~~~~~~~这个想用str代替,要怎么做?谢谢