Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Как присвоить одно значение сразу нескольким объектам? (http://forum.oszone.net/showthread.php?t=30000)

LedWorm 08-02-2004 19:44 206663

Подскажите, как можно присвоить например 20и меткам свойству caption одно  и то же значение.
Писать

Label1.Caption := 'asda';  
Label2.Caption := 'asda';
...
LabelN.Caption := 'asda';

Как то нехочется, как это можно сделать покрасивее ?

Megabyte 09-02-2004 10:12 206664

Вот пример:
Код:


Var
 *i, k: integer;
 *S: String;
Begin
 *For k:=0 to Application.ComponentCount-1 do
 * begin
 * * S:=Application.Components[k].ClassName;
 * * If Copy(S, Length(S)-3, 4)='Form' then
 * * * For I:=0 to Application.Components[k].ComponentCount-1 do
 * * * * *If (Application.Components[k].Components[i].ClassName='TLabel') * or
 * * * * * * (Application.Components[k].Components[i].ClassName='TButton') then
 * * * * * begin
 * * * * * * If Application.Components[k].Components[i].ClassName='TLabel' then
 * * * * * * * If (Application.Components[k].Components[i] as TLabel).Name='Label'+IntToStr(i)
 * * * * * * * * *(Application.Components[k].Components[i] as TLabel).Caption:='Метка '+IntToStr(i);
 * * * * * * If Application.Components[k].Components[i].ClassName='TButton' then
 * * * * * * * If (Application.Components[k].Components[i] as TButton).Name='Button'+IntToStr(i)
 * * * * * * * * *(Application.Components[k].Components[i] as TButton).Caption:='Кнопка '+IntToStr(i);
 * * * * * end;
 * * * *end;
 * *end;
End;


2003slon 10-02-2004 18:03 206665

Проще в цикле воспользользоваться функцией FindComponent(...). В качестве параметра - вроде бы имя компонента (не помню). В Help'e есть подробный пример


Время: 18:39.

Время: 18:39.
© OSzone.net 2001-