powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Обработка по действию компонента PopupMenu
12 сообщений из 12, страница 1 из 1
Обработка по действию компонента PopupMenu
    #39673733
SlavikArhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня! Подскажите пожалуйста
Delphi 5. На форме есть Button и PopupMenu...При нажатии на кнопку(OnClick) появляется контекстное меню с 2-мя вложенными пунктами. При нажатии на пункт (OnClick) вызывается отчет, сформированный в FastReport...все работает...хочу внести следующие изменения:
допустим, если в контекстном меню PopupMenu нажат пункт вызова отчета при нажатой клавише Shift - отчет вызывается на редактирование...

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
var
Shift: TShiftState;
begin
//код вызова отчета
 
if ssCtrl in Shift then
  begin
    //код вызова отчета на редактирование;
end
end



На пункте компонента PopupMenu код редактирования не срабатывает.. Если вызов отчета повесить на кнопку (OnMouseDown), код редактирования отрабатывает...Но увы, отчета у меня 2, при нажатии на кнопку надо выбрать 1-ый отчет или 2-ой
...
Рейтинг: 0 / 0
Обработка по действию компонента PopupMenu
    #39673736
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В OnMouseDown запоминай состояние шифта, а в OnClick проверяй его.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обработка по действию компонента PopupMenu
    #39673740
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В обработчике кнопки, меню, акции (TAction) и т.п.
Код: pascal
1.
2.
3.
if (Word(GetKeyState(VK_CONTROL)) and $8000)<>0 then begin
      // с Ctrl - запускаем дизайнер
      frxReport.DesignReport;
...
Рейтинг: 0 / 0
Обработка по действию компонента PopupMenu
    #39673748
SlavikArhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman, Благодарю!
...
Рейтинг: 0 / 0
Обработка по действию компонента PopupMenu
    #39673750
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanGetKeyState(VK_CONTROL)

Это плохо работает при недостатке мощности ЦПУ: между кликом и срабатыванием кода проходит
много времени за которое клавиша уже может быть отпущена (или наоборот - нажата для совсем
других целей).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обработка по действию компонента PopupMenu
    #39673780
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GetKeyboardState или GetAsyncKeyState - наиболее быстры
...
Рейтинг: 0 / 0
Обработка по действию компонента PopupMenu
    #39673784
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЭто плохо работает при недостатке мощности ЦПУ
Давно не работал на 8086.
...
Рейтинг: 0 / 0
Обработка по действию компонента PopupMenu
    #39673798
AX-Class
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По логике, этот функционал не то, что по разным кнопкам надо разнести, а по разным менюхам.
...
Рейтинг: 0 / 0
Обработка по действию компонента PopupMenu
    #39673809
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AX-ClassПо логике, этот функционал не то, что по разным кнопкам надо разнести, а по разным менюхам.
Чего мелочиться? В разный софт.

П.С. Так проще в плане, что имеется прямой доступ к открытому датасету, где данные в текущий момент отфильтрованы под отчет. Либо текущие переменные в рантайме с нужными значениями.
...
Рейтинг: 0 / 0
Обработка по действию компонента PopupMenu
    #39673837
AX-Class
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanAX-ClassПо логике, этот функционал не то, что по разным кнопкам надо разнести, а по разным менюхам.
Чего мелочиться? В разный софт.

П.С. Так проще в плане, что имеется прямой доступ к открытому датасету, где данные в текущий момент отфильтрованы под отчет. Либо текущие переменные в рантайме с нужными значениями.
Не противоречит. Как скрытая фича для себя и продвинутых пойдет. Но не иметь отдельное меню "Редактировать ..." - странно. А когда оно есть, уже смотрим на неудобства. Сомневаюсь, что их будет.
...
Рейтинг: 0 / 0
Обработка по действию компонента PopupMenu
    #39673862
SlavikArhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AX-Class, да, фича только для группы администраторов!
...
Рейтинг: 0 / 0
Обработка по действию компонента PopupMenu
    #39674350
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SlavikArhanAX-Class, да, фича только для группы администраторов!

Про эту фичу все забудут через месяц и опять придут к тебе с вопросом - "почему при Shift вызывается редактор?". Разнеси по разным пунктам меню и будет тебе счастье.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Обработка по действию компонента PopupMenu
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]