Вопросы по LCL

Вопросы программирования и использования среды Lazarus.

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

Re: Вопросы по LCL

Сообщение zub » 26.10.2010 19:18:12

еще возник вопрос:

как попросить лазаря чтоб он будучи собран под Qt по умолчанию собирал проект под gtk2? сижу под Qt а проект приходится собирать под гтк2 ввиду отсутствия кутешной ревлизации TOpenGLControl. Проект собираю то в винде, то в линуксе, парит каждый раз лазить в свойства и менять lcltarget
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Вопросы по LCL

Сообщение zub » 08.12.2010 11:41:13

Попытался сделать интерфейс на AnchorDocking, в вики сказано:
Not only forms, but any TWinControl can be made dockable.

Но чето получается только с формами, не формы создаются, но на экране не показываются. Гденибудь можно глянуть пример с работающими на AnchorDocking не формами?
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Вопросы по LCL

Сообщение zub » 11.12.2010 14:42:56

Почитал лицензию anchordocking.pas. Я правильно понял что я могу его использовать в закрытых проектах также как LCL?
{ Unit implementing anchor docking.

Copyright (C) 2010 Mattias Gaertner mattias@freepascal.org

This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version with the following modification:

As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent modules,and
to copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the terms
and conditions of the license of that module. An independent module is a
module which is not derived from or based on this library. If you modify
this library, you may extend this exception to your version of the library,
but you are not obligated to do so. If you do not wish to do so, delete this
exception statement from your version.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
for more details.

Также непонял как ограничить размер DockSite (главное окно). Хотелось бы чтоб у него была нулевая высота, т.е. отображалось только строка меню, а ресайз происходил за счет пристыкованых элементов. Получается всё наоборот - ресайз за счет DockSite, пристыкованные элементы высоты не меняют. Во вложении (анимированный gif) видно что я имею ввиду
У вас нет необходимых прав для просмотра вложений в этом сообщении.
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Вопросы по LCL

Сообщение Odyssey » 11.12.2010 15:30:19

zub писал(а):Почитал лицензию anchordocking.pas. Я правильно понял что я могу его использовать в закрытых проектах также как LCL?
Судя по приведённой ниже лицензии - да.

Ну и лучше поздно чем никогда:
zub писал(а):как попросить лазаря чтоб он будучи собран под Qt по умолчанию собирал проект под gtk2?
Есть два способа. Если не обязательно собирать через IDE, можно сделать скрипт сборки через lazbuild --widgetset. Если собирать через IDE обязательно, можно заюзать build modes из trunk. В английской локализации это Project - Project Options - Compiler Options - Build Modes. Там можно создать отдельный режим для сборки с другим виджетсетом и в Linux переключаться на него. А если ещё и сохранять сессию не в lpi а в отдельный lps-файл, то можно на каждой сборочной машине держать свой lps-файл с подходящим режимом сборки по умолчанию.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Вопросы по LCL

Сообщение zub » 20.12.2010 00:49:47

Odyssey
В английской локализации это Project - Project Options - Compiler Options - Build Modes

спасибо за наводку.


Anchordocking никто не пользует?
Там для создания главной формы используется
Код: Выделить всё
    procedure MakeDockSite(AForm: TCustomForm; Sites: TAnchors;
                           ResizePolicy: TADMResizePolicy;
                           AllowInside: boolean = false);

где
Код: Выделить всё
  TAnchorKind = (akTop, akLeft, akRight, akBottom);
  TAnchors = set of TAnchorKind;


Т.е. прицепить к доксити окно мы можем всяко, но не akClient. Имхо это не правильно и не позволяет создать полностью цепляемый-перецепляемый интерфейс, т.к. всегда остается "лишний" сплитер в случае пустой главной формы.

Еще не понял (вернее понял что никак) как создать dockable окошко которое в undockable состоянии будет всегда наверху, FormStyle:=fsStayOnTop игнорируется.

Сплощное разочарование :cry:
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Вопросы по LCL

Сообщение zub » 16.01.2011 16:20:55

Еще камень в огород Anchordocking.
В некоторых конфигурациях сцепленных окошек самое нижнее почемуто самопроизвольно чуток увеличивается при любых операциях с изменением содержимого формы - добавление элементов, изменение caption и т.д.
на gif`е видно как нижняя панель увеличивается в момент как на ней отображаются координаты курсора (при попадании курсора на чертеж) Это какнибудь можно побороть?
Увеличение происходит только 1 раз за сеанс программы и не зависит от высоты этого нижнего окошка - какая бы не была, она просто увеличивается
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Вопросы по LCL

Сообщение GrayEddy » 16.01.2011 21:00:58

Сорри за оффтопик, IDE Lazarus'а на данный момент уже поддерживает анчордокинг?!
Судя по скриншоту - получается, что да.
Если да - то где включить в настройках?
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Re: Вопросы по LCL

Сообщение Mr.Smart » 16.01.2011 21:08:15

GrayEddy
The IDE can be made dockable. Install either the package AnchorDockingDsgn or EasyDockMgrDsgn.
Если честно, то у меня ни хрена не получилось...

Добавлено спустя 1 минуту 12 секунд:
http://wiki.freepascal.org/New_IDE_features_since#Docked_IDE

Добавлено спустя 1 минуту 13 секунд:
п.с. Если точнее, то не особо заморачивался с этим делом...
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Вопросы по LCL

Сообщение Иван Шихалев » 16.01.2011 21:18:26

Mr.Smart писал(а):The IDE can be made dockable. Install either the package AnchorDockingDsgn

У меня куда-то пропали палитра компонентов и кнопки быстрого доступа :)
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Re: Вопросы по LCL

Сообщение zub » 16.01.2011 21:22:40

AnchorDockingDsgn нормально в IDE работает, с EasyDockMgrDsgn переодически были проблемы но тоже вроде работал.
Но для редактора форм это не лучший выбор, при нажатии кнопок в окне IDE формы проваливаются под него - их бы тоже придокить к IDE
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Вопросы по LCL

Сообщение Иван Шихалев » 16.01.2011 21:30:10

У меня — ненормально. EasyDockMgrDsgn чуть получше, если ничего не докить в главное окно... как только туда попадает редактор — пиши пропало — размер по вертикали так и не увеличивается, и схватиться у редактора не за что...

Но вообще, картинка радует. Думаю, это скоро допилят.
Аватара пользователя
Иван Шихалев
энтузиаст
 
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург

Re: Вопросы по LCL

Сообщение zub » 16.01.2011 22:04:24

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

Re: Вопросы по LCL

Сообщение zub » 19.01.2011 12:57:10

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

какие методы нужно ковырять чтоб найти виновника изменения размеров, я думал хватит SetBounds(ALeft, ATop, AWidth, AHeight: integer) но на момент прихода туда неверных значений - этиже неверные значения уже сидят в BoundsRect.
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Вопросы по LCL

Сообщение zub » 20.01.2011 14:49:19

Вопросы всё не кончаются..
Как запретить некоторому TAction выполняться по шорткату?
Например есть экшен с шорткатом на кнопку delete - удаляет выделенный пользователем объект на чертеже. Нужно сделать чтоб когда фокус например в какомлибо TEdit - экшен не выполнялся по нажатию delete, а из меню и тулбаров был доступен.
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Вопросы по LCL

Сообщение Mr.Smart » 20.01.2011 14:55:58

В событие TActionList.OnUpdate делать проверку вида:
Код: Выделить всё
...
aActionDelete.Enable:=not eEdit.Focesed
...
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Пред.След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru
cron