Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.05.11;
Скачать: [xml.tar.bz2];

Вниз

помогите найти TreeCheckListView   Найти похожие ветки 

 
VirEx ©   (2008-03-24 21:33) [0]

Критерии:
1. TreeView с колонками (column) (в принципе не обязательно)
2. каждый элемент содержит checkbox
3. бесплатный исходный код


 
Johnmen ©   (2008-03-24 21:53) [1]


> помогите найти

Как ты себе это представляешь?


 
DVM ©   (2008-03-24 21:59) [2]


> VirEx ©   (24.03.08 21:33)  

VirtualTreeView


 
DVM ©   (2008-03-24 22:00) [3]


> VirEx ©   (24.03.08 21:33)  

см скриншот. Такой?

http://www.soft-gems.net/index.php?option=com_content&task=view&id=12&Itemid=33


 
VirEx ©   (2008-03-25 10:19) [4]

Не нужен мне этот монструозный компонент, забыл его добавить в критерии как "только НЕ VirtualTreeView"

Нужен какой-нибудь потомок TreeView, но не это чудо юдо.
Зачем такой компонентище мелкой утилите?


 
Jeer ©   (2008-03-25 10:50) [5]


> бесплатный исходный код


"Даже собственный исходный код не является бесплатным" (С)

WinSDK

TreeView_SetItem, *_GetItem

Item.mask := TVIF_STATE;
Item.StateMask := TVIS_STATEIMAGEMASK;

Item.State := TVIS_CHECKED
or
Item.State := TVIS_CHECKED shr 1;

TreeView_SetItem(Handle, Item);


 
DVM ©   (2008-03-25 10:59) [6]


> Нужен какой-нибудь потомок TreeView, но не это чудо юдо.

Если чекбоксы еще можно добавить в стандарный TTreeView, то колонки как в ListView ты туда не добавишь. Не имеет стандартный виндовый контрол колонок. И никакой потомок TTreeView их добавить не сможет. Отсюда вывод - контрол должен быть сделан не на основе TTreeView, а следовательно маленьким он быть НЕ МОЖЕТ. Головой то думать надо.


 
Семеныч   (2008-03-25 11:04) [7]

Сбоку от TTreeView приляпываем TListView, делаем границу между ними  невидимой, заставляем их работать совместно, в TTreeView включаем показ птичек - и получаем сабж. Бесплатно, если не считать [5].


 
DVM ©   (2008-03-25 11:10) [8]


> Семеныч   (25.03.08 11:04) [7]

Не совсем красиво выйдет. Дерево TreeView по идее должно быть в первой колонке.


 
VirEx ©   (2008-03-25 11:11) [9]


>  [6] DVM ©   (25.03.08 10:59)

Может, пробовал компоненты из torru.net: ListView спаренный с TreeView, но там какие-то недоделки сплошные. Нельзя свернуть ветку, итемы выводятся с видоизмененными строками (добавляешь "line1", после запуска приложения отображается как "line1 00000000001"), добавление нода естественно через лишний .tv., а ковырять исходный код заново ради такой недоделки - бессмысленно.


>  [5] Jeer ©   (25.03.08 10:50)

Пробовал, работает, но при раскрытии/закрытии ветки флажок тоже cheked/uncheked


 
{RASkov} ©   (2008-03-25 11:12) [10]

> должно быть в первой колонке.

Дык можно и третий(TPanel) туда прилепить.... тот же монстр получится... только самодельный :)


 
DVM ©   (2008-03-25 11:17) [11]


> тот же монстр получится... только самодельный :)

Причем заведомо проигрывающий по всем статьям удобству и мощи Virtual TreeView.


 
DVM ©   (2008-03-25 11:18) [12]

Вообще то можно попробовать приляпать TTreeView внутрь первой колонки TListView.


 
{RASkov} ©   (2008-03-25 11:23) [13]

> [12] DVM ©   (25.03.08 11:18)

А может проще "крестик" и "чек" в первую колонку приляпать...., хотя нет, проще-таки наверное изучить монстра VirtualTreeView :)
В прочем может и есть что простенькое.... я не знаю. И сорри за оффтоп.)


 
b z   (2008-03-25 11:48) [14]


> А может проще "крестик" и "чек" в первую колонку приляпать

http://delphi.about.com/od/vclusing/l/aa092104a.htm
правда без колонок, но это не обязательно - из [0] :)


 
Семеныч   (2008-03-25 11:53) [15]

> DVM ©   (25.03.08 11:10) [8]

>  Дерево TreeView по идее должно быть в первой колонке.

