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

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

Событие, когда в буфере есть текст [D7, WinXP]


Дмитрий_177 ©   (2006-02-06 19:11:00) 

Вопрос может бытьбанальным, но всеже я не знаю как его решить. В MainMenu в подменю "Edit" как у всех блокнотов есть пункт "Paste". Так вот как мне отлавливать когда его делать доступным(Enabled:=true) когда в буфере есть текст и когда нету текста недоступным(Enabled:=false)?


Gero   (2006-02-07 12:13:00) [1]

> Как отлавливать событие на то что текст был выделен и не
> выделен в Memo? это чтобы "Cut" и "Copy" чтобы тоже делать
> доступным и недоступным... И если можно про Undo с Redo
> также...

Используй TActionList.


ЮЮ   (2006-02-07 08:21:00) [2]

А ещё TActionList, у которого есть стандартные Action-ы. Достаточно будет у TMenuItem указать их в качестве Action - и все будет работать безо всяких усилий с твоей стороны


Babay   (2006-02-07 07:58:00) [3]

в МЕМО есть свойство SelLength в котором содержится кол-во выделенных символов, если SelLength=0 значит выделения нет.
Проверяй и поступай соответственно.

P/S еще есть SelText содержит выделенный текст


begin...end   (2006-02-06 20:51:00) [4]

> Дмитрий_177   (06.02.06 20:29) [2]

> Как отлавливать событие на то что текст был выделен и не
> выделен в Memo?

Насчёт Memo -- не в курсе. А вот у RichEdit с этим просто: он не скупится на информирование родительского окна и посылает ему уведомление EN_SELCHANGE. В Delphi при этом вызывается обработчик TRichEdit.OnSelectionChange.


Дмитрий_177   (2006-02-06 20:29:00) [5]

Спасибо, буду разбираться... А еще вопросик, немного не в тему но из той же оперы... Как отлавливать событие на то что текст был выделен и не выделен в Memo? это чтобы "Cut" и "Copy" чтобы тоже делать доступным и недоступным... И если можно про Undo с Redo также...


begin...end   (2006-02-06 19:36:00) [6]

Если нужно в определённый момент проверять , есть ли данные нужного формата в буфере, используйте IsClipboardFormatAvailable. Если же нужно именно отлавливать изменение содержимого буфера, используйте SetClipboardViewer + WM_DRAWCLIPBOARD. Описание всего этого см. в MSDN.


Наверх

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