2013-05-08 2 views
1

Delphi7에서 dbgrid의 가로 스크롤링을 숨기거나 제거 할 수 있습니다. 나는 onResize 너비를 바꿈으로써 시도하지만 올바르게하지는 않았다.델파이 dbgrid에서 수평 스크롤을 숨길 수있는 방법

+0

를 사용하는 경우에는 스크롤 바가 표시되지 않도록 스크롤 막대를 숨기거나 colums의 크기를 조정 하시겠습니까? –

답변

5

이 시도 :

EnableScrollBar(DBGrid1.Handle,SB_HORZ,ESB_DISABLE_BOTH); 
ShowScrollBar(DBGrid1.Handle,SB_HORZ,False); 

문제가 스크롤을 비활성화이지만 :-(표시

다른 옵션은 다음과 같습니다

TDBgrid2 = class(TDBgrid) 
    private 
    procedure WMNCCalcSize(var msg: TMessage); message WM_NCCALCSIZE; 
    end; 
    . 
    . 
procedure TDBgrid2.WMNCCalcSize(var msg: TMessage); 
var 
    style: Integer; 
begin 
    style := getWindowLong(handle, GWL_STYLE); 
    if (style and WS_HSCROLL) <> 0 then 
    SetWindowLong(handle, GWL_STYLE, style and not WS_HSCROLL); 
    inherited; 
end; 

그것은 더 복잡하지만,

+0

두 번째 솔루션을 선택하는 경우 .dfm 파일의 클래스를 변경해야합니다. –

+0

스크롤 막대가 클릭 할 수없는 클라이언트 영역 -> 아래쪽 행을 선택할 수없는 –

1

데이비드의 완벽한 솔루션에 대한 후속 조치로, 변경하지 않아도됩니다. 전자 .DFM의 클래스와 동일한 유형 이름

TDBgrid = class(DBGrids.TDBgrid) 
    private 
    procedure WMNCCalcSize(var msg: TMessage); message WM_NCCALCSIZE; 
    end; 
+0

에 문제가 있습니다. 좋은 속임수! 엑스-) –