Конференция "KOL" » ScrollBox и стрелки скроллбаров [Delphi, Windows]
 
  • shilou (10.06.10 01:47) [0]
    В ScrollBox не обрабатывается нажатие на стрелки скроллбаров.
    Чтобы исправить это, надо добавить в NewScrollBox эти две строчки:

     Result.FScrollLineDist[ 0 ] := 16;
     Result.FScrollLineDist[ 1 ] := 16;



    Я сделал вот так:


    function NewScrollBox( AParent: PControl; EdgeStyle: TEdgeStyle;
            Bars: TScrollerBars ): PControl;
    const Edgestyles: array[ TEdgeStyle ] of DWORD = ( WS_DLGFRAME, SS_SUNKEN, 0, 0, 0);
    var SBFlag: Integer;
    begin
     SBFlag := EdgeStyles[ EdgeStyle ];
     if sbHorizontal in Bars then
       SBFlag := SBFlag or WS_HSCROLL;
     if sbVertical in Bars then
       SBFlag := SBFlag or WS_VSCROLL;

     Result := _NewControl( AParent, 'ScrollBox', WS_VISIBLE or WS_CHILD or
            SBFlag, EdgeStyle = esLowered, nil );
     
     Result.FScrollLineDist[ 0 ] := 16;
     Result.FScrollLineDist[ 1 ] := 16;
     
     Result.AttachProc( WndProcForm ); //!!!
     Result.AttachProc( WndProcScrollBox );
     Result.AttachProc( WndProcDoEraseBkgnd );
     Result.fIsControl := TRUE;
    end;



    Из NewScrollBoxEx их теперь можно убрать.
 
Конференция "KOL" » ScrollBox и стрелки скроллбаров [Delphi, Windows]
Есть новые Нет новых   [120349   +19][b:0][p:0.001]