САПР на Lazarus

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

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

Re: САПР на Lazarus

Сообщение zub » 23.09.2018 12:30:23

Спасибо за критику. конструктивной критики много небывает
1 - Это моя нелюбовь к формошлепанью. Исправить тут что либо не представляется возможным. Разве что за жто возьмется кто то другой, не я
2 - скрин? размер и ручек и курсора настраивается на вкладке "отображение" в инспекторе - размер прицела, размер перекрестия, размер ручек. ЕМНИП перекрестие в процентах от размера рабочей области, остальное в пикселях
3 - настраиваемо. двигаешь сплитеры, в конце делаешь в меню настройкасохранить настройку окон по умолчанию, чтоб настройки не пропали с текущей сессией
можно настроить несколько раскладок окон, одну из них сделав пустой с гиганской областью отрисовки и переключать их налету комбобоксом (предвалительно включив соответствующий тулбар видпоказать_окнопанели_инструментовLayouts)
4 - нескончаемая стадия глубокой разработки. инсталятор сейчас просто трата времени. имхо
5 - поведение я копирую с автокада, такчто это классика))

Добавлено спустя 7 минут 27 секунд:
>>с закладками задвигающим и выдвигающими всяческие инструменты и инспекторы
Анхордокинг пока этого непозволяет((
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение Mirage » 23.09.2018 15:35:40

zub писал(а):А лазарь его разве поддерживает?


Должен, через lldb-mi. По крайней мере, в описании самого lldb-mi лазарь упоминается. Ну и в i-pascal точно поддерживается.

zub писал(а):С гит столкнулся впервые, как тут лучше именовать промежуточные релизы? с свн было просто - ставил номер ревизии, в гите насколько я понял номеров нет(( пока поставил колво комитов в репозитории


Каждый коммит идентифицируется хешем. Мне хватает. Если не хватает - есть теги.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: САПР на Lazarus

Сообщение veb86 » 23.09.2018 17:57:55

Alex2013 писал(а):5 Не очень удобное (точнее "не интуитивное ") перемещение объектов по идее кликнув в любой объект его можно перетащить зажав левую кнопку мыши, а в Z-Cad это у меня почему-то не получалось или точнее "получалось не всегда". :roll:
zub писал(а):5 - поведение я копирую с автокада, такчто это классика))

в Брикскаде эта фишка работает. Я думал что в автокаде тоже должна работать, но я не вкурсах. Я так понимаю Alex2013 имеет виду когда выделил группу объектов, потом зажал их левой кнопкой мыши и тянешь, и включается как бы перенос. А еще в брикскаде додумались, если переносить таким методом и зажать контрол во время переноса то происходит копирование объекта или группы объектов
veb86
новенький
 
Сообщения: 62
Зарегистрирован: 16.03.2016 12:58:35

Re: САПР на Lazarus

Сообщение zub » 23.09.2018 22:53:49

Mirage
>>Должен, через lldb-mi. По крайней мере, в описании самого lldb-mi лазарь упоминается. Ну и в i-pascal точно поддерживается.
Поддержка lldb в транке лазаря появилась чуть позже моих iкспериментов. сейчас пока некогда, да и хакинтош загнулся после давнгрейда компа, попозже продолжу
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение Alex2013 » 24.09.2018 19:21:28

zub писал(а):Спасибо за критику. конструктивной критики много небывает
1 - Это моя нелюбовь к формошлепанью. Исправить тут что либо не представляется возможным. Разве что за жто возьмется кто то другой, не я
2 - скрин? размер и ручек и курсора настраивается на вкладке "отображение" в инспекторе - размер прицела, размер перекрестия, размер ручек. ЕМНИП перекрестие в процентах от размера рабочей области, остальное в пикселях
3 - настраиваемо. двигаешь сплитеры, в конце делаешь в меню настройкасохранить настройку окон по умолчанию, чтоб настройки не пропали с текущей сессией
можно настроить несколько раскладок окон, одну из них сделав пустой с гиганской областью отрисовки и переключать их налету комбобоксом (предвалительно включив соответствующий тулбар видпоказать_окнопанели_инструментовLayouts)
4 - нескончаемая стадия глубокой разработки. инсталятор сейчас просто трата времени. имхо
5 - поведение я копирую с автокада, такчто это классика))

