![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрет вставки из буфера в Edit [D7]
Manfred8 © (2004-11-26 14:02:00)Пытаюсь определить обработчик
Procedure WMPaste(var MSG:TMSG);message WM_Paste;
Procedure TEditPassengerForm.WMPaste(var MSG:TMSG);
begin
showmessage('Ибо Нефиг');
end;
Не катит :( В него даже не попадает
TUser (2004-11-26 17:24:00) [1]Точнее -WmPaste, конечно
KSergey1 (2004-11-26 17:23:00) [2]Посмотрите эту ветку
http://delphimaster.ru/cgi-bin/forum.pl?id=1101363417&n=0
TUser (2004-11-26 16:53:00) [3]
> Наследника это правильно,тока чет дельфя глючит, не находит
> TDesigner при попытке регистрации компанента,а переставлять
> влом.
Пишешь
unit unit1;
TMyEdit = class (TCustomEdit)
public
procedure WmChar(...); message ...
end;
var
Form1: TForm1;
Edit1: TMyEdit;
implementation
procedure TMyEdit.WmChar(...);
begin
ShowMessage('Poshel v jopy, tester!');
end;
procedure TForm1.FormOnCreate();
begin
Edit1:=TMyEdit.Create(Application);
with Edit1 do begin
Top:=...
Left:=...
Parent:=Self;
end;
end;
Manfred8 (2004-11-26 16:46:00) [4]Зачем во всех последующих,я сделал копию и исправлял ее, она лежит вместе с проектом :)
Наследника это правильно,тока чет дельфя глючит, не находит TDesigner при попытке регистрации компанента,а переставлять влом.
Юрий Зотов (2004-11-26 15:49:00) [5]> Manfred8 (26.11.04 15:39) [12]
И теперь во всех следующих программах Вы получите 'Ибо нефиг'.
Ибо нефиг.
TUser (2004-11-26 15:41:00) [6]
> Сделал следующим образом влез в исходники
ВЫЛЕЗЬ срочно. Не меняй генофонд. Просто напиши своего наследника
Manfred8 (2004-11-26 15:39:00) [7]yES. Сделал следующим образом влез в исходники и дописал к Edit
procedure WMPaste( var Msg: TWMPaste ); message wm_Paste;
procedure TRzCustomEdit.WMPaste( var Msg: TWMPaste );
BEGIN
SHOWMESSAGE('Ибо нефиг');
END;
Работает :)
TUser (2004-11-26 15:07:00) [8]
> Задача разрешать вводить токо буковки латиницы,выполнена,но
> нехороший тестер вставляет туда из буфера и говорить что
> ай я яй :) Убить его конечно можно но не спортивно
А ты OnChange у эдита обрабатывай - и он обломится
Юрий Зотов (2004-11-26 14:59:00) [9]> Manfred8 (26.11.04 14:02)
Вдогонку.
> Procedure WMPaste(var MSG:TMSG);message WM_Paste;
Здесь нужно TMessage, а TMsg - это несколько другое.
Sash (2004-11-26 14:50:00) [10]отвечал по сабжу, всей проблемы не внял, извиняюсь
Manfred8 (2004-11-26 14:47:00) [11]Задача разрешать вводить токо буковки латиницы,выполнена,но нехороший тестер вставляет туда из буфера и говорить что ай я яй :) Убить его конечно можно но не спортивно
jack128 (2004-11-26 14:45:00) [12]Sash © (26.11.04 14:38) [5]
А разве задача - сделать Edit read only??
cae (2004-11-26 14:44:00) [13]Или вот так :
TForm1 = class(TForm)
...........
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
SaveWindowProc: TWndMethod;
procedure NewWindowProc(var Message: TMessage);
public
{ Public declarations }
end;
procedure TForm1.NewWindowProc(var Message: TMessage);
begin
if Message.Msg = WM_PASTE then
ShowMessage('Низя !')
else
SaveWindowProc(Message);
end ;
procedure TForm1.FormCreate(Sender: TObject);
begin
SaveWindowProc := Edit1.WindowProc;
Edit1.WindowProc := NewWindowProc;
end;
Sash (2004-11-26 14:38:00) [14]не проще будет свойство ReadOnly в True поставить?
Manfred8 (2004-11-26 14:34:00) [15]>Написать наследника от TEdit. Или от TCustomEdit
:) Фигня вопрос,сделаем
jack128 (2004-11-26 14:29:00) [16]Manfred8 (26.11.04 14:14) [2]
Написать наследника от TEdit. Или от TCustomEdit
Manfred8 (2004-11-26 14:14:00) [17]а не подскажите как его у edita перехватить?
Юрий Зотов (2004-11-26 14:10:00) [18]> Не катит :( В него даже не попадает
Естественно. Вы же перехватываете сообщение, посланное ФОРМЕ, а не Edit'у.