Форум: "Начинающим";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];
Внизперебор Label ов Найти похожие ветки
← →
dis12345 (2006-12-13 17:30) [0]подскажите пожалуйста как перебрать в цикле десяток однотипных элементов (например TLabel) И i -му присвоить соотв значение из массива, когда-то делал а сейчас никак не найду и не вспомню как
← →
Ega23 © (2006-12-13 17:34) [1]
With Form1 do
begin
for i:=0 to ComponentCount-1 do
if (Components[i] is TLabel) then
if TLabel(Components[i]).Name="MySuperLabel" then
TLabel(Components[i]).Caption := "lajksgjpsfhgodfngb";
end;
← →
Kostafey © (2006-12-13 17:37) [2]Может это поможет:
http://delphimaster.net/view/2-1165941009/
Нпример, LabelN перебирать по названию.
← →
dis12345 (2006-12-13 17:40) [3]спасибо Ega23 !!!!!!!!!! то что нужно !!!!!!!!!!
← →
MsGuns © (2006-12-14 01:08) [4]>dis12345 (13.12.06 17:40) [3]
>спасибо Ega23 !!!!!!!!!! то что нужно !!!!!!!!!!
Ega23 © подсказал идею, но сам данный им код концептуально неверен.
← →
novill © (2006-12-14 09:14) [5]> сам данный им код концептуально неверен.
Вот это припечатал! Может покажешь пример кончетуально верного кода?
← →
clickmaker © (2006-12-14 10:15) [6]ControlCount, Controls[] тут уместнее
← →
ЮЮ © (2006-12-14 10:25) [7]
> ControlCount, Controls[] тут уместнее
Зависит, где эти TLabel разбросаны. А если по разным панелям? Но будучи созданными в IDE, они точно все в TForm.Components
← →
Leonid Troyanovsky © (2006-12-14 17:36) [8]
> ЮЮ © (14.12.06 10:25) [7]
> Но будучи созданными в IDE, они точно все в TForm.Components
Будучи контролами они точно в Controls парента, независимо
от их Owner (т.е., и необязательно в IDE).
Сл-но, достаточно перебрать (рекурсивно), начав с формы.
Вырожденные же случаи, когда контрол создан, а парент
не назначен - вырождены.
--
Regards, LVT.
← →
MsGuns © (2006-12-14 22:09) [9]>novill © (14.12.06 09:14) [5]
>Вот это припечатал! Может покажешь пример кончетуально верного кода?
>With Form1 do
Первая и самая концептуальная - категорически не рекомендуется обращаться к внешним объектам по имени.
>if (Components[i] is TLabel) then
Корректнее так: if Components[i].ClassType=TLabel
В данном случае это не так существенно, но, принятая за методологию, такая "техника" может привести к трудноуловимым багам
> Про преимущество Controls перед Components при переборе визуальных контролов тут уже говорено
← →
Loginov Dmitry © (2006-12-14 23:43) [10]> Корректнее так: if Components[i].ClassType=TLabel
Чем же извените, это корректней?
> Сл-но, достаточно перебрать (рекурсивно), начав с формы.
Зачем ентот геморрой, когда проще использовать Components[] и ComponentCount?
← →
Anatoly Podgoretsky © (2006-12-14 23:44) [11]> Loginov Dmitry (14.12.2006 23:43:10) [10]
Ну и как это решает проблему? Если вообще решает.
← →
Loginov Dmitry © (2006-12-14 23:58) [12]А что, у кого-то где-то какая-то проблема?
← →
Anatoly Podgoretsky © (2006-12-15 00:00) [13]> Loginov Dmitry (14.12.2006 23:58:12) [12]
Похоже у тебя.
← →
Loginov Dmitry © (2006-12-15 00:09) [14]> Похоже у тебя.
Енто на что намекать изволите?
← →
Anatoly Podgoretsky © (2006-12-15 00:11) [15]> Loginov Dmitry (15.12.2006 0:09:14) [14]
А ты о чем спрашиваешь?
И действительно ли хочешь узнать?
← →
jack128 © (2006-12-15 00:17) [16]Loginov Dmitry © (14.12.06 23:43) [10]
Чем же извените, это корректней?
ничем. Вот если бы задача стояла найти всем компоннеты одного КЛАССА, то решение МсГанза - было бы правельным.
MsGuns © (14.12.06 22:09) [9]
Первая и самая концептуальная - категорически не рекомендуется обращаться к внешним объектам по имени.
А кто сказал, что код Еги23 выполняется в методе TForm1 ?
MsGuns © (14.12.06 22:09) [9]
> Про преимущество Controls перед Components при переборе визуальных контролов тут уже говорено
Всё зависит от деталей задачи..
← →
Юрий Зотов © (2006-12-15 00:31) [17]>>if (Components[i] is TLabel) then
> Корректнее так: if Components[i].ClassType=TLabel
Чи-го??? Чиго-чиго, извините?
type
TMyLabel = class(TLabel)
...
end;
А теперь что коректнее?
← →
MsGuns © (2006-12-15 09:18) [18]Возможно, я несколько неуклюже построил фразу, но имелось в виду то, что сразу "ухватил" jack128, а именно обращение к объекту именно как экземпляру класса, а не его наследников. У Пачеко есть куда лучше пример (там используются методы класса, перекрытые наследниками)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.043 c