Если приляпать ListView справа от TreeView и сделать границу между ними невидимой, то TreeView как раз и получится в первой колонке.


 
DVM ©   (2008-03-25 11:56) [16]


> Семеныч   (25.03.08 11:53) [15]

а заголовок?


 
Игорь Шевченко ©   (2008-03-25 12:01) [17]


> помогите найти


помогаю - http://www.torry.net - начни с этого url


 
VirEx ©   (2008-03-25 12:02) [18]


>  [17] Игорь Шевченко ©   (25.03.08 12:01)

[9]


 
Игорь Шевченко ©   (2008-03-25 12:07) [19]

VirEx ©   (25.03.08 12:02) [18]

Помогаю еще раз (последний) - http://www.google.com - тоже хороший ресурс


 
Jeer ©   (2008-03-25 12:07) [20]


> VirEx ©   (25.03.08 11:11) [9]


> Пробовал, работает, но при раскрытии/закрытии ветки флажок
> тоже cheked/uncheked


И что ? Логика поведения в твоих руках.


 
clickmaker ©   (2008-03-25 12:12) [21]


> [13] {RASkov} ©   (25.03.08 11:23)
> > [12] DVM ©   (25.03.08 11:18)
>
> А может проще "крестик" и "чек" в первую колонку приляпать

Кстати, вариант.
Хранить дерево как объект отдельно, а схлопывать-расхлопывать путем удаления-добавления пунктов в листвью


 
VirEx ©   (2008-03-25 12:44) [22]


> [14] b z   (25.03.08 11:48)

гут )


>  [21] clickmaker ©   (25.03.08 12:12)

если надумаешь своять сей гуи элемент - дай знать ;)


 
clickmaker ©   (2008-03-25 12:51) [23]


> [22] VirEx ©   (25.03.08 12:44)

я уже ваял что-то подобное ) Дерево из ListBox. Причем, на Win API и на плюсах.
Не то что бы я не знал про TreeView, просто из спортивного интереса


 
GlFox ©   (2008-03-25 12:56) [24]

Лепится такой компонент за полчаса на коленке используя THeaderControl + TTreeView (+ AdvancedCustomDrawItem())
Получится нечто типа как здесь: http://lis-zone.nm.ru/images/araneus/shfull.png
Только пример на картинке без чек-боксов, но и их пришить нетрудно.


 
Семеныч   (2008-03-26 10:52) [25]

> DVM ©   (25.03.08 11:56) [16]

> а заголовок?

А ShowColumnHeaders? А положить все это на панель и на нее же кинуть THeaderControl?

И т.д.


 
DVM ©   (2008-03-26 10:55) [26]


> А положить все это на панель и на нее же кинуть THeaderControl?

Тогда ListView вообще не нужен


 
VirEx ©   (2008-03-26 19:48) [27]

Еще вопросы возникли.
Решил добавить компоненту свойство DefaultStateList: Boolean при установке которого TreeView игнорирует StateImages, в качестве которых выступают картинки из ресурсов (по умолчанию).
В create гружу картинки:
FImageList.GetResource(rtBitmap, "CHEKED", 16, [lrTransparent], $FFFFFF);
установка свойства:
procedure TTreeCheckListView.SetDefaultStateList(const Value: Boolean);
begin
 FDefaultStateList := Value;
 case Value of
   True: begin
       TreeView_SetImageList(Handle, FImageList.Handle, TVSIL_STATE);
     end;
   False: if Assigned(StateImages) then
       TreeView_SetImageList(Handle, StateImages.Handle, TVSIL_STATE)
     else
       TreeView_SetImageList(Handle, 0, TVSIL_STATE);
 end;
end;

но в режиме дизайна, вместо значков - пустое место на размер картинки (16х16)
как это победить?


 
VirEx ©   (2008-03-27 15:56) [28]

Удалено модератором
Примечание: Создание пустых сообщений



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

Форум: "Прочее";
Текущий архив: 2008.05.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.008 c
15-1206945625
TUser
2008-03-31 10:40
2008.05.11
Чтение файлов


2-1208144663
Balkonnn
2008-04-14 07:44
2008.05.11
Запись в качестве свойства класса


2-1207817112
ChaosAD
2008-04-10 12:45
2008.05.11
Ehlib DialogFind


15-1206529654
Галинка
2008-03-26 14:07
2008.05.11
Можно ли как то в моцилле предопределить размер шрифта?


2-1208080633
Megatron
2008-04-13 13:57
2008.05.11
Считывать данные с реестра





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский