Главная страница
    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.038 c
3-1099996633
Квэнди
2004-11-09 13:37
2004.12.12
Ошибка Mysql Client


1-1101477916
Pentium133
2004-11-26 17:05
2004.12.12
Сопирование Canvas ов


3-1100532292
denis24
2004-11-15 18:24
2004.12.12
select ....like *


3-1100150626
S@lik
2004-11-11 08:23
2004.12.12
Индексы


1-1101664029
Express
2004-11-28 20:47
2004.12.12
Ошибки Delphi





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский