![]() |
|
|
|
|
#1
|
|||
|
|||
|
Мне нужно написать компонент типа Ttreeview с нуля, но не знаю как реализовать. Где можно найти исходник компонента TTreeview стандартного из Делфи?
|
|
#2
|
||||
|
||||
|
Зайди в модуль ComCtrls (из делфи), он как раз там описан.
|
|
#3
|
||||
|
||||
|
Только вот TTreeview он как-бы не сам по себе, он использует тучу вспомогательных классов. Их вы тоже будете переделывать с нуля?
|
|
#4
|
|||
|
|||
|
вообще, что бы быть совсем честным, TTreeView в Дельфи это всего лишь обертка над стандартным COM-контролом, так что можно написать и свою. Если же нужен пример именно полностью Дельфевого контрола, то лучше смотреть на что-то типа TOutLine (кажется так).
|
|
#5
|
|||
|
|||
|
Посмотрел код, понял что это сложно. Мне вообще для курсового надо, видимо придется убедить преподавателя, чтоб вместо описания нового класса создать потомок имеющегося.
|
|
#6
|
||||
|
||||
|
Сложно? Ну не знаю, я как-то делал "велосипед" - аналог радиогрупа - ничего невозможного. Примитивно, правда, но работает.
|
|
#7
|
||||
|
||||
|
Все рано или поздно проходят через написание своих компонентов. Было время ДОС, и была потрясная штука - Clipper для доступа к БД. Под нее мною была написана библиотека классов охватывающих весь визуальный и отчетный интерфейс пользователя. Очень успешно с помощью сего творения были реализованы несколько серьезных бухгалтерских проектов.
Был еще один проект когда только с помощью модуля Graph под TP7 была написана графическая оконная библиотека с весьма нетривиальной анимацией. |
|
#8
|
|||
|
|||
|
ок. есть такая проблема:
я пытаюсь сохранить в поле Data указатель на объект, но либо он неверно сохраняется либо я что-то не то делаю.. Код:
obj := TMyObject.Create;
TreeView1.Data := Pointer (obj);
ShowMessage ( PMyObject (TreeView1.Data)^.Name );
if Assigned (obj) then
FreeAndNil (obj);![]() |