Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Странное поведение ActionMainMenuBar [D7, WinXP]


Vasek ©   (2005-02-21 23:16:00) 

При клике на пункте меню вызывается команда
ListBox1.Items.Add('bbb');
Проблема в том, что вместо добавления оной строки, добавляются ДВЕ!!! То-есть обрабатывается как MouseKeyDoun так и MouseKeyUp.
Вопрос: Как это вылечить?
Помогите пожалуйста!


Vasek   (2005-02-23 12:51:00) [1]

Копание никчему не привело. :(
Но я и не считаю себя МАСТЕРОМ.
Может настоящие МАСТЕРА всё-же снизойдут до этой проблемы?
Нехочется верить, что это для них неразрешимая задача.
Помогите, ОЧЕНЬ прошу!!!


Vasek   (2005-02-22 22:18:00) [2]

To Sun bittern ©
Огромное спасибо! Буду копать...


Sun bittern   (2005-02-22 21:37:00) [3]

Порыться нужно начиная с этого метода, очень похоже, что глюк явно в нем. Отладчиком там гонять и гонять... :)

unit ActnMenus;

procedure TCustomActionMenuBar.TrackMenu;


Sun bittern   (2005-02-22 20:56:00) [4]

Глюк у TActionMainMenuBar. Надо в нем копать. Если менюшка лежит на панели меню, то обрабатывается Execute 2 раза, если данный пункт меню находится в выпадающем списке меню, то Execute обработается 1 раз. Вот такие пирожки :)


Vasek   (2005-02-22 19:17:00) [5]

Ну вот...
А мастера то где?
Очень прошу о помощи.


Vasek   (2005-02-22 12:13:00) [6]

Ауууууу!
Помогите!!!!!!!


Vasek   (2005-02-22 10:30:00) [7]

To ЮЮ ©
Попробуй на пустом проекте. Весь код при этом должен быть один обработчик
procedure TForm1.Action1Execute(Sender: TObject);
begin
ListBox1.Items.Add('bbb');
end;
______________________________________

Именно так и сделал. Как надо НЕ РАБОТАЕТ!!!
Добавляются ДВЕ строки.
Мастера, отзавитесь.


ЮЮ   (2005-02-22 04:26:00) [8]

Переходи на D6 - там всё работает как надо :)

>А вообще никакие!
ActionManager.Acttion.OnExecute - такой код где-то присутствует или это просто для красного словца? Если присутствует - убирай, ибо это и есть двойной вызов.
Попробуй на пустом проекте. Весь код при этом должен быть один обработчик

procedure TForm1.Action1Execute(Sender: TObject);
begin
 ListBox1.Items.Add('bbb');
end;

Если все работает как надо, значит ищи ошибку в своем коде.


Vasek   (2005-02-22 01:51:00) [9]

Ну неужели никто не использует ActionMainMenuBar.
Кстати ActionToolBar ведёт себя абсолютно предсказуемо.
Помогите!!!!!!!!


Vasek   (2005-02-21 23:50:00) [10]

А вообще никакие!
ActionManager.Acttion.OnExecute !!!


saNat   (2005-02-21 23:42:00) [11]

А какие обработчики используются? Если в обоих прописано, то оба сработают... кнопку мыши не только нажимают, но и отпускают :-)

С уважением, ЕВА


Наверх

Титульная страница Поиск, карта сайта Написать письмо