![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как обращаться к элемантам формы с цикле [D6, Win2k]
ev © (2002-02-25 14:04:00)У меня есть labe1, label2.... label999
Как в цикле поменять Caption?
oomneeq (2002-02-25 21:34:00) [1]2ded_di
>((Self.Components[j] as TObject).Name
Это зря.
Вопервых - TComponent всегда is TObject
Во2х - У TObject нету Name
А по делу - перебор таки быстрее чем FindComponent ибо
FindComponent сам есть перебор.
Лучше много раз по разу, чем много раз по много раз.
Ilya (2002-02-25 21:12:00) [2]Вот две ветки по теме:
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1014466595&n=0
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1014385219&n=0
Anatoly Podgoretsky (2002-02-25 19:49:00) [3](FindComponent("Label57") as TLabel).Caption :="aaa";
I/O (2002-02-25 18:40:00) [4]Специально для этого есть св-во TAG
Действуй по принципу Натальи
Components[i].tag .........
Наталья (2002-02-25 16:17:00) [5]Можно и проще...мне так кажется
var i:integer;
begin
for i:=0 to ComponentCount-1 do
begin
if Components[i] is TLabel
then
if Tlabel(Components[i]).name="Label57"
then
Tlabel(Components[i]).caption:="aaa"
else
Tlabel(Components[i]).caption:="bbb"
end
end;
Еще можно использовать метод FindComponent
ev (2002-02-25 14:37:00) [6]2 vrRaven
все label надо разместить в IDE, а Caption менять после.
2 ded_di
спасибо, попробую. А попроще можно?
Если у меня есть 99 label"ов, а надо выполнить label57.Caption:="aaa"; то такой алгоритм не совсем подходит.
А можно-ли в IDE создать массив и TLavel?
ded_di (2002-02-25 14:17:00) [7]Попробуй что-то типа
j:=1;
while ((UpperCase((Self.Components[j] as TObject).Name))<>(UpperCase(Format("label%d",[j]))))and
(j<Self.ComponentCount) do inc(j);
if j<Self.ComponentCount then
(Self.Components[j] as TControl).caption:=.....
vrRaven (2002-02-25 14:16:00) [8]попробуй сделать массив компонентов
var a: array[1..99] of TLabel;
и в цикле обращайся к его ячейкам...
P.S. тока не забуть вызвать метод Create для каждой ячейки...