Вниз
Скачать: CL | DM;

Menu.DefaultItem - невозможно снять   Найти похожие ветки 

 
Vladimyr ©   (2004-07-12 12:33) [0]

Привет всем, пробовал ли кто-нибудь использовать у меню свойство DefaultItem ?
Дело в том, что, изменяя его в runtime, я с удивлением обнаружил, что могу установить его для любого элемента меню, но не могу снять!
Присваивание PopupMenu1.Items[n].DefaultItem := false не даёт абсолютно никакого эффекта!
В отчаянии я даже пытался оттрассировать функцию SetState, и обнаружил, что она работает совершенно нормально, соответствующий бит у fState сбрасывается.
(то есть если fState был 4104, то стал 8, и т.п.)


 
Vladimir Kladov   (2004-07-12 15:21) [1]

наверное, надо обновить menu bar.


 
Vladimyr ©   (2004-07-13 00:47) [2]

Попробовал - безрезультатно.
Да и не логично использовать процедуру RedrawFormMenuBar для обыкновенного PopupMenu.
И кстати, жирнеют пункты меню нормально, безо всякого обновления...


 
z007   (2004-07-13 23:47) [3]

Надо принудительно заставить перерисовать и пересчитать нужный пунтк меню. При изменении сделать Visible:=False, Затем - True.
Все.
(Если не известен нужный пункт... ищите или перебирайте все)


 
Vladimyr ©   (2004-07-14 03:05) [4]

Да, помогло... Как всё просто! Жаль, этого кода нет в KOL.pas...
Спасибо огромное.


 
Vladimir Kladov   (2004-07-14 16:27) [5]

Какой код? Ладно, я сам посмотрю. Мне никогда не приходило в голову в run-time менять Default. Не думаю, что это - способ облегчить работу пользователя с интерфейсом. Интерфейс должен работать на уровне мышечно-моторных функций. А если сейчас default - это одно, через секунду - другое, то это как-то не очень.


 
Vladimyr ©   (2004-07-15 03:28) [6]

После изменения defaultitem воткнуть:
Visible := false;
Visible := true;

ВСЁ! :)

А для пользователя удобно, когда отмеченный радио-итем тут же  жирнеет...


 
z007   (2004-07-18 11:38) [7]


> После изменения defaultitem воткнуть:

Зачем?
Будет ли это "в духе kol"?


 
Vladimir Kladov   (2004-07-18 11:44) [8]

Конечно не будет. Поэтому я решил просто добавить комментарий к свойству DefaultItem:

|<br>If you change DefaultItem at run-time and whant
      to provide changing its visual state, recreate the item first resetting
      Visible property, then setting it again.


 
z007   (2004-07-19 20:11) [9]

В точку.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.024 c
14-1106578032
AlexG
2005-01-24 17:47
2005.02.13
Как WinXP выключить из командной строки?


4-1104240928
BVV
2004-12-28 16:35
2005.02.13
WinExec


1-1106858459
SergP
2005-01-27 23:40
2005.02.13
Как запустить другое приложение и дождаться его завершения?


1-1107111860
QWEQWEQWE
2005-01-30 22:04
2005.02.13
Drag&amp;Drop


1-1106743509
Eyfel
2005-01-26 15:45
2005.02.13
ECO + Delphi 2005




   Наверх