Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизЗапрет вставки из буфера в Edit Найти похожие ветки
← →
Manfred8 (2004-11-26 14:02) [0]Пытаюсь определить обработчик
Procedure WMPaste(var MSG:TMSG);message WM_Paste;
Procedure TEditPassengerForm.WMPaste(var MSG:TMSG);
begin
showmessage("Ибо Нефиг");
end;
Не катит :( В него даже не попадает
← →
Юрий Зотов © (2004-11-26 14:10) [1]> Не катит :( В него даже не попадает
Естественно. Вы же перехватываете сообщение, посланное ФОРМЕ, а не Edit"у.
← →
Manfred8 (2004-11-26 14:14) [2]а не подскажите как его у edita перехватить?
← →
jack128 © (2004-11-26 14:29) [3]Manfred8 (26.11.04 14:14) [2]
Написать наследника от TEdit. Или от TCustomEdit
← →
Manfred8 (2004-11-26 14:34) [4]>Написать наследника от TEdit. Или от TCustomEdit
:) Фигня вопрос,сделаем
← →
Sash © (2004-11-26 14:38) [5]не проще будет свойство ReadOnly в True поставить?
← →
cae © (2004-11-26 14:44) [6]Или вот так :
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;
← →
jack128 © (2004-11-26 14:45) [7]Sash © (26.11.04 14:38) [5]
А разве задача - сделать Edit read only??
← →
Manfred8 (2004-11-26 14:47) [8]Задача разрешать вводить токо буковки латиницы,выполнена,но нехороший тестер вставляет туда из буфера и говорить что ай я яй :) Убить его конечно можно но не спортивно
← →
Sash © (2004-11-26 14:50) [9]отвечал по сабжу, всей проблемы не внял, извиняюсь
← →
Юрий Зотов © (2004-11-26 14:59) [10]> Manfred8 (26.11.04 14:02)
Вдогонку.
> Procedure WMPaste(var MSG:TMSG);message WM_Paste;
Здесь нужно TMessage, а TMsg - это несколько другое.
← →
TUser © (2004-11-26 15:07) [11]
> Задача разрешать вводить токо буковки латиницы,выполнена,но
> нехороший тестер вставляет туда из буфера и говорить что
> ай я яй :) Убить его конечно можно но не спортивно
А ты OnChange у эдита обрабатывай - и он обломится
← →
Manfred8 (2004-11-26 15:39) [12]yES. Сделал следующим образом влез в исходники и дописал к Edit
procedure WMPaste( var Msg: TWMPaste ); message wm_Paste;
procedure TRzCustomEdit.WMPaste( var Msg: TWMPaste );
BEGIN
SHOWMESSAGE("Ибо нефиг");
END;
Работает :)
← →
TUser © (2004-11-26 15:41) [13]
> Сделал следующим образом влез в исходники
ВЫЛЕЗЬ срочно. Не меняй генофонд. Просто напиши своего наследника
← →
Юрий Зотов © (2004-11-26 15:49) [14]> Manfred8 (26.11.04 15:39) [12]
И теперь во всех следующих программах Вы получите "Ибо нефиг".
Ибо нефиг.
← →
Manfred8 (2004-11-26 16:46) [15]Зачем во всех последующих,я сделал копию и исправлял ее, она лежит вместе с проектом :)
Наследника это правильно,тока чет дельфя глючит, не находит TDesigner при попытке регистрации компанента,а переставлять влом.
← →
TUser © (2004-11-26 16:53) [16]
> Наследника это правильно,тока чет дельфя глючит, не находит
> 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;
← →
KSergey1 (2004-11-26 17:23) [17]Посмотрите эту ветку
http://delphimaster.net/view/1-1101363417/
← →
TUser © (2004-11-26 17:24) [18]Точнее -WmPaste, конечно
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.036 c