Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.49 MB
Время: 0.044 c
4-1155909771
Alex81
2006-08-18 18:02
2006.12.31
По процессу определить путь к файлу


15-1165911636
zdm
2006-12-12 11:20
2006.12.31
Одна голова хорошо, а две лучше???


15-1165550465
Slider007
2006-12-08 07:01
2006.12.31
С днем рождения ! 8 декабря


15-1165559328
Slider007
2006-12-08 09:28
2006.12.31
Не связанные друг с другом 2 вопроса ;) (видео, клиент форума)


11-1143099799
LAutour
2006-03-23 10:43
2006.12.31
Вопрос по синхронизации прокрутки двух KolListBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский