Форум: "Прочее";
Текущий архив: 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