Вниз
Скачать: CL | DM;

ScrollBar   Найти похожие ветки 

 
Mars   (2003-03-12 17:03) [0]

На форме два одинаковых RichEdit"a.
Как при перемещении горизонтального скрола в одном RichEdit"е
оновременно перемещать его также в другом?

Думаю надо при перемещении скрола споймать сообщение от одного RichEdit"a и послать другому, но чтото на практике не получается.

Подкиньте, может, другую идею...


 
_Flash_   (2003-03-12 21:03) [1]

Проще всего перехватить оконную процедуру и написать сой обработчик
пишу по памяти



var OldProc: pointer;
.
.
.
oldProc:=GetWindowLong(RichEdit1.Handle,GWL_WNDPROC);
SetWindowLong(RichEdit1.Handle,GWL_WNDPROC,Integer(@MyWndProc));

и в MyWndProc

if Msg=WM_HSCROLL then
...


 
Mars   (2003-03-13 12:11) [2]

Похоже, что скроллинг RichEdit"a работает не с WM_HSCROLL


 
Diamond Cat ©   (2003-03-15 01:39) [3]

конкретный пример
public
{ Public declarations }
end;
var
Form1 : TForm1;
OldWindowProc : Pointer;

implementation

{$R *.dfm}

function mHScrolProc(WindowHandle:hWnd; TheMessage:uint;
ParamW:WParam; ParamL : LParam) : LongInt {$IFDEF WIN32} stdcall;
{$ELSE} ; export; {$ENDIF}
begin

if TheMessage = WM_HSCROLL then
sendmessage(Form1.RichEdit2.handle,TheMessage,ParamW ,ParamL);
mHScrolProc := CallWindowProc(OldWindowProc, WindowHandle, TheMessage,ParamW, ParamL);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
OldWindowProc:=pointer(getwindowlong(richedit1.handle,GWL_WNDPROC));
setwindowlong(richedit1.handle,GWL_WNDPROC,integer(@mHScrolProc));
end;



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.013 c
3-46573
msoftware
2003-04-25 08:59
2003.05.15
INTERBASE & Autoincrement поля >>>


8-46852
Городецкий Д.
2003-02-05 13:11
2003.05.15
Выполнение любого файла.


1-46814
region
2003-05-01 16:57
2003.05.15
Патч


1-46710
Юлия
2003-05-04 11:40
2003.05.15
Создание собственных компонент


14-46954
SergeySH
2003-04-24 17:46
2003.05.15
Помогите перевести на Паскаль!




   Наверх