Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
9-1092134680
Micah'GF
2004-08-10 14:44
2004.12.12
Фракталы


14-1100918516
fayzut
2004-11-20 05:41
2004.12.12
Delphi 7


1-1101652741
markers
2004-11-28 17:39
2004.12.12
Крыса и форма


4-1099019554
Rentgen
2004-10-29 07:12
2004.12.12
Выделить окно объект


9-1091894388
new developer
2004-08-07 19:59
2004.12.12
массив в массиве





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский