#1 08.02.07 02:36
[Delphi] Имя компонента по переменной
Мне нужно чтоб имя компонента изменялось в цыкле по переменной. Чтоб можно было только добавить номер к переменной и выдать его как имя компонента. Писать к каждому компоненту код отдельно это слишком долго и утомительно.
Кто, знает помогите.
Исправлено Gizmo (08.02.07 03:00)
Offline
#3 08.02.07 13:12
Re: [Delphi] Имя компонента по переменной
Например имеем мы 6 батонов и хотим их все перебрать и заголовки им поменять
Сделать можно следующим образом:
Код::
procedure TForm1.Button1Click(Sender: TObject); var i,j:integer; begin for i:=0 to ComponentCount-1 do for j:=1 to 6 do if Components[i].Name='Button'+IntToStr(j) then (Components[i] as TButton).Caption:='ya'; end;
Коряво но это первое, что пришло на ум.
Offline
#5 09.02.07 00:16
Re: [Delphi] Имя компонента по переменной
Rastaman написал(а):
Код::
for i:=0 to ComponentCount-1 do for j:=1 to 6 do if Components[i].Name='Button'+IntToStr(j) then (Components[i] as TButton).Caption:='ya';Коряво но это первое, что пришло на ум.
либо юзаем метод TComponent'a
Код::
for i := 0 to 6 do
TButton(FindComponent('Button' + IntToStr(i))).Caption := 'good';+ проверка на nil если не уверен в наличии этих кнопок. сравнить скорость фрагментов сейчас нету времени, но думаю не сильно отличаются (за FindComponent скрывается тот же перебор что и у растамана).
F1 + FindComponent (TComponent)
Offline

