![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как подавить реакцию TTreeView на двойной клик? [D7, WinXP]
АлександрМ © (2007-07-05 01:42:00)TTreeView при двойном клике сворачивает или разворачивает ту ветку на которой был выполнен этот двойной клик. На событие OnDblClick сделан свой обработчик. И не нужно, чтобы ветка при этом закрывалась или открывалась (пусть пользователь сворачивает или разворачивает её только с помощью кнопок - и +). Подскажите, пожалуйста, как это сделать.
{RASkov} (2007-07-05 20:01:00) [61]А я ни с кем не работаю... пишу себе так.... для души и себя... и один.
И частенько использую метод "подмены" предложенный Инс. Если эта подмена происходит в другом модуле (См[8]) то комментирую эти веСЧи...:)
Ну в самом деле... в простеньких проектах это удобнее, чем создание их(контролов) в рантайм или еще хуже отдельным компонентом...
Спор бесполезен... так как оба правы и оба не правы в одно и тоже время :) Все зависит от конкретного проекта.
:о)
> [31] Инс © (05.07.07 19:27)
> Вы не любите кошек? Вы просто не умеете их готовить! ;)
Не отступай :)
Инс (2007-07-05 19:27:00) [62]
> [30] Desdechado © (05.07.07 18:50)
Вы не любите кошек? Вы просто не умеете их готовить! ;)
Desdechado (2007-07-05 18:50:00) [63]Я против таких маневров с именами классов.
Есть подозрения, что проекты с пакетами работать будут некорректно.
А уж то, что DLL, в которой хранится свое описание класса, будет работать некорректно по отношению к EXE с таким модифицированным описанием - это 100%.
b z (2007-07-05 18:18:00) [64]
> Ega23 © (05.07.07 17:52) [27]
ведь не зря упямянул [13], т.к. когда начинть проект - это одно, а вот сапорт - другое ... ;)
Инс (2007-07-05 17:56:00) [65]
> Ega23 © (05.07.07 17:52) [27]
Не умножать количество сущностей без надобности - Бритва Оккама. Известный принцип. Это я про другую сторону вашего утверждения про сущности...
Ega23 (2007-07-05 17:52:00) [66]
> а вы сами то [13] ?
Знаешь, если я вижу переменную btn : TButton, то я буду УВЕРЕН, что это именно стандартный TButton. Со всеми его методами, свойствами и событиями.
Вот если я увижу TMyButton или THackButton - то тогда да, обязательно залезу и посмотрю, что это такое. Но не раньше.
Просто Инс © предлагает подменять существующие сущности своими. А я говорю, что их подменять - нельзя. Надо создать новую сущность. Пусть очень похожую. Но - новую.
sdts (2007-07-05 17:23:00) [67]Для
> Ega23 © (05.07.07 17:01) [22]
а вы сами то [13] ?
Инс (2007-07-05 17:17:00) [68]
> Хватит спорить :)
Нормальная конструктивная дискуссия, не отходит от темы разговора, без перехода на личности и аргументов, вроде "сам дурак".
{RASkov} (2007-07-05 17:11:00) [69]> Ega23
> Инс
Хватит спорить :) Присядте где нибудь вместе, и за кружечкой пива поговорите. :о)
Инс (2007-07-05 17:04:00) [70]
> Hack-класс - нормальное решение. Но идентификатор данного
> класса создаётся с другим семантическим названием.
> В отличие от.
Ну, как сказать, нормальное. Там просто проблема в другом. Доступ к protected полям закрыт идеологией ООП. А там мы ее нарушаем. И здесь мы нарушаем некоторые каноны, так что, приемы близки, ИМХО.
Ega23 (2007-07-05 17:01:00) [71]
> ЮЗ в одной из ссылок предлагал решение с Hack-классом, что
> не сильно далеко уходит от данной темы, хотя, интересно
> узнать мнение именно по этому поводу.
Hack-класс - нормальное решение. Но идентификатор данного класса создаётся с другим семантическим названием.
В отличие от.
Инс (2007-07-05 17:00:00) [72]Из сторонников можно еще DRON-а назвать, что также немало ;)
ЮЗ в одной из ссылок предлагал решение с Hack-классом, что не сильно далеко уходит от данной темы, хотя, интересно узнать мнение именно по этому поводу.
Ega23 (2007-07-05 16:54:00) [73]
> Ссылки на обсуждения данного приема, дабы нам не повторяться:
>
> Первоисточник - http://ww.delphikingdom.com/asp/answer.asp?IDAnswer=35814
> http://www.delphikingdom.com/asp/articles_forum.asp?ArticleID=1296
> http://www.delphikingdom.com/asp/answer.asp?IDAnswer=47497
> http://www.delphikingdom.com/asp/answer.asp?IDAnswer=49421
Прочитал.
Из сторонников увидел только Вас да восторги Geo, которому понравилось решение (решение красивое, спорить не буду. Но - только для личного пользования с полным пониманием того, что ты делаешь).
Из противников - Антоха Григорьев, что уже немало. Хотелось бы мнение АП, ИШ или ЮЗ на этот счёт услышать.
Ega23 (2007-07-05 16:29:00) [74]
> Это Ваше личное мнение, а вот от некорректных сравнений
> прошу воздержаться. Теряю интерес к данному спору, так как
> еще раз повторю, уже миллион раз обсуждалось, и всегда находились
> и противники и сторонники. Сам данный трюк порою использовал,
> никаких побочных эффектов из-за этого не было и не будет,
> так как считаю, что в состоянии объективно оценить ситуацию
> и выбрать наиболее подходящее решение. Тем, кто не в состоянии
> - использование данного приема (и прочих подобных) противопоказано.
Да делайте что хотите, Вы в своём праве. Зачем только такие советы начинающим давать?
З.Ы. ВОГ-17 можно использовать как ручную гранату контактного действия. Надо всего лишь перед броском об что-нибудь твёрдое её ударить, чтобы на боевой взвод встала.
Прямых запретов нигде нет. Однако почему-то её таким образом крайне редко используют. Вот интересно, а почему?
Инс (2007-07-05 16:27:00) [75]Ссылки на обсуждения данного приема, дабы нам не повторяться:
Первоисточник - http://ww.delphikingdom.com/asp/answer.asp?IDAnswer=35814
http://www.delphikingdom.com/asp/articles_forum.asp?ArticleID=1296
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=47497
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=49421
Инс (2007-07-05 16:16:00) [76]
> Ещё раз повторяю, что такой трюк уместен на столько же,
> насколько уместен выход из рекурсивной процедуры через goto.
Это Ваше личное мнение, а вот от некорректных сравнений прошу воздержаться. Теряю интерес к данному спору, так как еще раз повторю, уже миллион раз обсуждалось, и всегда находились и противники и сторонники. Сам данный трюк порою использовал, никаких побочных эффектов из-за этого не было и не будет, так как считаю, что в состоянии объективно оценить ситуацию и выбрать наиболее подходящее решение. Тем, кто не в состоянии - использование данного приема (и прочих подобных) противопоказано.
Ega23 (2007-07-05 16:07:00) [77]
> Если мне предоставят код с данным трюком, я еще спасибо
> скажу за то, что мне не понадобится регистрировать ничего
> в палитре, чтобы проверить работоспособность.
А не надо регистрировать. Надо в ран-тайм создавать. А вот если такое создание сплошь и рядом идёт - то тогда сам Баал велел компонент ставить.
> Еще раз повторю, что такой трюк при умелом использовании
> вполне безопасен (если конечно класс нужно подкорректировать
> чуть-чуть, а не капитально).
Ещё раз повторяю, что такой трюк уместен на столько же, насколько уместен выход из рекурсивной процедуры через goto.
Инс (2007-07-05 16:04:00) [78]Специально для эстетов: если определенное поведение (как например, реакция TreeView на двойной клик) не устраивает в определенном контроле (а не во всех контролах данного типа) - можно просто в рантайм подменить WindowProc.
Инс (2007-07-05 15:54:00) [79]
> Вам доводилось заниматься командной разработкой большого
> проекта? А поддерживать чужой код?
Именно так в данный момент и работаю. А именно - учавствую в командной разработке сам + курирую некоторых других разработчиков. Если мне предоставят код с данным трюком, я еще спасибо скажу за то, что мне не понадобится регистрировать ничего в палитре, чтобы проверить работоспособность. Еще раз повторю, что такой трюк при умелом использовании вполне безопасен (если конечно класс нужно подкорректировать чуть-чуть, а не капитально).
Ega23 (2007-07-05 15:47:00) [80]
> Инс © (05.07.07 15:29) [12]
>
> Эстетические аспекты меня мало волнуют, ибо я сам понимаю
> все недостатки данного подхода. Мне интересны технические
> недостатки, которые перекроют технические достоинства.
Вам доводилось заниматься командной разработкой большого проекта? А поддерживать чужой код?
Всегда ли вы, видя объявление
var
bmp : TBitmap;
лезете посмотреть: а является ли TBitmap стандартным классоом TBitmap, или какой-нибудь Вася Пупкин, писавший этот код год назад, взял да и перекрыл его? Для решения своих маленьких нужд?
Не нравится TBitmap? Хорошо, пусть будет TADODataSet. Или TButton.