Главная страница
    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.48 MB
Время: 0.043 c
2-1166116460
serko
2006-12-14 20:14
2006.12.31
В определенное время...


15-1165867798
Jus
2006-12-11 23:09
2006.12.31
WindowsXP авторизация


15-1165903029
ан
2006-12-12 08:57
2006.12.31
Умер Аугусто Пиночет...


4-1156236803
Mechanic
2006-08-22 12:53
2006.12.31
Как остановить получение событий колеса мыши?


2-1165839672
DDDDDD
2006-12-11 15:21
2006.12.31
TdxDBGrid - при входе в поле - не те данные





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский