Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.20;
Скачать: CL | DM;

Вниз

ScrollBar в Treeview   Найти похожие ветки 

 
Димыч ©   (2007-03-22 13:58) [0]

Как заставить Treeview не показывать линйку прокрутки (ScrollBar)?


 
Ega23 ©   (2007-03-22 14:25) [1]

Удалить узлы. Все.  :)


 
clickmaker ©   (2007-03-22 14:28) [2]

TVS_NOSCROLL


 
Димыч ©   (2007-03-22 14:29) [3]

TVS_NOSCROLL - это как? :)


 
clickmaker ©   (2007-03-22 14:30) [4]

это стиль. Окна TreeView


 
Димыч ©   (2007-03-22 14:42) [5]

Если я правильно понял то это придется пользоваться для создания Treeview"а функцией CreateWindowEx. Только вот программа уже написана, нельзя ли для Treeview использовать что то вроде  CreateParams(var Params: TCreateParams); override; как для формы?


 
Димыч ©   (2007-03-22 14:57) [6]

Попытался создать новый класс:
type
 Ttreeview_plus = class(TTreeView)
   procedure CreateParams(var Params: TCreateParams); override;
end;

и даже вот так

type
 Ttreeview_plus = class(TCustomTreeView)
   procedure CreateParams(var Params: TCreateParams); override;
end;

выдаёт ошибку при компиляции:

[Error] Unit10.pas(10): Unsatisfied forward or external declaration: "Ttreeview_plus.CreateParams"


 
RASkov   (2007-03-22 15:03) [7]

> [6] Димыч ©   (22.03.07 14:57)

Ну так реализацию кто делать будет?


 
Димыч ©   (2007-03-22 15:07) [8]

Ну да правильно, уже понял. Так же понял что сделал вторую ошибку - класто я переделал, а Делфя говорит мол класс у него TTreeview а ему присваивается TTreeview_plus, и предлагает исправить это дело. Вообщем либо мне всетаки придется заново TTreeview в программу внядрять либо я незнаю... Подскажите как это сделать правильно


 
RASkov   (2007-03-22 15:15) [9]

> [8] Димыч ©   (22.03.07 15:07)

может так, как вариант:
type
 Ttreeview_plus = class(TTreeView)
   procedure CreateParams(var Params: TCreateParams); override;
 end;
 TTreeView = class(Ttreeview_plus);

 TForm1 = class(TForm)
  TreeView1: TTreeView;
.....

implementation
.........
{Ttreeview_plus}
procedure Ttreeview_plus.CreateParams(var Params: TCreateParams);
begin

end;
.....


 
Димыч ©   (2007-03-22 15:24) [10]

Проглатил! Я правда струдом понимаю как такое возможно. Получается что эторавносильно такому коду:

type
Ttreeview = class(TTreeView)
...

А как теперь грамотно написать в CreateParams изменение стиля окна?


 
Димыч ©   (2007-03-22 15:40) [11]

не могу найти константу TVS_NOSCROLL, она вроде как не существует. НАшел вот такие WS_EX_LEFTSCROLLBAR,WS_EX_RIGHTSCROLLBAR, больше ничего не нашел


 
RASkov   (2007-03-22 15:51) [12]

> А как теперь грамотно написать в CreateParams изменение
> стиля окна?

Взять старый стиль окна... выкинуть ненужное, добавить нужное... установить получившийся новый.


 
clickmaker ©   (2007-03-22 15:52) [13]

\Delphi7\Source\Rtl\Win\CommCtrl.pas


 
RASkov   (2007-03-22 15:55) [14]

> не могу найти константу TVS_NOSCROLL

CommCtrl.pas
TVS_NOSCROLL            = $2000;

Может не совсем то, но может пригодится:
http://www.yandex.ru/yandsearch?rpt=rad&text=TVS_NOSCROLL
там всего пять ссылок....


 
Димыч ©   (2007-03-22 16:07) [15]

Скролл пропал. :) Только вот TreeView перестал реагировать на следующий код:

M.Msg := WM_VSCROLL;
   M.ScrollCode := SB_Lineup;
   form10.TreeView1.Dispatch(M);
   Application.ProcessMessages;

- програмная прокрутка. Т.е. прокрутка стала невозможна. :) Видимо затея моя обречена на провал.


 
Димыч ©   (2007-03-22 16:09) [16]

Для справки (написал вот так):

Uses CommCtrl;

...

procedure TTreeview_plus.CreateParams(var Params: TCreateParams);
begin
inherited;
params.Style:=params.Style or TVS_NOSCROLL;
end;



Страницы: 1 вся ветка

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

Наверх




Память: 0.5 MB
Время: 0.047 c
15-1176835024
ANTPro
2007-04-17 22:37
2007.05.20
Военкомат


2-1177790801
dzhagr
2007-04-29 00:06
2007.05.20
Ошибка SQL


9-1150452720
Kostyanich
2006-06-16 14:12
2007.05.20
Редактор для huf-файла


15-1177046995
NewUser2
2007-04-20 09:29
2007.05.20
PHP


15-1176975282
Knight
2007-04-19 13:34
2007.05.20
Белая маршрутизация...