Нужна помощь по менеджеру свойств (Инспектору объектов)

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Ответить
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 839
Зарегистрирован: 20.07.2013 01:04:30

Нужна помощь по менеджеру свойств (Инспектору объектов)

Сообщение Sharfik »

На Delphi написал небольшой модуль с классом. Смысл в том, что в список передавались свойства которые мне надо и в виде компонентов редактирования отображались как инспектор объектов. Отображение, обработка изменений, кнопки вызова дополнительных редакторов и т.д. Все работало, не идеально, но работало долго. При переносе на Lazarus компилируемый результат оставил желать лучшего. Создаваемые компоненты, во время выполнения программы стали каким то чудом наслаиваться друг на друга и т.д. Пора переделывать временную нужду на что то серьезное видимо. Вот вопрос, как лучше сделать, есть три варианта:

1. Убрать в существующем модуле работу с созданием компонентов, переделать на рисование Canvas и отображение и создание редакторов полей только по запросу.
2. Сделать редактор свойств на основе VirtualTree
3. Еще как то, по типу примера из examples\objectinspector
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Юзаю вариант аналогичный 1 вполне доволен
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 839
Зарегистрирован: 20.07.2013 01:04:30

Сообщение Sharfik »

Если ты про ZCAD, я думал ты как то из 3-го сделал 1й. А не сам с нуля все.
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Да, про него. Инспектор там полностью сделаный на коленке. В последних версиях добавил отрисовку графики в полях инспектора и кнопки вызова допредакторов
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 839
Зарегистрирован: 20.07.2013 01:04:30

Сообщение Sharfik »

оффтоп: А русские пути файлов?)) :roll:
Гонял на той неделе какую то версию с генпланом dwg, плохо ему стало, не прочел. А dxf вариант нормально, только кажется шрифты были не читаемые.
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Русские пути файлов - куогда выйдет fpc 2.8 ))
ДВГ было в порядке спортивного развлечения - получилось расшифровать автодесковские препоны... сделал только импорт линий из двг2004 - дальше по мере необходимости, которой пока не предвидится.
Нечитаемые шриифты - скорее всего от версии dxf - надо было пробовать с dxf2000 - лучше всего поддерживается, в более поздних внутри все тексты лежат в utf8, а zcad расчитывает на анси
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 839
Зарегистрирован: 20.07.2013 01:04:30

Сообщение Sharfik »

Поправь в диалоге фильтр расширений, чтобы кроме расширения была указана версия там, как в автокаде, тогда понятней будет, что ему подсовывать.
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Не, не буду, всетаки другие версии поддерживаются... хоть и недоделано, лучше забить на лень и доделать)) А про то что основной dxf2000 и так пишу везде
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 839
Зарегистрирован: 20.07.2013 01:04:30

Сообщение Sharfik »

zub писал(а):Не, не буду, всетаки другие версии поддерживаются... хоть и недоделано, лучше забить на лень и доделать)) А про то что основной dxf2000 и так пишу везде

Это в программе должно быть видно, перед открытием окна открытия документа, люди справку не читают. Идеально было бы два фильтра просто "dxf2000" и "dxf2004 и позже", если разницы кроме кодировки нет, то разница в раскодировании была бы.
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Видно какая конкретно версия должно быть при сохранении, при открытии файлы ничем не отличаются - просто *.dxf. Вот добавить ругани в history можно, в случае выявление "недоподдерживаемой" версии
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

Sharfik писал(а):2. Сделать редактор свойств на основе VirtualTree


Я использовал этот вариант, т.к. свойств могло быть много (сотни) и умение сворачивать ветки очень кстати. Да и другие его умения. Классный компонент.
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Первый вариант сворачиваемость не отменяет. Дело вкуса писать свое или юзать почти готовое
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 839
Зарегистрирован: 20.07.2013 01:04:30

Сообщение Sharfik »

zub писал(а):Первый вариант сворачиваемость не отменяет. Дело вкуса писать свое или юзать почти готовое

Не то что вкуса, а избавления себя от проблемы с переносимостью или проблемы с прорисовкой базы. В зависимости какие грабли приятнее.
К примеру в TurboDelphi нельзя подцепить компоненты внешние, TreeView руками создавал и настраивал, так же как свой PropertyList. При переносе кода в lazarus среда послала меня нафиг с TreeView, исходники его не работали до тех пор, пока не установил компонент как надо, бред там какой то.
Мой PropertyList нормально работает в Delphi, но Scrollbox на основе которого собран класс под лазарусом не прокручивается как надо, не работают ловушки скрола мыши.

Пойдешь налево в болоте утонешь, пойдешь направо время потеряешь, пойдешь прямо - на все забьешь.
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Я компоненты не использую, т.к. не люблю пользовать дизайнера и пишу всего одну программу)) Инспектор у меня сделан на форме из соображений докабельности и юзает Scrollbox в составе TForm - в винде никаких проблем нет. Qt начал поддерживать скролл на форме всего несколько месяцев назад, тоже вроде без проблем. C gtk была проблема при скроле колесом мышки, слал багрепорт - на днях пофиксили. Такчто всё вроде ок со скролингом
Ответить