Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.15;
Скачать: 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 вся ветка

Текущий архив: 2003.05.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
3-46619
kaon
2003-04-24 07:36
2003.05.15
Проблема с запросом?!


1-46805
Yanis
2003-05-02 15:05
2003.05.15
Что за ошибка.


1-46749
Lamerr
2003-05-05 09:57
2003.05.15
Работа с TChart


3-46622
Term
2003-04-23 10:17
2003.05.15
QuickReport, как сделать вертикальную надпись


14-46910
Карлсон
2003-04-28 16:27
2003.05.15
SMS-центр.