Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Полоса прокрутки на 2 окна.


Автор: Evgen24 29.5.2008, 15:42
Как можно сделать 1 полосу прокрутки на 2 окна TMemo в билдере? Чтобы при ее перемещении передвигались одновременно 2 окна?

Автор: Palladin 29.5.2008, 19:16
Отлавливай передвижение первого и двигай второе, и наоборот
P.S. Запутанно говоришьsmile

Добавлено через 2 минуты и 19 секунд
Или на маусвел забиньди чтоб если курсор над мемо и "колесиком" двигают двигались сразу 2 memo

Автор: Evgen24 30.5.2008, 14:06
А пример можете привести?  smile 

Автор: fish9370 4.6.2008, 12:21
в момент захвата мышью бегунка в Memo1 возникает событие, для которого пишется обработчик, в котором посылается сообщение второму мемо (Memo2), который отловив аналогичное сообщение произведет аналогичное дейтсвие..

это теория, на практике происходит рассинхронизация.. во всяком случае у меня была такая проблема.. я отказался от этой идеи.. и сам бы был рад посмотреть на успешную реализацию..

Автор: Rrader 4.6.2008, 13:37
Цитата(fish9370 @  4.6.2008,  19:21 Найти цитируемый пост)
и сам бы был рад посмотреть на успешную реализацию..

Ну можно просабклассить Memo, и дублировать нужные события.
Код

LRESULT APIENTRY MyWndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
    if ((Msg == WM_HSCROLL) || (Msg == WM_VSCROLL) || (Msg == WM_MOUSEWHEEL)) {
      Form1->Memo1->Perform(Msg, wParam, lParam);
    }
    return (CallWindowProc((FARPROC)GetWindowLong(hWnd, GWL_USERDATA),
      hWnd, Msg, wParam, lParam));
}
//------------------------------------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
  SetWindowLong(Memo2->Handle, GWL_USERDATA,
    SetWindowLong(Memo2->Handle, GWL_WNDPROC, (LONG)MyWndProc));
}

Автор: fish9370 7.6.2008, 22:15
спасибо Rrader, попробую на досуге..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)