САПР на Lazarus

Планы, идеология, архитектура и т.п.

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

Re: САПР на Lazarus

Сообщение zub » 29.10.2014 14:22:36

в настройках проекта поставлены следующие галки про манифест:
-use manifest
-enable DPI for Vista+
-execution level=asInvoker
-UI Access
Вроде ничего такого, правда последний пункт я хз что такое.
Вот версия без UI Access - https://yadi.sk/d/xATgwOd8cMwQf
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение Sharfik » 29.10.2014 15:36:21

Теперь все запускается :)
Интерфейс под Win8
https://yadi.sk/i/KAE8kh5PcN3ds
https://yadi.sk/i/qBiUbsy_cN3eC
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 760
Зарегистрирован: 20.07.2013 01:04:30

Re: САПР на Lazarus

Сообщение zub » 29.10.2014 16:02:27

>>Теперь все запускается
После ресхакера или моё без UI Access?

>>Интерфейс под Win8
Вроде всё ок. паршивенько изза настройки высоты ячеек под другое дпи и эмуляции "плавающих" тулбаров формами с доком - после небольшой настройки должно стать как я и задумывал
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение Sharfik » 29.10.2014 16:52:43

zub писал(а):паршивенько изза настройки высоты ячеек

А мне нравится, только если чуть чуть уменьшить высоту.

zub писал(а):После ресхакера или моё без UI Access?

Твое, без UI Access. У меня на работе ничего кроме AutoCAD нет)))
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 760
Зарегистрирован: 20.07.2013 01:04:30

Re: САПР на Lazarus

Сообщение zub » 29.10.2014 20:12:43

>>А мне нравится, только если чуть чуть уменьшить высоту.
Есть какие мысли как автоматически определить наиболее подходящую высоту интерфейсных элементов?
Думаю создавать временный дефолтный комбобокс и брать его высоту за основу, в винде работает, в gtk\qt непробовал
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение kazalex » 29.10.2014 22:08:58

zub писал(а):Есть какие мысли как автоматически определить наиболее подходящую высоту интерфейсных элементов?

Uses Themes;
...
ThemeServices.GetDetailSize(...);
...
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Re: САПР на Lazarus

Сообщение zub » 29.10.2014 22:25:27

>>ThemeServices.GetDetailSize(...);
нет, несработает (или я ненашел к чему привязаться). Восновном всё возвращает -1,-1, иногда проскакивают какието осмысленые значения, но они просто захардкожены в Themes, а не берутся из системы. Также в Themes много что не реализовано в gtk/qt видесетах
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение kazalex » 29.10.2014 23:19:06

zub писал(а):иногда проскакивают какието осмысленые значения, но они просто захардкожены в Themes, а не берутся из системы.

Захардкоженные значения в базовом классе. По идее, там каждый виджетсет реализует собственный ThemeServices, и он должен получать метрики от системы. Хотя всё зависит от полноты реализации, конечно.

Добавлено спустя 10 минут 37 секунд:
...в принципе, можно еще посмотреть GetSystemMetrics.
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Re: САПР на Lazarus

Сообщение zub » 29.10.2014 23:31:02

>>Хотя всё зависит от полноты реализации, конечно.
Пока пологаться на значения возвращаемые из ThemeServices не стоит, проверено((
С комбиком было бы всё чудесно - но он имеет актуальные, не захардкоженые параметры (мне требуется только высота) только после создания хэндла, т.е. в районе onpaint формы, а не в oncreate

Добавлено спустя 21 минуту 23 секунды:
>>...в принципе, можно еще посмотреть GetSystemMetrics.
пробовал, ничего конкретного там нет, а конструкциями вида
h:=GetSystemMetrics(SM_CYVSCROLL) + 2 * GetSystemMetrics(SM_CXBORDER);
добится адекватности неполучилось
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение kazalex » 30.10.2014 00:04:26

Ну, вот так работает из OnCreate формы:
Код: Выделить всё
With TComboBox.CreateParented(Handle) Do
  Try

   Self.Caption := Format('ComboBox.Height = %d', [Height]);

  Finally

   Free;

  End;

Проверил на XP и Ubuntu (GTK2) - везде актуальные значения.
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Re: САПР на Lazarus

Сообщение zub » 30.10.2014 00:24:10

Спасибо! ато я собирался с сплашскрином чтонибудь химичить, чтоб к OnCreate главной формы иметь рекомендуемую системой высоту

Добавлено спустя 1 час 27 минут 58 секунд:
Рано радовался. Данный способ вызывает случайные падения программы на выходе, в TApplication.Destroy

Добавлено спустя 1 час 6 минут 57 секунд:
Пришлось вынести TComboBox.CreateParented на сплэш форму, видимо он не дружит с anchordocking. Насколько я понимаю это больше хак чем законный метод.
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение zub » 16.11.2014 00:38:06

Приделал к инспектору автоопределение высоты строки, разные настройки (в том числе возможность возвращения старого вида, без тем)
Изображение
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение dedm0zaj » 16.11.2014 14:13:46

доброго времени суток. хотел спросить, а ты делаешь сборки только под х64 платформы (linux)? понимаю, что сейчас уже не вчера и у всех оперативки, как семечек : D но всё же хотелось бы иметь и х86 версию.
dedm0zaj
постоялец
 
Сообщения: 108
Зарегистрирован: 05.10.2012 19:55:20

Re: САПР на Lazarus

Сообщение zub » 16.11.2014 15:03:57

С кросскомпиляцией у меня както не сложилось(( могу делать сборки только win32, win64, lin64. На sf есть сборка для lin32 - но она старее поповой собаки. Если используешь транковые lazarus и fpc - проблем со сборкой быть недолжно, с релизными версиями есть небольшие косяки с декларацией некоторых функций и большие проблемы с генериками((

Давно хочу поставить lin32 для сборки, но то некуда, то лень
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение dedm0zaj » 16.11.2014 20:32:06

у меня получалось собирать виндовые биарники из под линукса. для этого надо пересобрать fpc и lazarus под эту самую винду. по идее для сборки lin32 из под lin64 процедура должна быть такой же.
а вообще, если мне сильно захочется, то сам соберу zcad из исходников. просто щас лень.
dedm0zaj
постоялец
 
Сообщения: 108
Зарегистрирован: 05.10.2012 19:55:20

Пред.След.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26

Рейтинг@Mail.ru