Страница 10 из 57

Re: САПР на Lazarus

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

Re: САПР на Lazarus

СообщениеДобавлено: 29.10.2014 15:36:21
Sharfik
Теперь все запускается :)
Интерфейс под Win8
https://yadi.sk/i/KAE8kh5PcN3ds
https://yadi.sk/i/qBiUbsy_cN3eC

Re: САПР на Lazarus

СообщениеДобавлено: 29.10.2014 16:02:27
zub
>>Теперь все запускается
После ресхакера или моё без UI Access?

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

Re: САПР на Lazarus

СообщениеДобавлено: 29.10.2014 16:52:43
Sharfik
zub писал(а):паршивенько изза настройки высоты ячеек

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

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

Твое, без UI Access. У меня на работе ничего кроме AutoCAD нет)))

Re: САПР на Lazarus

СообщениеДобавлено: 29.10.2014 20:12:43
zub
>>А мне нравится, только если чуть чуть уменьшить высоту.
Есть какие мысли как автоматически определить наиболее подходящую высоту интерфейсных элементов?
Думаю создавать временный дефолтный комбобокс и брать его высоту за основу, в винде работает, в gtk\qt непробовал

Re: САПР на Lazarus

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

Uses Themes;
...
ThemeServices.GetDetailSize(...);
...

Re: САПР на Lazarus

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

Re: САПР на Lazarus

СообщениеДобавлено: 29.10.2014 23:19:06
kazalex
zub писал(а):иногда проскакивают какието осмысленые значения, но они просто захардкожены в Themes, а не берутся из системы.

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

Добавлено спустя 10 минут 37 секунд:
...в принципе, можно еще посмотреть GetSystemMetrics.

Re: САПР на Lazarus

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

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

Re: САПР на Lazarus

СообщениеДобавлено: 30.10.2014 00:04:26
kazalex
Ну, вот так работает из OnCreate формы:
Код: Выделить всё
With TComboBox.CreateParented(Handle) Do
  Try

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

  Finally

   Free;

  End;

Проверил на XP и Ubuntu (GTK2) - везде актуальные значения.

Re: САПР на Lazarus

СообщениеДобавлено: 30.10.2014 00:24:10
zub
Спасибо! ато я собирался с сплашскрином чтонибудь химичить, чтоб к OnCreate главной формы иметь рекомендуемую системой высоту

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

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

Re: САПР на Lazarus

СообщениеДобавлено: 16.11.2014 00:38:06
zub
Приделал к инспектору автоопределение высоты строки, разные настройки (в том числе возможность возвращения старого вида, без тем)
Изображение

Re: САПР на Lazarus

СообщениеДобавлено: 16.11.2014 14:13:46
dedm0zaj
доброго времени суток. хотел спросить, а ты делаешь сборки только под х64 платформы (linux)? понимаю, что сейчас уже не вчера и у всех оперативки, как семечек : D но всё же хотелось бы иметь и х86 версию.

Re: САПР на Lazarus

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

Давно хочу поставить lin32 для сборки, но то некуда, то лень

Re: САПР на Lazarus

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