Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запрет вставки из буфера в 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'у.


Наверх

Титульная страница Поиск, карта сайта Написать письмо