Войти

Показать полную графическую версию : Как присвоить одно значение сразу нескольким объектам?


LedWorm
08-02-2004, 19:44
Подскажите, как можно присвоить например 20и меткам свойству caption одно  и то же значение.
Писать

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

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

Megabyte
09-02-2004, 10:12
Вот пример:

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




© OSzone.net 2001-2012