Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Перехват WM_PASTE / 3 сообщений из 3, страница 1 из 1
11.12.2006, 11:50
    #34189621
Alik SQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват WM_PASTE
Уважаемые знатоки!
Такая ситуация - есть форма, на ней достаточно много контолей ввода TEdit.
Каждый контролл ссылается на структуру где хранятся его допустимые наборы ввода.
Так вот с обработкой таких событий как KeyDown и KeyPress вроди бы все понятно, но остается момент когда пользователь пытается вставить в ето поле значения из буффера.

На етот счет я определяю след код:

OldEditProc = Edit1->WindowProc;
Edit1->WindowProc = NewEditProc;

void __fastcall TForm1::NewEditProc(Messages::TMessage &Message)

{
if (Message.Msg == WM_PASTE) {
if(ClipboardCheck())
OldEditProc(Message);

else {
ShowMessage("Недопустимый ввод");
return;
}
}
else
OldEditProc(Message);
}

где OldEditProc определен как

TWndMethod OldEditProc;


НО!
Возникает проблема как я для сотни контролей определю перехват?
Я попытался присвоить NewEditProc двум контролламб возникли ошибки (

Пожалуйсто помогите )
...
Рейтинг: 0 / 0
11.12.2006, 20:32
    #34191605
SnowMan2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват WM_PASTE
Поможет производный класс от TEdit c полем OldEditProc и методом NewEditProc.
На базе этого класса можно создать компоненту TMyEdit.
После этого останется только в dfm файле заменить TEdit на TMyEdit.
...
Рейтинг: 0 / 0
12.12.2006, 09:16
    #34192157
Alik SQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват WM_PASTE
Спасибо, я думал об етом методе, но хотелось бы более универсальный вариантб так как ето будет в далбнейшем каксатся и других сонтроллей ввода :(
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Перехват WM_PASTE / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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