Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Просмотреть все компоненты [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]

разрешаю.


Наверх

Титульная страница Поиск, карта сайта Написать письмо