САПР на Lazarus

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

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

Re: САПР на Lazarus

Сообщение zub » 19.06.2017 22:14:35

Попытался сделать "человечий" докинг https://bugs.freepascal.org/view.php?id=24703
Докается и ресайзится всё хорошо, а вот с сохранением\восстановлением большие проблемы. Если кто в силах помочь - буду благодарен.

Стандартный AnchorDocking не устраивает тем что не умеет первоначально докать "внутрь" главной формы - пытаюсь добавить TAnchorDockPanel на которую первый док будет сделан по "правилу" akClient, а дальше как обычно в анхордокинге. Т.е. нужно вот такое поведение http://imgur.com/a/DyPNR
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение zub » 21.06.2017 00:38:40

Проблемы с сохранением-восстановлением вроде решил. Еще потестю и перепишу докинг

Добавлено спустя 8 часов 41 секунду:
Наверно даже переступлю через себя и сделаю основную форму наформошлепаной))
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение zub » 04.07.2017 00:37:07

Вроде получилось что-то более-менее годное. если собрать патчи из
https://bugs.freepascal.org/view.php?id=24703 - анхордокинг на панель
https://bugs.freepascal.org/view.php?id=32027 - докающиесе тулбары
То получится что-то вроде https://sourceforge.net/projects/zcad/f ... z/download - анхордокинг в центре, панельки по периметру - так я и хочу сделать в зкаде.
Но 32027 в транк добавляют, а 24703 похоже никому кроме меня ненадо((
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение zub » 02.08.2017 12:55:15

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

Re: САПР на Lazarus

Сообщение olegy123 » 04.08.2017 16:13:24

Zub, у меня были подозрение, что XML обходишь стороной потому что не любишь.
Не знаю как точнов Lazarus-е с lfm, но в Delphi можно было сохранять состояние компонента в виде DFM файла.

Добавлено спустя 2 минуты 4 секунды:
посмотри TXMLPropStorage
http://wiki.freepascal.org/TXMLPropStorage
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: САПР на Lazarus

Сообщение Sharfik » 04.08.2017 16:39:50

TXMLPropStorage - Быстрее, чем выпить бутылку.
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 759
Зарегистрирован: 20.07.2013 01:04:30

Re: САПР на Lazarus

Сообщение zub » 04.08.2017 19:57:36

Не люблю и не умею.
Тут скорее нужен будет TXMLConfigStorage, чтоб запихать всё вместе с настройками анхордокинга, но наверно разница невелика.

Залил на сф бинарники 2291 для посмотреть "новый" докинг и панельки, теперь зкад собирается только с патченым отсюда https://bugs.freepascal.org/view.php?id=24703 анхордокингом, последняя ревизия работающая с стандартным докингом - 2289

Добавлено спустя 3 минуты 53 секунды:
>>Не знаю как точнов Lazarus-е с lfm, но в Delphi можно было сохранять состояние компонента в виде DFM файла.
В лазаре тоже можно сохранять\загружать lfm в рантайме, но нужно нормальное решение, костылей итак давно хватает))
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение olegy123 » 04.08.2017 20:40:52

zub писал(а):Не люблю и не умею.

А зря.. мне вообще XML помог выстроить зависимости в программе. Когда сложно было определить "кто яйцо, а кто курица". То с написанием XML стразу же видно стало какая структура должна быть в работе.
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: САПР на Lazarus

Сообщение zub » 04.08.2017 23:01:51

В данном случае мне нужно просто сохранить положение тулбаров. Никакие другие "волшебные" свойства хмл ненадо))

Добавлено спустя 13 часов 26 минут 15 секунд:
Тыкаю палочкой http://svn.shamangrad.net/zcad/trunk/ca ... sutils.pas
Код: Выделить всё
  <ToolBarsConfig>
    <CoolBar0 Name="CoolBarU">
      <ToolBar0 Name="ToolBarU"/>
    </CoolBar0>
    <CoolBar1 Name="CoolBarL"/>
    <CoolBar2 Name="CoolBarR"/>
    <FloatToolbar0 Name="ToolBarR" BoundsRectTop="76" BoundsRectLeft="731" BoundsRectRight="759" BoundsRectBottom="531"/>
    <CoolBar3 Name="CoolBarD"/>
  </ToolBarsConfig>

ToolBarU лежит на CoolBarU, ToolBarR в "плавающем" состоянии с такимито координатами.

Нарисовалась еще проблема - плавающие тулбары по умолчанию создаются на TCustomDockForm и крадут фокус у формы при назатии кнопок. Фокус вернуть не проблема, но при этом "моргают" декорации окон(( чем можно заменить TCustomDockForm не крадущим фокус?
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение olegy123 » 05.08.2017 13:48:19

zub писал(а):Никакие другие "волшебные" свойства хмл ненадо))

Заниматься проектированием и не уметь промышленно XML-ить, это нереально..
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: САПР на Lazarus

Сообщение Лекс Айрин » 05.08.2017 19:15:38

olegy123 писал(а):Заниматься проектированием и не уметь промышленно XML-ить, это нереально..


Когда придумали CADы, то XML и в проекте не было. Он в нем, не особо и нужен. Это лишь один из многих модных языков разметки.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: САПР на Lazarus

Сообщение zub » 05.08.2017 22:53:51

olegy123
Это какаято подмена понятий, мне надо сохранить\загрузить панельки. XML-ить, да еще в пром масштабах мне без надобности.
ИМХО - xml популярный и почемуто всеми продвигаемый как универсальная панацея - недоуниверсальный недоформат. Посмотри тотже svg - будь любезен парсить патчи ручками
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение Sharfik » 06.08.2017 03:28:14

zub писал(а):ИМХО - xml популярный и почему то всеми продвигаемый как универсальная панацея - недоуниверсальный недоформат.

Не формат, а способ разметки формата файлов. Как сам решишь, так и будет задан формат чтения/записи.
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 759
Зарегистрирован: 20.07.2013 01:04:30

Re: САПР на Lazarus

Сообщение zub » 06.08.2017 03:36:50

В первом приближении сохранение-загрузка панелей заработала, теперь предстоит довольно сильно перелопатить гуй - разделить тулбары и формы.
http://imgur.com/a/V2jAK
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение Sharfik » 06.08.2017 03:39:08

zub писал(а):Нарисовалась еще проблема - плавающие тулбары по умолчанию создаются на TCustomDockForm и крадут фокус у формы при назатии кнопок. Фокус вернуть не проблема, но при этом "моргают" декорации окон(( чем можно заменить TCustomDockForm не крадущим фокус?

Не знаю как в Unix, но в Windows у меня были проблемы с морганием при рисовании на канве и тогда использовал две процедуры что ниже. При создании контроллов их владельца тоже надо блокировать на обновление картинки.
Код: Выделить всё
procedure BeginScreenUpdate(hwnd: THandle);
begin
  try
  SendMessage(hwnd, WM_SETREDRAW, 0, 0);
  finally

  end;
end;

procedure EndScreenUpdate(hwnd: THandle; erase: Boolean);
begin
  try
  SendMessage(hwnd, WM_SETREDRAW, 1, 0);
  {RedrawWindow(hwnd, nil, 0, DW_FRAME + RDW_INVALIDATE +
    RDW_ALLCHILDREN + RDW_NOINTERNALPAINT); 
  if (erase) then
    Windows.InvalidateRect(hwnd, nil, True); }

  finally

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

Пред.След.

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

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

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

Рейтинг@Mail.ru