Добавлено спустя 7 минут 27 секунд:
>>с закладками задвигающим и выдвигающими всяческие инструменты и инспекторы
Анхордокинг пока этого непозволяет((


1 Так зачем формошлепать ? Можно динамически формы создавать прямо из кода .... Более того можно сделать простой удобный инструмент для создания стандартных диалогов (даже координаты и размер окна могут быть не нужны ).
2 Извиняюсь не нашел.
3 Возможно стоит сделать по примеру IDE лазаруса то есть добавить возможность "выдергивать" рабочую область в отдельное окно ? (Там можно работать и так и так )
4 Есть чертова куча разных "конструкторов инсталляций" и они настолько просты что тратить время на их изучение практически не нужно.
5 Z-Cad мне напоминает не Автокад, а ранний "компас" Например у автокада всегда была одна очень специфическая фишка: встроенная командная консоль полностью дублирующая все действия по созданию чертежа.
(Даже я именно под впечатлением от автокада добавил в свою программу что-то отдаленно похожие... только у меня список "команд" не редактируется как обычный текст "прямо из консоли" но есть возможность "ручного ввода команд" впрочем редактировать в форме "команды" тоже можно но не "в общем мемо" а "построчно" . )

Зы
Как обойтись без формошлепанья ? Например так ...
(Заметь нет ни какой надобности вводить координаты для добавления новых элементов )

Код: Выделить всё

// Добавить
procedure TF1.Button1Click(Sender: TObject);
begin
If self.ListBox1.ItemIndex <> -1 then
begin
// if ListBox1.ItemIndex in [0..20] the begin
C2P_ADD_Divider(ListBox1.Items[ListBox1.ItemIndex]);//Разделитель из списка

Case ListBox1.ItemIndex of
0:begin
//'Яркость'
C2P_ADD_INT('Интенсивость 0-255','100');
C2P_ADD_Bool('Включить фльтр','0');
end;

1:begin
//'Контраст'
C2P_ADD_INT('Интенсивость 0-255','100');
C2P_ADD_Bool('Включить фльтр','0');
end;

2:begin
//' Emboss '
C2P_ADD_Bool('Включить фльтр','0');
end;
3:begin
//' Зеркало  '
C2P_ADD_Bool('Включить фльтр','0');
end;
4:begin
//' Градиент серого '
C2P_ADD_Bool('Включить фльтр','0');
end;
5:begin
//' Инверсия '
C2P_ADD_Bool('Включить фльтр','0');
end;
6:begin
//' Перевернуть '
C2P_ADD_Bool('Включить фльтр','0');
end;
7:begin
//' Бинаризация  '
C2P_ADD_INT('Min 0-255','8');
C2P_ADD_INT('Max 0-255','20');
C2P_ADD_Bool('Включить фльтр','0');
end;
8:begin
//' Соляризация  '
C2P_ADD_INT('Интенсивость 0-255','100');
C2P_ADD_Bool('Включить фльтр','0');
end;
9:begin
//' Seamless '
C2P_ADD_INT('Интенсивость 0-255','100');
C2P_ADD_Bool('Включить фльтр','0');
end;
10:begin
//' Trace  '
C2P_ADD_INT('Интенсивость 0-255','1');
C2P_ADD_Bool('Включить фльтр','0');
end;
11:begin
//' Posterize '
C2P_ADD_INT('Интенсивость 0-255','100');
C2P_ADD_Bool('Включить фльтр','0');
end;
12:begin
//' ConvolveFilter '
C2P_ADD_INT('Фильтр 0-8','1');
C2P_ADD_INT('Edgenr 0-2','2');
C2P_ADD_Bool('Включить фльтр','0');
end;
13:begin
//'Рыбий глаз'
C2P_ADD_Float('Фокус 0.51-2.0 ','+0000.5100');
C2P_ADD_Bool('Включить фльтр','0');
end;
14:begin
//' HSV + '
C2P_ADD_Float('H  -360.0 - 360.0 ','+0000.0000');
C2P_ADD_Float('S  -1.0 - 1.0 ','+0000.0000');
C2P_ADD_Float('V  -1.0 - 1.0 ','+0000.0000');
C2P_ADD_Bool('Включить фльтр','0');
end;
15:begin
//' Простое сглаживание '
C2P_ADD_INT('Сдвиг','1');
C2P_ADD_INT('Повторы ','1');
C2P_ADD_Bool('Включить фльтр','0');
end;
16:begin
//' Фильтр Робертса '
C2P_ADD_INT('Порог 0-255 ','20');
C2P_ADD_Bool('Очистка','0');
C2P_ADD_Bool('Включить фльтр','0');
end;
17:begin
//' Фильтр Собела '
C2P_ADD_INT('Порог 0-255 ','200');
C2P_ADD_Bool('Очистка','0');
C2P_ADD_Bool('Включить фльтр','0');
end;

18:begin
//'Детектор Канни'
C2P_ADD_INT('Стадия 0-7','7');
C2P_ADD_Bool('RGB','0');
C2P_ADD_Bool('Включить фльтр','0');
end;

19:begin
//'Изменить разрешение'
C2P_ADD_INT('Ширина (px)','320');
C2P_ADD_INT('Высота (px)','200');
C2P_ADD_Bool('Включить фльтр','0');
end;
20:begin
//'Вернуть разрешение'
C2P_ADD_Bool('Включить фльтр','0');
  end;

21:begin
//'Скелетизация
C2P_ADD_Color('C','$00FF00');
C2P_ADD_Color('Pr','$AAAAAA');
C2P_ADD_Bool('Full','0');
C2P_ADD_Bool('Cl','0');
C2P_ADD_Bool('Включить фльтр','0');
  end;
//'Темпоральный след'
22:begin
  C2P_ADD_INT('Хвост 0-100','80');
  C2P_ADD_Bool('Включить фльтр','0');
end;
//'Выделить движение'
23:begin
  C2P_ADD_INT('Чуствительность','120');
  C2P_ADD_INT('Хвост ','10');
  C2P_ADD_Bool('Показать фон','1');
  C2P_ADD_Bool('Включить фльтр','0');
end
end; // Casse
  ID_ListView;
end
end;

Там правда есть возможность сделать диалоговую панель "совсем уж динамической" ...
Но начальный стартовый набор задается так ...

Код: Выделить всё
procedure TF1.FormCreate(Sender: TObject);
Var I:Integer;
begin
   DI_List:=Tlist.Create;
   ExBmp:=Nil;

ListBox1.Items.Text:=
'Яркость'#13#10+
'Контраст'#13#10+
' Emboss '#13#10+
' Зеркало '#13#10+
' Градиент серого '#13#10+
' Инверсия '#13#10+
' Перевернуть '#13#10+
' Бинаризация '#13#10+
' Соляризация '#13#10+
' Seamless    '#13#10+
' Trace       '#13#10+
' Posterize   '#13#10+
' ConvolveFilter '#13#10+
'Рыбий глаз'#13#10+
' HSV + '#13#10+
'Простое сглаживание'#13#10+
'Фильтр Робертса'#13#10+
'Фильтр Собела'#13#10+
'Детектор Канни'#13#10+
'Изменить разрешение'#13#10+
'Вернуть разрешение'#13#10+
'Скелетизация '#13#10+
'Темпоральный след'#13#10+
'Выделить движение';
ListBox1.ItemIndex:=0 ;
For I:=0 to ListBox1.Count-1 do
begin
ListBox1.ItemIndex:=i;
Button1Click(Sender);
end;

ID_ListView;

end;


а в ID_ListView; я просто и тупо добавляю контролы...
Это разумеется самый безобразный кусок "спагетти кода" но он может быть написан ОДИН РАЗ ДЛЯ ВСЕХ ДИАЛОГОВ.

Код: Выделить всё
// Сборка и показ инспектора данных
procedure TF1.ID_ListView;
var
PLS,PL,PL1,PL2:TPanel;
B:Tbutton;
E:TEdit;
CB:TCheckBox;
CBox:TComboBox;
C,DL_Top,I,j,er:LongInt;
S,s1:String;
Em:TMaskEdit;
Const
  Clist:Tlist=Nil;
  BP:Tpanel=nil;
begin

If Cfv then exit;  Cfv:=True;

if BP=Nil then Bp:=Panel4;
if Clist=Nil then Clist:=Tlist.Create;
panel4.Visible:=False;

// Очистка предыдущего состояния....
if CList.Count >0 then
   For I:=0 to CList.Count-1 do
          TControl(CList[I]).Free;
  CList.Clear;

  DL_Top:=ScrollBar1.Position;
  C:=panel2.Height div 25;
   for I:=DL_Top  to (DL_Top+C)-1 do
   if I <DI_List.Count then begin

   PL:=TPanel.Create(panel2);

   PL.Top:=(I-DL_Top)*25;PL.Height:=25;pl.Width:=panel2.Width;
         PL1:=TPanel.Create(pl);PL1.Height:=25;pl1.Width:=panel2.Width div 2;
         PL1.Caption:=PDI_Rec( DI_List[I])^.Name;

         case  PDI_Rec( DI_List[I])^.DType of
         DT_Str: begin
                   E:=TEdit.Create(pl);
                   E.OnKeyDown:=ID_KeyDown;
                   E.Left:=pl1.Width;E.Width:=pl1.Width; E.Height:=25;
                     If PDI_Rec(DI_List[I])^.Data <> nil  then
                     E.Text:=PString(PDI_Rec(DI_List[I])^.Data)^
                     else E.Text:='';

                   e.HelpContext:=I;E.OnChange:=EditChange;
                   pl.InsertControl(E);
                  end;

         DT_Int: begin
                   E:=TEdit.Create(pl);
                   e.OnKeyDown:=IntEditKeyDown;
                   E.Left:=pl1.Width;E.Width:=pl1.Width; E.Height:=25;

                   If PDI_Rec(DI_List[I])^.Data<> nil  then
                    E.Text:=PString(PDI_Rec(DI_List[I])^.Data)^
                   else E.Text:='';

                   e.HelpContext:=I;E.OnChange:=EditChange;
                   pl.InsertControl(E);
                  end;
  ...// и т. д.

      DT_Divider:begin
                  PL1.Align:=alClient;
                 end;
         end;
     pl.InsertControl(PL1);
    CList.Add(PL);
   end;

//Со списком чуть надежнее
if CList.Count >0 then
    For I:=0 to CList.Count-1 do
      bp.InsertControl(CList[I]);

   panel4.Visible:=true;
   CFV:=false;
end;

end.

Для инспектора данных это не очень хороший вариант но если сделать что-то похожее для диалогов то "шлепать формы" не понадобится от слова совсем . Доступ к данным идет "одной функцией" Function C2P_Get(N:Integer):String;.
Как-то так...
Код: Выделить всё
 
Procedure Draw_FX_List;
  Var I,J:Integer;
      S:String;

      Const CK:byte=$FF;
         R:TRect=(Left:0;Top:0;Right:0;Bottom:0 );
  begin

  If DI_List = Nil  then  exit;
  If DI_List.count >0 then
  For I:=0 to DI_List.count-1 do
  if PDI_Rec(DI_List[i])^.DType= DT_Divider then
     begin

     S:=PDI_Rec(DI_List[i])^.Name;

Case ListBox1.Items.IndexOf(S) of
  // 'Яркость'
   0:begin
    If ( C2P_Get(I+2)='1') and ( C2P_Get(I+1)<>'' )
              then Lightness(b,StrToInt(C2P_Get(i+1)));
   end;

   //'Контраст'
   1:begin
    If ( C2P_Get(I+2)='1') and ( C2P_Get(I+1)<>'' )
               then Contrast(b,StrToInt(C2P_Get(I+1)));
   end;

  // ' Emboss '
   2:begin
      If  C2P_Get(I+1)='1' then    Ucanny.Emboss(B);
   end;

// ......  и т.д.
   
   
   //  ' Бинаризация  '
   7: begin
     If  (C2P_Get(I+3)='1') and
      ( C2P_Get(i+1)<>'') and (C2P_Get(i+2)<>'')
      then  Ucanny.bBinarization(b,b,StrToInt(C2P_Get(i+1))
                                    ,StrToInt(C2P_Get(i+2)));
    end;

   // ......  и т.п.
   //-----------------
  end // Case


   end  // EndFor
  end; // End Draw_FX_List;

Последний раз редактировалось Alex2013 25.09.2018 00:39:51, всего редактировалось 1 раз.
Alex2013
долгожитель
 
Сообщения: 2924
Зарегистрирован: 03.04.2013 11:59:44

Re: САПР на Lazarus

Сообщение zub » 24.09.2018 21:45:53

1) Автогенерация сейчас в инспекторе. автогенерация в окне лучше небудет.
3) все уже выдергивается. Интерфейс можно в рантайме мышкой разобрать как хош https://imgur.com/a/Rxaq7mL и склеить как хош. Потом в рантайме переключаться между вариантами. Содержимое панелей инструметов иожно править в офлайне - это простейшие xml`ки
4) фиг с ним с временем на изучение. в цене время на поддержку. Оно никому ненадо, делать чтобы было - неготов
5) командная строка есть. но в зачаточном состоянии, к единому знаменателю пока непришол, есть несколько видов команд и соответственно несколько видов синтаксиса. устраивающего меня во всем варианта синтаксиса пока нет.

>>Как обойтись без формошлепанья ? Например так ...
ИМХО
приведеный код самый жесткий вариант формошлепства, ну и что что без дизайнера и координат... Для истиных ценителей, таксказать))
Я слабо себе представляю поддержку такого кода
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение veb86 » 24.09.2018 21:52:28

Alex2013 писал(а):3 Возможно стоит сделать по примеру IDE лазаруса то есть добавить возможность "выдергивать" рабочую область в отдельное окно ? (Там можно работать и так и так )

Это уже реализовано, все примерно так же как и в Лазарусе, так же можно все дернуть и в отдельном окне все делать.

Alex2013 писал(а):4 Есть чертова куча разных "конструкторов инсталляций" и они настолько просты что тратить время на их изучение практически не нужно.

Умоляю, кому нужен этот инсталер. куча прог, без инсталяции. Я думаю что это одно из самых последних над чем нужно задумываться.

Alex2013 писал(а):5 Z-Cad мне напоминает не Автокад, а ранний "компас" Например у автокада всегда была одна очень специфическая фишка: встроенная командная консоль полностью дублирующая все действия по созданию чертежа.


Я как проектировщик, который очень много времени работаю с клоном автокада, а так же умею работать с Компасом. Могу смело сказать что Вы заблуждаетесь. ZCAD очень похож на автокад. Я понимаю о чем вы говорить, в автокаде множество команд решается как бы скриптовыми методами, как мне кажется. Но если после автокада сесть за ZCAD кроме нехватки некоторых функций и наличия некоторых багов Вы особо ничего не заметите. Если Вы не профессиональный автокадовец, конечно. Компас первое время вызывает стойкое отвращение, потом тоже норм

Alex2013 писал(а):Как обойтись без формошлепанья ? Например так ...

Я конечно не специалист во всем этом, но недавно освоив XML сериализацию в C#.Net, для сохранения настроек и их редактирования(в блокноте), я испытал прям огромное удовольствие когда смог целый класс засунуть в XML-ку парой строчкой кода и потом из нее извлечь так же, если куда бы я и копал, так туда. А про формошлепывание, я думаю этот вопрос можно решить малой кровью. Просто весь данный список настроек из инспектора, затолкать в какой нибудь VirtualTreeView другом окошке настроек. как то так:
Код: Выделить всё
http://bricscad-russia.ru/files/pages/bricscad/interface3.png
(Кстате безумно удобно управлять настройками в виде списка, а внизу с всплывающими подсказками) .
Если учесть что наличие данных настроек в инспекторе меня вообще не напрягает, может в будущем я попробую с поддержкой zub вынести их из инспектора. Но мне кажется, что zub не станет ждать пока я созрею со своими лапками.

Добавлено спустя 3 минуты 48 секунд:
zub писал(а):5) командная строка есть. но в зачаточном состоянии, к единому знаменателю пока непришол, есть несколько видов команд и соответственно несколько видов синтаксиса. устраивающего меня во всем варианта синтаксиса пока нет

Если честно я вообще не представляю зачем нужна данная командная строка, никогда не вводил для рисования линии команду (line),мне кажется если и делать так горячие кнопки, ну и для олдскулов, конечно галочку в настройках что бы они вводили line, mtext, polyline, во веселуха.
Пользуюсь ей только во время тестирования собственного кода, далее кнопочка в интерфейсе и поехали :)
veb86
новенький
 
Сообщения: 62
Зарегистрирован: 16.03.2016 12:58:35

Re: САПР на Lazarus

Сообщение Alex2013 » 25.09.2018 00:55:54

По формам: я просто не понял суть токования термина "формошлепство" - новояз но такой "как услышал так и понял ". 8)
Но вообще что-то похожее есть например в Хайасме там все диалоги описаны в текстовых файлах (в формате языка сохранения схем (и по совместительству форм) SHA используемом там повсеместно ).
В Z-cаd это может быть выше поминаемый xml тоже явно уже и так полотно используемый .

По инсталлятору: да все именно так (Можно обойтись, не очень своевременно и т.д. ) НО есть одна функция автоматом получаемая при распространении "с инсталлятором" и резко повышающая удобство использования ЛЮБОЙ программы - удобная деинсталляция! :idea:

Командная строка и консоль к ней прилагающаяся может быть просто ДИКО УДОБНА при редактировании готового проекта ..
Даже в моем примитивном пока редакторе "не вполне понятного назначения " есть места где я был доволен как слон что есть возможность легкого доступа к "списку команд"...
( Например при отладке скриптов генерации HTML-кода и прорисовки элементов . )
ИзображениеИзображение
Так я прямо из "живого редактора" выдрал команду STAR 255 16777215 20 16-97 85 и тут же увидел результат работы скрипта прорисовки ....
А что бы я делал если бы там было только бинарное представление ? :roll:

Зы
Разумеется мои замечания просто "хотелки дилетанта" с очень отдаленными представлениями о задачах и целях Z-cаd
И вообще можно сказать "первые впечатления"...
Последний раз редактировалось Alex2013 25.09.2018 01:47:46, всего редактировалось 3 раз(а).
Alex2013
долгожитель
 
Сообщения: 2924
Зарегистрирован: 03.04.2013 11:59:44

Re: САПР на Lazarus

Сообщение zub » 25.09.2018 01:36:56

автоматическая генерация не даст хорошего результата. когданить потом, какойнить офигительный програмер добавит в зкад формы везде где надо))

Добавлено спустя 21 минуту 12 секунд:
>>А что бы я делал если бы там было только бинарное представление ? :roll:
в зкаде введи
line[enter]
100,100[enter]
200,200[enter]
бинарное представление этому никак не мешает
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение Alex2013 » 25.09.2018 16:42:02

Ты не понял ... я про не про возможность вводить команды "в ручном режиме" а про возможность их интерактивного создания и использования в уже готовом виде и в итоге при редактировании должен быть доступен некий "режим бейсика" .
То есть нарисовано в интерактивном режиме, а РЕДАКТИРОВАТЬ можно в том числе и как текст программы.
У меня "режим бейсика" для редактирования получаемых интерактивно изображений "не отходя от кассы" пока нет, он его элементы уже сейчас неплохо помогают .
Зы
Записи в "формате lst" ясное дело можно редактировать как текст и сейчас но это отдает анекдотом "про Чукчу и лампочку" ..
А вот если сделать нормальную встроенную консоль это будет совсем другое дело.

