Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

Запрет вставки из буфера в 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.065 c
1-1101551535
Артем Владимирович
2004-11-27 13:32
2004.12.12
Как стереть самого себя


14-1101202174
digger
2004-11-23 12:29
2004.12.12
Чипы и число 666


4-1099032593
WaS
2004-10-29 10:49
2004.12.12
Как определить активен ли сейчас рабочий стол????


10-1054622130
OlegL
2003-06-03 10:35
2004.12.12
Server DLL & .exe


14-1100871966
Ш-К
2004-11-19 16:46
2004.12.12
Обновление приложений в локальной сети.