Форум: "KOL";
Текущий архив: 2009.11.01;
Скачать: [xml.tar.bz2];
ВнизГоризонтальная прокрутка у TreeView... Найти похожие ветки
← →
MTsv DN © (2007-12-03 18:10) [0]Всем привет...
Возник вопрос: как убрать только горизонтальную прокрутку у TreeView? Тот код, что я постоянно использую не прокатывает:WM_NCCALCSIZE:
begin
Style := GetWindowLong( frmMain.pnlDBJ_BT_CT.Handle, GWL_STYLE );
If (Style and WS_HSCROLL) <> 0 Then
SetWindowLong( frmMain.pnlDBJ_BT_CT.Handle, GWL_STYLE, Style and not WS_HSCROLL );
// SetWindowLong( frmMain.pnlDBJ_BT_CT.Handle, GWL_STYLE, Style or WS_VSCROLL );
inherited;
// Result := true;
end;
Если раскомментироватьResult := true;
, то получается как бы tvoNoScroll (т.е. скроллбаров нет), но прокрутка остается (это хорошо)... Пока можно и так использовать, но как-то "криво" это... А если раскомментировать:SetWindowLong( frmMain.pnlDBJ_BT_CT.Handle, GWL_STYLE, Style or WS_VSCROLL );
то это не решает проблему с "пропажей" вертикального скроллбара...
Может я слишком усложняю и есть более простой способ? У кого-нибудь есть идеи?
← →
MTsv DN (2007-12-03 18:36) [1]pnlDBJ_BT_CT - это TreeView. Забыл избавиться от своего названия...
← →
Дмитрий К © (2007-12-03 19:01) [2]
WM_NCCALCSIZE:
?
ShowScrollBar(tv.Handle,SB_HORZ,False);
← →
MTsv DN © (2007-12-03 19:10) [3]Респект... Работает...
← →
volniy_strelok (2008-04-02 17:59) [4]а не моглибы описать по подробнее куда нужно вписать
?
WM_NCCALCSIZE:
ShowScrollBar(tv.Handle,SB_HORZ,False)
← →
Compiler © (2008-04-02 18:33) [5]> куда нужно вписать
В OnMessage у TreeView"a
← →
volniy_strelok (2008-04-03 11:19) [6]
> В OnMessage у TreeView
Такого нет в инспекторе объектов
← →
Дмитрий К © (2008-04-03 11:56) [7]
> Такого нет в инспекторе объектов
TreeView или OnMessage?
← →
volniy_strelok (2008-04-03 13:06) [8]Очень смешно :)
Но я серьездно не нашол события OnMessage у TreeView
← →
Дмитрий К © (2008-04-03 13:37) [9]TKOLTreeView или TTreeView?
У TTreeView есть свойство HorzScrollBar.
← →
volniy_strelok (2008-04-03 14:50) [10]Да TTreeView из стандартной библиотеки.
Но там нет ни свойства HorzScrollBar
ни события OnMessage
← →
Дмитрий К © (2008-04-03 15:09) [11]
> нет свойства HorzScrollBar
Прошу прощения. Не туда посмотрел.
Для TTreeView будет примерно так:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls;
type
TMyTreeView = class(TTreeView)
private
procedure WMNCCalcSize(var Message: TMessage); message WM_NCCALCSIZE;
end;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
MyTreeView: TMyTreeView;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TMyTreeView }
procedure TMyTreeView.WMNCCalcSize(var Message: TMessage);
begin
ShowScrollBar(Handle,SB_HORZ,False);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
MyTreeView := TMyTreeView.Create(Self);
MyTreeView.Parent := Self;
end;
end.
хотя, оффтоп это все.
← →
volniy_strelok (2008-04-03 16:26) [12]хмм... у меня сейчас вот так
TMyTreeView = class(TTreeView)
private
Procedure WMNCCalcSize( Var msg: TMessage ); message WM_NCCALCSIZE;
end;
procedure TMyTreeView.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;
т.е. как я понимаю без написания собств коппонента не обойтись
← →
MTsv DN (2008-04-04 18:16) [13]А почему в этой ветке обсуждения про TTreeView??? Где модераторы???
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2009.11.01;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c