Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];

Вниз

Как же все таки поменить оконную функцию TEdit ??? :(( HELP!   Найти похожие ветки 

 
pirat   (2002-10-16 22:30) [0]

Помогите кто может!
пишу

TFloatEdit = class(TEdit)
protected
procedure WndProc(var Message: TMessage);override;
end;

и потом

procedure TFloatEdit.WndProc(var Message: TMessage);
begin
if Message.Msg = WM_KEYDOWN then
begin
Message.Result :=0;
end

else
inherited WndProc(Message);

end;

по идее, когда result становится равным 0 обработка должна прекратиться, то есть при нажатии на кнопки ничего вводится не должно. Однако фигушки!!! Все работает :(((((( Отсюда вывод - что WndProc не учавствует в цепочке обработки. Так что же мне заменять??
HELP!


 
Eazy   (2002-10-16 22:43) [1]

OnKeyPress etc


 
Eazy   (2002-10-16 22:48) [2]

Шучу, конечно.
procedure WMKEYDON (Var Message: TMessage);message WM_KeyDown;


 
TTCustomDelphiMaster   (2002-10-16 22:54) [3]

TFloatEdit = class(TEdit)
protected
procedure WMChar(var Message: TWMChar); message WM_CHAR;
end;

procedure TFloatEdit.WMChar(var Message: TWMChar);
begin
//inherited;
end;


 
pirat   (2002-10-16 23:17) [4]

у меня появляется желание залезть на стенку :(
Дело было не только в WM_KEYDOWN ... хотелось бы всю процедуру подменить.


 
MBo   (2002-10-17 06:42) [5]

Без создания нового компонента:

private
OldProc: TWndMethod;
procedure NewProc(var msg: TMessage);

в OnCreate
OldProc := Scrollbox1.WindowProc;
Scrollbox1.WindowProc := NewProc;

procedure TForm1.NewProc(var msg: TMessage);
begin
case msg.Msg of
WM_VSCROLL: label1.caption:="vert";
WM_HSCROLL: label1.caption:="horiz";
end;
OldProc( msg );
end;


 
pirat   (2002-10-17 15:09) [6]

ОГРОМНОЕ ЧЕЛОВЕЧЕСКОЕ СПАСИБО!
Я в начале тоже самое писал только OldWindow:pointer сделал, и у меня ни фига не получалось :)
Вот что в итоге

TFloatEdit = class(TEdit)
public
OldProc: TWndMethod;
constructor Create(AOwner: TComponent); override;
procedure NewProc(var msg: TMessage);
end;

constructor TFloatEdit.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
OldProc := self.WindowProc;
self.WindowProc := self.NewProc;
end;

procedure TFloatEdit.NewProc(var msg: TMessage);
begin
if (msg.Msg <> WM_KEYDOWN) and
(msg.Msg<>WM_KEYUP) and
(msg.Msg<>WM_CHAR) then
OldProc(msg)
else
msg.Result:=0;
end;



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.038 c
8-92619
MJH
2002-05-11 19:24
2002.10.28
Equalizer / Эквалайзер / NitroAmp 0.74XPbeta1


14-92725
Феликс
2002-10-08 20:59
2002.10.28
Помогите найти картинку.


8-92612
Deadlock
2002-06-30 05:30
2002.10.28
Тормоза DelphiX


14-92671
Lola
2002-10-06 12:26
2002.10.28
Письмо-счастье


1-92556
Freeze
2002-10-16 08:44
2002.10.28
Помогите, нужно программно сделать копию отчета в 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
Английский Французский Немецкий Итальянский Португальский Русский Испанский