![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как через Form1.Components[i] получить размеры компонента [D7, WinXP]
FFFFFFQE © (2005-01-23 12:28:00)Как через Form1.Components[i] получить размеры компонента(Height,width)?
default (2005-01-23 15:16:00) [1]aus (23.01.05 15:11) [13]
я понимаю его мотивы, быть может возраст, боится что другую работу будет сложно найти если с этой уйдёт, поэтому такие "козни"
aus (2005-01-23 15:11:00) [2]другой программист уже пришел, aus зовут. Но не все так просто в этой жизни...
default (2005-01-23 15:03:00) [3]aus (23.01.05 14:55) [11]
а он не боится что придёт другой программист и скажет на эти 25 папок что крыше малость повёрнута у Вашего работника?
что ему сложностей малов в программировании он их ещё сам создаёт, это уже маниакальные наклонности какие-то
aus (2005-01-23 14:55:00) [4]Правда - это описанный мной факт. А то, что авторитет нужно зарабатывать другими способами, я согласен.
KilkennyCat (2005-01-23 14:39:00) [5]
> aus (23.01.05 14:29) [9]
это не правда. Ложная незаменимость необходима только в экстренных случаях, например, если шеф - сволочь и моральный урод вообще. В остальных случаях это просто испортит имидж. Если все делать по-человечески, и относится будут по-человечески... Зачем моему шефу искать другого человека, если он знает, что я работаю честно?
aus (2005-01-23 14:29:00) [6]Юрий Зотов © (23.01.05 14:14) [8]
Как говорит один наш программист (без малого пенсионер), все должно быть сложно, чтобы только ты мог разобраться и считался незаменимым человеком. Это на мой вопрос почему у него в рабочем каталоге есть папки с названиями "1".."25", в которых хранятся данные по месяцам, которых всего 12.
Конечно я это не всерьез, но это правда.
Юрий Зотов (2005-01-23 14:14:00) [7]> aus (23.01.05 14:09) [7]
Это понятно. Непонятно другое - зачем нужно усложнять простейшую задачку.
aus (2005-01-23 14:09:00) [8]он имел ввиду Controls[i], тогда рекурсия как раз поможет в приведенном Вами примере [3].
Юрий Зотов (2005-01-23 14:00:00) [9]> Pashkerton (23.01.05 13:53) [5]
При использовании цикла по Components делать рекурсию нет нужды. Если, конечно, компоненты не создаются динамически и при этом их Owner - не форма.
Pashkerton (2005-01-23 13:53:00) [10]Так сделай рекурсию
if Form1.Components[i].ComponentCount <> 0 then <recursive_function(Form1.Components[i])>
aus (2005-01-23 12:58:00) [11]Юрий Зотов © (23.01.05 12:48) [3]
Я подумал об этом, когда уже ответ ушел.
Юрий Зотов (2005-01-23 12:48:00) [12]> aus (23.01.05 12:40) [1]
Кладу на форму панель, на панель - кнопку. Пишу предложенный Вами цикл в методе формы - т.е. там, где обычно и пишут код.
Результат - кнопка найдена не будет.
Юрий Зотов (2005-01-23 12:44:00) [13]if Components[i] is TControl then
with TControl(Components[i]) do
begin
... // Здесь размеры уже доступны.
end;
aus (2005-01-23 12:40:00) [14]Правильнее будет не Components[i], а Controls[i].
В цикле перебирай контролы, как найдешь нужный - вот тебе и его размеры. Для того, чтобы убедиться, тот ли это контрол, проверяй его тип, ли имя, или Tag, как тебе удобнее.