| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Проблема с TSpeedButton'ом |
| Автор: Delphist 4.5.2006, 12:16 |
| Возникла следующая проблема: На форме лежат два SpeedButton'a, которые объеденены в группу, что даёт возможность при включении одного из них другой выключается. Но как только в MouseDown я помещаю сообщение(ShowMessage), то получается бред, а именно вместо того, чтобы один из них был нажат, а другой отжат, получаем что они оба нажаты. Как с этим бороться исходники прилагаю. |
| Автор: Yanis 4.5.2006, 12:24 |
| Тогда ручками сам "выравнивай" положение состояние кнопок. А OnClick это сделать нельзя? |
| Автор: Snowy 4.5.2006, 12:25 |
| Перенеси код в OnMouseUp. Добавлено @ 12:26 Просто отжатие происходит по отпусканию кнопки, которого не происходит, т.к. ты вызвал диалог. |
| Автор: Delphist 4.5.2006, 12:36 | ||||
1) Переносить в MouseUp мне не надо. 2) Можно ли как нибудь с эмулировать отпускание кнопки. Добавлено @ 12:38
А как "ручками" выравнивать положение состояние кнопок. |
| Автор: Alexeis 4.5.2006, 13:04 | ||
Delphist, я попробовал "ручками" выравнять положение, но это привело вообще к тому, что первая кнопка стала глючть.
Рисуется нажатой при простом наведении на нее курсора! |
| Автор: Delphist 4.5.2006, 13:11 | ||
Да ты прав я уже утром попробовал этот способ. Так что посоветуешь делать?! |
| Автор: Alexeis 4.5.2006, 13:19 |
| Delphist, Боюсь что медицина в этом случае бессильна Придется писать свой новый speedbutton, на основе например TImage, или залезть на torry и поискать альтернативу. http://www.torry.net/quicksearchd.php?String=speedbutton&Title=Yes |
| Автор: Snowy 4.5.2006, 13:25 |
| А зачем именно OnMouseDown? Почему не OnClick, наконец. Ты нарушаешь процесс. Спидбаттон - это не окно. Поэтому обрабатывает событие парент. А он ориентируется по координатам мыши. Можешь попробовать - нажать на кнопу, не отжимая перевести ее в другое место. Будет та же хрень. |