Зачатки инструмента для консольного редактирования видно ТУТ

Если зажав Ctrl кликнуть на элемент списка команд то можно редактировать объект как "команду" а можно как данные в табличке процесс "двунаправленный" + теперь есть и выделение на рабочем поле ... (Это пока чисто служебная фишка для отладки скриптов сборки и парсинга команды но не плохо иллюстрирует должна работать "идеологически верная" консоль и кстати диалог там динамический )
Alex2013
долгожитель
 
Сообщения: 2924
Зарегистрирован: 03.04.2013 11:59:44

Re: САПР на Lazarus

Сообщение zub » 25.09.2018 19:56:11

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

Re: САПР на Lazarus

Сообщение zub » 11.10.2018 15:42:14

Alex2013
3 Независимо от разрешения и размера экрана рабочие поле кажется ОЧЕНЬ небольшим .
( Может я не разобрался но проекту точно не помешает "режим чистого окна" с закладками задвигающим и выдвигающими всяческие инструменты и инспекторы )

Потыкался-помыкался, сворачиваемые-разворачиваемые доксайты добавить в анхордокинг у меня ума нехватит. Ограничился https://bugs.freepascal.org/view.php?id=34347 может ктонить поможет.

По просьбам сделал быстрый дисабле-енабле для комстроки, чтоб в выключеном состоянии можно было пользовать однобуквенные хоткеями, до этого момента они съедались тедитом комстроки который постоянно в фокусе. А полностью закрывать комстроку жалко - иногда она нужна
https://imgur.com/a/0vbQz89
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: САПР на Lazarus

Сообщение zub » 15.10.2018 23:03:53

Проверил возможность сборки на Lazarus2.0RC1&FPC3.0.4 - работает!
единственное, изза отсутствия в 3.0.4 rtl-generics пришлось его оформить лазарус пакетом.
соответственно при использовании 3.0.4 нужно доставить
cad_source\other\rtl-generics_for_FPC304 - это rtl-generics из транка
при использовании транкового компилятора нужно поставить
cad_source\other\rtl-generics_dummy\ - это пустая заглушка чтоб лазарус не ругался

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

Re: САПР на Lazarus

Сообщение Alex2013 » 16.10.2018 11:51:18

Zub я знал что ты монстр ... Даже создателей лазруса построил ! :D

По "закладкам" в твоем САПР: жаль разумеется но это явно не столь важно...
Тем более что есть возможность "растаскивать" интерфейс на несколько окон
(Мне хвастаться особо нечем - в моем проекте закладка пока одна на весь проект и та сделана совершенно "отверточным" способом интерфейс примитивный и "монолитный"... :roll: Но я надеюсь "продолжение последует" ! :idea: )

Причина Энабле/диисабле командной строки понятны. Но я бы вообще ее видимость убирал . (Или что-то от этого крешится ?)

А вообще прежде чем влезать со своими советами и идеями нужно будет более подробно вникнуть в твой проект(что признаю малость лениво... :oops: ), но "как только так сразу" ! (Чувствую там мне много полезного в плане идей найти можно ! )
Alex2013
долгожитель
 
Сообщения: 2924
Зарегистрирован: 03.04.2013 11:59:44

Re: САПР на Lazarus

Сообщение zub » 16.10.2018 12:41:08

>>Но я бы вообще ее видимость убирал . (Или что-то от этого крешится ?)
Согласен, енабле-дисабле заменил на хиде-шов. ничего не крешится
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Пред.След.

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

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

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

Рейтинг@Mail.ru