Вниз
Скачать: 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
1-46796
TALLA_
2003-05-02 12:16
2003.05.15
Excel


1-46718
Киря
2003-05-04 17:01
2003.05.15
Удаления дубликатов в ListBox


3-46589
Rise
2003-04-23 13:24
2003.05.15
Query.RequestLive и Access


3-46582
LazorenkoX
2003-04-23 11:01
2003.05.15
CreateDatabase


14-46970
Плохой человек
2003-04-27 00:10
2003.05.15
WinRAR - Rulezz forever!




   Наверх