Нужна помощь по менеджеру свойств (Инспектору объектов)
Модератор: Модераторы
Нужна помощь по менеджеру свойств (Инспектору объектов)
На Delphi написал небольшой модуль с классом. Смысл в том, что в список передавались свойства которые мне надо и в виде компонентов редактирования отображались как инспектор объектов. Отображение, обработка изменений, кнопки вызова дополнительных редакторов и т.д. Все работало, не идеально, но работало долго. При переносе на Lazarus компилируемый результат оставил желать лучшего. Создаваемые компоненты, во время выполнения программы стали каким то чудом наслаиваться друг на друга и т.д. Пора переделывать временную нужду на что то серьезное видимо. Вот вопрос, как лучше сделать, есть три варианта:
1. Убрать в существующем модуле работу с созданием компонентов, переделать на рисование Canvas и отображение и создание редакторов полей только по запросу.
2. Сделать редактор свойств на основе VirtualTree
3. Еще как то, по типу примера из examples\objectinspector
1. Убрать в существующем модуле работу с созданием компонентов, переделать на рисование Canvas и отображение и создание редакторов полей только по запросу.
2. Сделать редактор свойств на основе VirtualTree
3. Еще как то, по типу примера из examples\objectinspector
Юзаю вариант аналогичный 1 вполне доволен
Если ты про ZCAD, я думал ты как то из 3-го сделал 1й. А не сам с нуля все.
Да, про него. Инспектор там полностью сделаный на коленке. В последних версиях добавил отрисовку графики в полях инспектора и кнопки вызова допредакторов
оффтоп: А русские пути файлов?)) 
Гонял на той неделе какую то версию с генпланом dwg, плохо ему стало, не прочел. А dxf вариант нормально, только кажется шрифты были не читаемые.
Гонял на той неделе какую то версию с генпланом dwg, плохо ему стало, не прочел. А dxf вариант нормально, только кажется шрифты были не читаемые.
Русские пути файлов - куогда выйдет fpc 2.8 ))
ДВГ было в порядке спортивного развлечения - получилось расшифровать автодесковские препоны... сделал только импорт линий из двг2004 - дальше по мере необходимости, которой пока не предвидится.
Нечитаемые шриифты - скорее всего от версии dxf - надо было пробовать с dxf2000 - лучше всего поддерживается, в более поздних внутри все тексты лежат в utf8, а zcad расчитывает на анси
ДВГ было в порядке спортивного развлечения - получилось расшифровать автодесковские препоны... сделал только импорт линий из двг2004 - дальше по мере необходимости, которой пока не предвидится.
Нечитаемые шриифты - скорее всего от версии dxf - надо было пробовать с dxf2000 - лучше всего поддерживается, в более поздних внутри все тексты лежат в utf8, а zcad расчитывает на анси
Поправь в диалоге фильтр расширений, чтобы кроме расширения была указана версия там, как в автокаде, тогда понятней будет, что ему подсовывать.
Не, не буду, всетаки другие версии поддерживаются... хоть и недоделано, лучше забить на лень и доделать)) А про то что основной dxf2000 и так пишу везде
zub писал(а):Не, не буду, всетаки другие версии поддерживаются... хоть и недоделано, лучше забить на лень и доделать)) А про то что основной dxf2000 и так пишу везде
Это в программе должно быть видно, перед открытием окна открытия документа, люди справку не читают. Идеально было бы два фильтра просто "dxf2000" и "dxf2004 и позже", если разницы кроме кодировки нет, то разница в раскодировании была бы.
Видно какая конкретно версия должно быть при сохранении, при открытии файлы ничем не отличаются - просто *.dxf. Вот добавить ругани в history можно, в случае выявление "недоподдерживаемой" версии
-
Mirage
- энтузиаст
- Сообщения: 881
- Зарегистрирован: 06.05.2005 20:29:07
- Откуда: Russia
- Контактная информация:
Sharfik писал(а):2. Сделать редактор свойств на основе VirtualTree
Я использовал этот вариант, т.к. свойств могло быть много (сотни) и умение сворачивать ветки очень кстати. Да и другие его умения. Классный компонент.
Первый вариант сворачиваемость не отменяет. Дело вкуса писать свое или юзать почти готовое
zub писал(а):Первый вариант сворачиваемость не отменяет. Дело вкуса писать свое или юзать почти готовое
Не то что вкуса, а избавления себя от проблемы с переносимостью или проблемы с прорисовкой базы. В зависимости какие грабли приятнее.
К примеру в TurboDelphi нельзя подцепить компоненты внешние, TreeView руками создавал и настраивал, так же как свой PropertyList. При переносе кода в lazarus среда послала меня нафиг с TreeView, исходники его не работали до тех пор, пока не установил компонент как надо, бред там какой то.
Мой PropertyList нормально работает в Delphi, но Scrollbox на основе которого собран класс под лазарусом не прокручивается как надо, не работают ловушки скрола мыши.
Пойдешь налево в болоте утонешь, пойдешь направо время потеряешь, пойдешь прямо - на все забьешь.
Я компоненты не использую, т.к. не люблю пользовать дизайнера и пишу всего одну программу)) Инспектор у меня сделан на форме из соображений докабельности и юзает Scrollbox в составе TForm - в винде никаких проблем нет. Qt начал поддерживать скролл на форме всего несколько месяцев назад, тоже вроде без проблем. C gtk была проблема при скроле колесом мышки, слал багрепорт - на днях пофиксили. Такчто всё вроде ок со скролингом
