![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Просмотреть все компоненты [D7, XP]
БезИмени © (2006-10-06 04:06:00)Нужно "пробежаться" по всем компонентам всех форм приложения, имеющие свойства Text или Caption и вывести результат в memo в виде
[TForm1]
button1.text = sampletext
button2.text = sampletext2
menu1.caption = captionfgff
[TForm2]
n1.caption = eeeeesdgbvsd
...
и так со всеми формами.
Anatoly Podgoretsky (2006-10-08 13:55:00) [1]Всех? И тех что не созданы, в том числе и динамически.
Components не подходит, тебе надо искать не компоненты, а контролы, а это Controls, но найдет только те, которые подключены, а те которые еще не найдет, но это опять тот же вопрос - Всех.
Вопрос в постановке Всех решения не имеет.
Loginov Dmitry (2006-10-08 13:50:00) [2]Германн © (08.10.06 1:59) [5]
У TComponent нет ни Text, ни Caption.
Зато поддерживается RTTI
Германн (2006-10-08 04:27:00) [3]
> SerJaNT © (08.10.06 03:31) [6]
>
> Но ведь работает :-)
>
Работает. Но зачем столько лишнего перебора?
Percent (2006-10-08 03:35:00) [4]SerJaNT © (08.10.06 03:31) [6]
Но ведь работает :-)
Про TPanel поговорим?
А про MyCaptionedComponent?
SerJaNT (2006-10-08 03:31:00) [5]Но ведь работает :-)
Германн (2006-10-08 01:59:00) [6]2 Loginov Dmitry © (06.10.06 07:56) [3]
2 SerJaNT © (08.10.06 01:50) [4]
См. [2]
У TComponent нет ни Text, ни Caption.
SerJaNT (2006-10-08 01:50:00) [7]Я делал вот так:
procedure TForm1.Button1Click(Sender: TObject);
var i,forms,cd:integer;
mt:string;
begin
for forms:=0 to screen.FormCount-1 do begin
form1.memo1.Lines.add('[T'+screen.Forms[forms].Name+']');
for i:=0 to screen.Forms[forms].componentcount-1 do begin
if screen.Forms[forms].components[i] is TMenuItem then begin
mt:=TMenuItem(screen.Forms[forms].FindComponent(screen.Forms[forms].components[i ].GetNamePath)).Caption;
form1.memo1.Lines.add(screen.Forms[forms].components[i].GetNamePath+'.caption='+mt);
end;
if screen.Forms[forms].components[i] is TEdit then begin
mt:=TEdit(screen.Forms[forms].FindComponent(screen.Forms[forms].components[i].Ge tNamePath)).text;
form1.memo1.Lines.add(screen.Forms[forms].components[i].GetNamePath+'.text='+mt);
end;
if screen.Forms[forms].components[i] is TToolButton then begin
mt:=TToolButton(screen.Forms[forms].FindComponent(screen.Forms[forms].components [i].GetNamePath)).Hint;
form1.memo1.Lines.add(screen.Forms[forms].components[i].GetNamePath+'.hint='+mt);
end;
if screen.Forms[forms].components[i] is TLabel then begin
mt:=TLabel(screen.Forms[forms].FindComponent(screen.Forms[forms].components[i].G etNamePath)).Caption;
form1.memo1.Lines.add(screen.Forms[forms].components[i].GetNamePath+'.caption='+mt);
end;
end;
form1.memo1.Lines.add('');
end;
end;
Loginov Dmitry (2006-10-06 07:56:00) [8]используй
- for ... to ... do
- Screen
- ComponentCount
- Components
- is , as
- ClassName
- TMemo
- RTTI
- Head
MBo (2006-10-06 07:55:00) [9]Controls[] используй
Ketmar (2006-10-06 05:05:00) [10]разрешаю.