![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Событие, когда в буфере есть текст [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.