Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.21;
Скачать: CL | DM;

Вниз

Насколько важно именовать...   Найти похожие ветки 

 
Вопрошающий   (2007-08-04 18:50) [0]

...динамически создаваемые в цикле компоненты при условии, что их имя знать совсем не обязательно? Какие могут быть подводные камни?

Чтобы было понятнее о чем речь, приведу пример:


for I := 0 to 10 do
begin
 Button := TButton.Create(Form1);
 Button.Parent := Form1;
 Button.Name <- нужно или нет?


Спасибо.


 
Dib@zol ©   (2007-08-04 18:54) [1]

Ну если ты к ним обращаться через HWND будешь - то захрен не надо. А если нет - то А КАК ЖЕ? (с)


 
Вопрошающий   (2007-08-04 18:56) [2]

Причем тут HWND? Обращаться я к ним буду так же, через цикл.


 
Dib@zol ©   (2007-08-04 18:58) [3]

Как это?? EnumChildWindows чтоли?


 
Вопрошающий   (2007-08-04 19:01) [4]

Да хоть через Form.Components, какая разница.


 
JanMihail ©   (2007-08-04 19:02) [5]

Если ты к ним собираешься обращаться делай динамический массив из TButton и потом в цикле создавай. Но массив сделай переменной глобальной, иначе если после цикла заканчивается процедура, то к компонентам массива ты уже не сможешь обратиться.


 
Dib@zol ©   (2007-08-04 19:04) [6]

Тогда просто "для порядку" задай имена от балды ("krevedko#"+intToStr(i)), раз всё равно не нужны.
(с) А то вдруг что?
Наверняка могут возникнуть проблемы с удалением.» Юрий Зотов:» В данном коде - не могут.


 
Вопрошающий   (2007-08-04 19:06) [7]

2 JanMihail

Все гораздо проще, это случай аналогичный отношению TTabSheet к TPageControl (не знаю, как это грамотно сформулировать), т.е. проблем с обращением как бы нет.


 
Вопрошающий   (2007-08-04 19:08) [8]


> Тогда просто "для порядку" задай имена от балды ("krevedko#"+intToStr(i)),
>  раз всё равно не нужны. (с) А то вдруг что? Наверняка могут
> возникнуть проблемы с удалением.

Именно потому, что могут возникнуть проблемы с одинаковыми именами (точнее, именно потому, что они возникли, были решены, но все-таки) и был задан этот вопрос. Если отсутствие имени у компонента позволяет решать эту проблему без последствий, то зачем мучаться с именованием?


 
Dib@zol ©   (2007-08-04 19:11) [9]

> Если отсутствие имени у компонента позволяет решать эту
> проблему

Наверняка это как-то скажется при обработке некоторых сообщений. Но как - хз. Никогда так не делал...» Юрий Зотов:» Не скажется.


 
trubin ©   (2007-08-04 19:11) [10]


> Да хоть через Form.Components, какая разница.


А как ты узнаешь какая кнопка нажата?


 
Anatoly Podgoretsky ©   (2007-08-04 19:15) [11]

> Вопрошающий  (04.08.2007 19:08:08)  [8]

Так зачем же спрашиваешь?


 
Вопрошающий   (2007-08-04 19:17) [12]


> А как ты узнаешь какая кнопка нажата?

Не нужно привязываться к кнопкам, я показал пример создания в цикле. Более правдоподобно в [7]

Просто скажу, что убрав имена у компонентов, я не испытал физического дискомфорта (все по-прежнему работает), остался духовный, который я означил фразой "Какие могут быть подводные камни?"» Юрий Зотов:» Никаких камней не будет. Если имена не используются, то они и не нужны. Вообще, имена компонентов по большому счету нужны лишь для IDE - по ним она именует поля формы и секции DFM.


 
Вопрошающий   (2007-08-04 19:19) [13]


> Так зачем же спрашиваешь?

Узнать про последствия.


 
Dib@zol ©   (2007-08-04 19:19) [14]

> могут возникнуть проблемы с одинаковыми именами

Каким образом???» Юрий Зотов:» Очень простым - владелец не может содержать двух компонентов с одинаковыми именами, вылетит ошибка.


 
Anatoly Podgoretsky ©   (2007-08-04 19:20) [15]

Когда узнаешь, то доложи.


 
Вопрошающий   (2007-08-04 19:21) [16]


> Каким образом???

