Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TTreeView с CheckBox'ами [D7]


maxs ©   (2008-03-13 21:12:00) 

Нужен TTreeView c CheckBox'ами, что посоветуете: докурчивать стандартный TTreeView для использования галочек или посоветуте подыскать уже готовый компонент, если да то какой?

Спасибо.


MetalFan   (2008-03-16 12:51:00) [1]

ладно, VirtualTrees более функциональные в любом случае...


ПостОвый терминатор   (2008-03-16 12:50:00) [2]


> MetalFan ©   (16.03.08 12:40) [8]

А 15 миллионов узлов не пробовал? Юзер остался бы доволен "чеканьем" в таком дереве:(
Где ты видел такие деревья?


MetalFan   (2008-03-16 12:40:00) [3]

да всем. добавь 1'000'000 узлов и посмотри как оно работать будет.


MsGuns   (2008-03-15 20:30:00) [4]

>MetalFan ©   (15.03.08 00:24) [6]
>а вообще в идеале забить на медленное TTreeView

И чем это оно "медленное" ?


MetalFan   (2008-03-15 00:24:00) [5]

а вообще в идеале забить на медленное TTreeView и использовать более продвинутое и быстрое TVirtualDraw(или String)Tree


Malik   (2008-03-14 23:15:00) [6]

Даеш возможность флажков:
SetWindowLong(TreeView1.Handle,GWL_STYLE,GetWindowLong(TreeView1.Handle,GWL_STYL E) or TVS_CHECKBOXES);

Позволяет ставить флажок:
procedure   SetNodeChecked(Node   :TTreeNode;   Checked   :Boolean);
 const
     TVIS_CHECKED   =   $2000;
 var
     TvItem   :TTVItem;
 begin
     FillChar(TvItem,   SizeOf(TvItem),   0);
     with   TvItem   do   begin
         hItem:=   Node.ItemId;
         Mask:=   TVIF_STATE;
         StateMask:=   TVIS_STATEIMAGEMASK;
         if   Checked   then
             TvItem.State:=TVIS_CHECKED
         else
             TvItem.State:=TVIS_CHECKED   shr   1;
         TreeView_SetItem(Node.TreeView.Handle,   TvItem);
     end;
 end;

Возвращает значение флажка:
Function TVGetCheck(TV: TTreeView; Node: TTreeNode): Boolean;
Var Item: TTVItem;
Begin
With Item Do Begin
   hItem:=Node.ItemId;
   mask:=TVIF_STATE;
   TV.Perform(TVM_GETITEM,0,Integer(@Item));
   Result:=Bool((State and $2000) shr 13);
   End; {With}
End;

ЗЫ Когда-то этим тоже болел((( Пришлось с какого-то толи китайского, толи японского сайта стянуть :D


Ник   (2008-03-14 15:24:00) [7]


> maxs   (13.03.08 21:12)


SetWindowLong(TreeView1.Handle,
              GWL_STYLE,
              GetWindowLong(TreeView1.Handle,
              GWL_STYLE) or WM_VSCROLL);


позволит тебе использовать "галочки"


031178   (2008-03-14 14:25:00) [8]

http://forum.sources.ru/index.php?showtopic=147339


031178   (2008-03-14 14:19:00) [9]

Где то видел компонент что то типа ......TreeView, так вот там точно были крыжики поищи по инету !!!


Jeer   (2008-03-14 14:17:00) [10]

Что тебепроще - то и делай.


Наверх

Титульная страница Поиск, карта сайта Написать письмо