:: Главная :: Решения :: Статьи :: Проект "Русский help" :: Файловый архив :: Фотоальбом :: Ссылки ::
   Л и с о в о д ы   в с е х   с т р а н,  о б ъ е д и н я й т е с ь !!!  


Форумы  :: FAQ FoxPro

Почему в готовом EXE не работает копирование по Ctrl+C, Ctrl+V
Дата: 29.06.05 19:49:24 ОтветитьЦитировать

Проблема

На этапе разработки приложения работало копирование через буфер обмена (горячие клавиши Ctrl+C, Ctrl+V), но в готовом файле EXE эти комбинации клавиш не работают. Как можно исправить эту ситуацию?

Причина

Эти комбинации горячих клавиш связаны с определенными пунктами системного меню. Если в Вашем приложении не предусмотрены данные пункты меню, то и не будет выполнено никаких действий для указанных комбинаций клавиш. Просто не указано, что именно должно выполняться.

Решение

Вам необходимо определить соответствующие пункты меню. Это все те пункты, которые определены в выпадающем меню для пункта системного меню Edit. Обычно этот пункт делается вторым пунктом основной линейки меню. Т.е. в Вашем файле для запуска основного меню должно быть примерно следующий код.

  
 * Первый пункт основной линейки меню  
  DEFINE PAD _msm_edit OF _MSYSMENU PROMPT "Правка" COLOR SCHEME 3  
 * Прочие пункты основной линейки меню  
    
  DEFINE POPUP _medit MARGIN RELATIVE SHADOW COLOR SCHEME 4  
  DEFINE BAR _MED_UNDO OF _medit PROMPT "Отменить" ;  
  	KEY CTRL+Z, "CTRL+Z"  
  DEFINE BAR _MED_REDO OF _medit PROMPT "Вернуть" ;  
  	KEY CTRL+R, "CTRL+R"  
  DEFINE BAR _MED_SP100 OF _medit PROMPT "\-"  
  DEFINE BAR _MED_CUT OF _medit PROMPT "Вырезать" ;  
  	KEY CTRL+X, "CTRL+X"  
  DEFINE BAR _MED_COPY OF _medit PROMPT "Копировать" ;  
  	KEY CTRL+C, "CTRL+C"  
  DEFINE BAR _MED_PASTE OF _medit PROMPT "Вставить" ;  
  	KEY CTRL+V, "CTRL+V"  
  DEFINE BAR _MED_CLEAR OF _medit PROMPT "Очистить"  
  DEFINE BAR _MED_SP200 OF _medit PROMPT "\-"  
  DEFINE BAR _MED_SLCTA OF _medit PROMPT "Выделить все" ;  
  	KEY CTRL+A, "CTRL+A"

Если Вы делаете свое меню, используя, дизайнер меню, то

  • Присвоение имени "_msm_edit" производится в окне, которое появляется при нажатии кнопки в столбце "Options" напротив пункта меню "Правка"
  • Для присвоения имени выпадающего Popup-меню "_medit" в дизайнере меню войдите в подменю "Правка". Далее выберите пункт системного меню View, подпункт Menu Options и в графе Name впишите значение "_medit" (без кавычек, разумеется)
  • Для присвоения имен BAR-пунктам выберите в столбце Result дизайнера меню значение "Bar #" и впишите соответствующие имена в столбце для ввода команд
  • Комбинации горячих клавиш назначаются в окне, которое появляется при нажатии кнопки в столбце "Options" напротив соответствующего Bar-пункта меню

    Следует заметить, что для функционирования комбинаций горячих клавиш вовсе не обязательно активировать ранее определенное меню. Достаточно самого факта его определения.

    Впрочем, я бы рекомендовал все-таки его сделать, поскольку сам Pad-пункт главной линейки меню "_msm_edit" - это хорошая "привязка" для динамического добавления "контекстного" меню. Т.е. такого пункта меню, которое появляется только при активации определенных форм.
    Ratings: 0 negative/0 positive


  • Тема Просмотров Написано Написано
      Menu 4833 Владимир Максимов 01.03.05 20:56
      При запуске меню появляется сообщение о синтаксической ошибке 7380 Владимир Максимов 20.03.05 16:29
      Как добавить в меню список открытых окон 141444 Владимир Максимов 22.03.05 09:56
      Почему в готовом EXE не работает копирование по Ctrl+C, Ctrl+V 8220 Владимир Максимов 29.06.05 19:49
      Как изменить шрифт пунктов меню в дизайнере меню 6788 Владимир Максимов 12.11.05 20:28
      В готовом EXE все меню или его часть отображается не по русски 3844 Владимир Максимов 30.12.06 16:02


    Извините, но у вас нет прав для того, чтобы писать в этом форуме.

    On-line: 30 Komar  and Guests: 29


    © 2006 Fox Club 
    Яндекс.Метрика