Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
Вопрошающий   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.046 c
2-1191158146
alex_ant
2007-09-30 17:15
2007.10.21
Унифицированный способ сравнивать массивы?


9-1161516574
Fastics
2006-10-22 15:29
2007.10.21
Реализация физики и столкновений на ODE или Newton.


1-1186367927
balagur
2007-08-06 06:38
2007.10.21
#0 Запись переменной типа WideString в Image


4-1177071590
cvv
2007-04-20 16:19
2007.10.21
GetPrinter


2-1191224656
Lexx1
2007-10-01 11:44
2007.10.21
.ini не создается(





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