Попробуй назвать две кнопки одинаковыми именами. А теперь попробуй сделать тоже самое динамически.


 
Dib@zol ©   (2007-08-04 19:23) [17]

> [16] Вопрошающий   (04.08.07 19:21)

Каким образом получается так, что ты называешь кнопки одинаковыми именами???????????


 
Вопрошающий   (2007-08-04 19:25) [18]


> Каким образом получается так, что ты называешь кнопки одинаковыми
> именами???????????

Ничего удивительного, когда приложение чуть-чуть сложнее формы с двумя кнопками бывает сложно отследить правильность и дееспособность присвоения уникальных имен. Если их присваивать вовсе не нужно, жить становится гораздо веселее.» Юрий Зотов:» Имена присваивать можно, не совершенно не обязательно.


 
Dib@zol ©   (2007-08-04 19:31) [19]

> Ничего удивительного, когда приложение чуть-чуть сложнее
> формы с двумя кнопками бывает сложно отследить правильность
> и дееспособность присвоения уникальных имен. Если их присваивать
> вовсе не нужно, жить становится гораздо веселее.

ЕПТ!!! ОМФГ!!!!! ЕСЛИ ТЫ ДИНАМИЧЕСКИ СОЗДАЁШЬ ИМЕНА ТО ВЫБИРАЙ ТАКИЕ ЧТОБ ОНИ НЕ БЫЛИ ПОХОЖИ!!! ГЕНЕРИРУЙ ИХ ИЗ СТА СЛУЧАЙНЫХ СИМЫОЛОВ И ИНДЕКС В КОНЦЕ ДОБАВЛЯЙ!!!!!!!!!!

> бывает сложно отследить правильность и дееспособность присвоения
> уникальных имен

Просто слов нет...» Юрий Зотов:» У меня тоже.


 
Вопрошающий   (2007-08-04 19:34) [20]

2 Dib@zol

Прочитай еще раз.

> Если их присваивать вовсе не нужно, жить становится гораздо
> веселее.


И, пожалуйста, избавь эту ветку от своего присутствия.


 
Zagaevskiy ©   (2007-08-04 19:39) [21]


> И, пожалуйста, избавь эту ветку от своего присутствия.

Ого! Это жостко!


 
Dib@zol ©   (2007-08-04 19:41) [22]

Блн. Погорячился я...


 
JanMihail ©   (2007-08-04 19:48) [23]

Да че он мозг парит. Массив из 10 элементов и никаких имен


 
Dib@zol ©   (2007-08-04 19:52) [24]

> [20] Вопрошающий   (04.08.07 19:34)

Существует нехилая вероятность того что такая "прога" будет оставлять баальшие утечки в памяти. => Именуй.» Юрий Зотов:» Нет такой вероятности.


 
Вопрошающий   (2007-08-04 20:04) [25]

Таки хотелось бы прочесть обоснованное мнение. Жаль, что Анатолий самоустранился (или я по-прежнему не способен понимать тайный смысл его слов).


 
Zagaevskiy ©   (2007-08-04 20:10) [26]


> JanMihail ©   (04.08.07 19:48) [23]
> Да че он мозг парит. Массив из 10 элементов и никаких имен

лучше 500 веббраузеров:))


 
trubin ©   (2007-08-04 20:33) [27]


> Таки хотелось бы прочесть обоснованное мнение.


ИМХО.
Если ты нигде в приложении не используешь имена, так и ни к чему они... .


 
Zagaevskiy ©   (2007-08-04 20:38) [28]


> Существует нехилая вероятность того что такая "прога" будет
> оставлять баальшие утечки в памяти

Обоснуй пжалста


 
trubin ©   (2007-08-04 20:40) [29]


> Обоснуй пжалста


присоединяюсь...



Страницы: 1 вся ветка

Текущий архив: 2007.10.21;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.019 c
15-1190121793
dimonf
2007-09-18 17:23
2007.10.21
Нужен программист Delphi + MSSQL (Москва)


11-1173903627
VVU
2007-03-14 23:20
2007.10.21
Прямоугольник текста в StrigGrid


1-1186147631
Apachi
2007-08-03 17:27
2007.10.21
Как при создании своего компонента переопределить событие


2-1190535758
Jimmy
2007-09-23 12:22
2007.10.21
Сохранение в emf


15-1190570557
vladislav_osn
2007-09-23 22:02
2007.10.21
SimpleXML.pas