
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.218] |
![]() |
|
Страницы: (245) « Первая ... 216 217 [218] 219 220 ... 244 245 ( Перейти к последнему сообщению ) |
Сообщ.
#3256
,
|
|
|
Цитата --Ins-- @ А зачем вообще себя утруждать их поиском? Меня лично напрягает, когда две разные строчки кода выглядят на превый взгляд одинаково Воспринимай это как дополнительную информацию. Когда ее нет, хуже, приходится туда сюда лазить уточнять что тут конкретно за тип и как с ним работать. Добавлено Ну это просто как бы тебе объяснить, кто к какому стилю привык. Ну привык человек так писать, ну и чего? Плохого в этом что то есть? )) |
Сообщ.
#3257
,
|
|
|
Там нету неявного преобразования. bsSingle - это перечислимый тип, он уже представляет собой нужное значение типа TFormBorderStyle. TFormBorderStyle(X) нужно для получения энама из целого числа. К примеру, если мы заполняем комбобокс подряд значениями TFormBorderStyle, то в обработчике клика можно будет написать ![]() ![]() procedure TForm1.ComboBox1Change(Sender: TObject); begin if ComboBox1.ItemIndex >= 0 then BorderStyle := TFormBorderStyle(ComboBox1.ItemIndex); end; как и писал Николай Зверев. Цитата http://forum.sources.ru/index.php?showtopi...dpost&p=3394782 Все такие умные :-) это что-то :-) Слово "ирония" им видимо незнакомо... Ну и наверное ВСЕ по паре миллионов собственных строк кода написали :-) А я лично - "выглядеть дураком" - не стесняюсь... Да и английского - не знаю. Конечно.... Подкину ещё один "повод для битья". Вот - http://18delphi.blogspot.ru/2013/07/blog-post_3683.html За такой спагетти-код с дефайнами те кто его будут модифицировать, будут потом больно бить ногами. Полиморфизм для чего придумали? А названия переменных и методов - ахтунг полный. Добавлено Цитата --Ins-- @ Кстати, у Александра Алексеева аргумент "мол почему Free используют вместо Destroy если это тоже излишне" - нифига не аргумент, на Free как раз таки есть веские причины - исключения в конструкторе. В этом случае если написать Destroy - получим еще одно исключение, но уже в дестркуторе, которое перекроет исходное. А поскольку в 90% случаев Free вызывается именно из деструкторов, вес аргумента очевиден. У FreeAndNil такого аргумента все же нет +100500 Цитата Wound @ Воспринимай это как дополнительную информацию. Когда ее нет, хуже, приходится туда сюда лазить уточнять что тут конкретно за тип и как с ним работать. Ну для этого не помешало бы указывать тип префиксом (не помню, возможно ли такое в дельфях), но не делать тайпкаст. А то масло масляное выходит ![]() Добавлено Цитата Wound @ Ну привык человек так писать, ну и чего? Плохого в этом что то есть? )) Плохого ничего, если он не навязывае, что так писать "правильнее". |
Сообщ.
#3258
,
|
|
|
http://alexanderbondar.blogspot.com/2013/1...497921092599688
Ну это же просто клиника какая-то! ![]() Таким людям нужно просто запрещать что-либо преподавать. Их место на минимальной пенсии в разбитой халупе в зажопье ![]() |
Сообщ.
#3259
,
|
|
|
Цитата [S]mike @ http://alexanderbondar.blogspot.com/2013/1...497921092599688 Ну это же просто клиника какая-то! ![]() Таким людям нужно просто запрещать что-либо преподавать. Их место на минимальной пенсии в разбитой халупе в зажопье ![]() А ты думаешь есть кому их заменить? |
Сообщ.
#3260
,
|
|
|
Цитата D_KEY @ А ты думаешь есть кому их заменить? Смайк возьмешся? ![]() кстати, Смайк, озвуч правильній ответ на Вопрос, мне правда интересно знать, т.к. похожая ситуация и в шарпе может встретится и в яве, чем плохо более подробное написание конструкций, кроме того что больше писанины и код загромождается ![]() Цитата , почему Self.BorderStyle := TFormBorderStyle(bsSingle); "более правильно", чем Self.BorderStyle := bsSingle; ? |
Сообщ.
#3261
,
|
|
|
Besha, я уже отвечал. Для наглядности и гарантии использования правильного энамы нужно использовать префикс типа. То есть TFormBorderStyle.bsSingle. Говорят, что в последних версиях Дельфи это уже работает.
Добавлено Цитата D_KEY @ А ты думаешь есть кому их заменить? И бог с ними. Сейчас есть Coursera, Khan Academy, iTunes University. Качественных, интересных и надежных средств онлайн обучения - предостаточно. Кто захочет - выучится. Зачем выслушивать произносимые с умным видом бредни старых маразматиков, лекции для мертвых языков? |
Сообщ.
#3262
,
|
|
|
Цитата [S]mike @ Сейчас есть Coursera, Khan Academy, iTunes University. Но есть один момент (ц) - там все на иврите ![]() |
Сообщ.
#3263
,
|
|
|
Цитата Коцмас @ Цитата [S]mike @ Сейчас есть Coursera, Khan Academy, iTunes University. Но есть один момент (ц) - там все на иврите ![]() Извините, батенька, прогер без знания суахили, хотя бы беглого технического, обречен ![]() |
Сообщ.
#3264
,
|
|
|
Цитата Gonarh @ Извините, батенька, прогер без знания суахили, хотя бы беглого технического, обречен Да вон на делфях пишут без англ. и норм, если надо вон гугл переводчиком перевел как перевелось и делов. |
Сообщ.
#3265
,
|
|
|
Цитата [S]mike @ Для наглядности и гарантии использования правильного энамы нужно использовать префикс типа. Смайк, а для наглядности использования правильного класса в Java нужно писать его полное имя или можно сделать import? ![]() Добавлено Насчет FreeAndNil - я не то, чтобы противник его использования как такового, скорее просто против рекомендаций использовать его бездумно и повсеместно. Из-за того, что у него есть особенность, о которой большинство, кто начнет следовать этому совету - не знает (та самая, из-за которой правильнее было бы назвать его NilAndFree). Будет потом неприятный сюрприз, т.к. реальный эффект от вызова FreeAndNil у тех кто об этой особенности не знает будет отличаться от ожидаемого. А у просто Free никаких подводных камней нет, так что его использовать можно рекомендовать повсеместно без каких-либо оговорок |
Сообщ.
#3266
,
|
|
|
Цитата Wound @ Да вон на делфях пишут без англ. и норм, если надо вон гугл переводчиком перевел как перевелось и делов. +100500 Есть куча книг и материалов на русском, бери и читай. Зачем тратить время на изучения того, за что не платят деньги? Обычно прихвастнуть знанием английского любят те, кто и делфи то не осилили выучить. |
Сообщ.
#3267
,
|
|
|
Цитата --Ins-- @ та самая, из-за которой правильнее было бы назвать его NilAndFree. Будет потом неприятный сюрприз, т.к. реальный эффект от вызова FreeAndNil у тех кто об этой особенности не знает будет отличаться от ожидаемого. А у просто Free никаких подводных камней нет, так что его использовать можно рекомендовать повсеместно без каких-либо оговорок Можно для тех, кто не в теме? |
Сообщ.
#3268
,
|
|
|
Цитата D_KEY @ Можно для тех, кто не в теме? У них вроде там сначало ссылка на объект обнуляется, а потом вызывается Free, что влечет вызовы деструкторов базовых классов, и из за чего можно нарваться на то, что объект нулевой, а с ним пытаются что то сделать. Могу ошибаться. |
Сообщ.
#3269
,
|
|
|
Цитата D_KEY @ Можно для тех, кто не в теме? FreeAndNil - это не метод, это процедура (в терминах паскаля) с var параметром - объектной ссылкой. Так вот, она сначала обнуляет ссылку, а потом вызывает Free для объекта. ![]() ![]() procedure FreeAndNil(var Obj); var Temp: TObject; begin Temp := TObject(Obj); Pointer(Obj) := nil; Temp.Free; end; Теперь если представить, что в момент вызова Free происходит обращение к объектной ссылке - будет исключение. Представить такую ситуацию хоть и довольно тяжело, но она в принципе возможна, например в конструкциях типа компоновщика, где объекты хранят ссылки на родительские и дочерние узлы. |
Сообщ.
#3270
,
|
|
|
А зачем там сначала идет nil, а потом освобождение? Не говоря уже о том, что в занулении смысла особого нет, кроме отлавливания багов.
|