Вопросы по LCL
Модератор: Модераторы
Re: Вопросы по LCL
еще возник вопрос:
как попросить лазаря чтоб он будучи собран под Qt по умолчанию собирал проект под gtk2? сижу под Qt а проект приходится собирать под гтк2 ввиду отсутствия кутешной ревлизации TOpenGLControl. Проект собираю то в винде, то в линуксе, парит каждый раз лазить в свойства и менять lcltarget
как попросить лазаря чтоб он будучи собран под Qt по умолчанию собирал проект под gtk2? сижу под Qt а проект приходится собирать под гтк2 ввиду отсутствия кутешной ревлизации TOpenGLControl. Проект собираю то в винде, то в линуксе, парит каждый раз лазить в свойства и менять lcltarget
Re: Вопросы по LCL
Попытался сделать интерфейс на AnchorDocking, в вики сказано:
Но чето получается только с формами, не формы создаются, но на экране не показываются. Гденибудь можно глянуть пример с работающими на AnchorDocking не формами?
Not only forms, but any TWinControl can be made dockable.
Но чето получается только с формами, не формы создаются, но на экране не показываются. Гденибудь можно глянуть пример с работающими на AnchorDocking не формами?
Re: Вопросы по LCL
Почитал лицензию anchordocking.pas. Я правильно понял что я могу его использовать в закрытых проектах также как LCL?
Также непонял как ограничить размер DockSite (главное окно). Хотелось бы чтоб у него была нулевая высота, т.е. отображалось только строка меню, а ресайз происходил за счет пристыкованых элементов. Получается всё наоборот - ресайз за счет DockSite, пристыкованные элементы высоты не меняют. Во вложении (анимированный gif) видно что я имею ввиду
{ 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) видно что я имею ввиду
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Вопросы по LCL
Судя по приведённой ниже лицензии - да.zub писал(а):Почитал лицензию anchordocking.pas. Я правильно понял что я могу его использовать в закрытых проектах также как LCL?
Ну и лучше поздно чем никогда:
Есть два способа. Если не обязательно собирать через IDE, можно сделать скрипт сборки через lazbuild --widgetset. Если собирать через IDE обязательно, можно заюзать build modes из trunk. В английской локализации это Project - Project Options - Compiler Options - Build Modes. Там можно создать отдельный режим для сборки с другим виджетсетом и в Linux переключаться на него. А если ещё и сохранять сессию не в lpi а в отдельный lps-файл, то можно на каждой сборочной машине держать свой lps-файл с подходящим режимом сборки по умолчанию.zub писал(а):как попросить лазаря чтоб он будучи собран под Qt по умолчанию собирал проект под gtk2?
Re: Вопросы по LCL
Odyssey
спасибо за наводку.
Anchordocking никто не пользует?
Там для создания главной формы используется
где
Т.е. прицепить к доксити окно мы можем всяко, но не akClient. Имхо это не правильно и не позволяет создать полностью цепляемый-перецепляемый интерфейс, т.к. всегда остается "лишний" сплитер в случае пустой главной формы.
Еще не понял (вернее понял что никак) как создать dockable окошко которое в undockable состоянии будет всегда наверху, FormStyle:=fsStayOnTop игнорируется.
Сплощное разочарование
В английской локализации это 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 игнорируется.
Сплощное разочарование
Re: Вопросы по LCL
Еще камень в огород Anchordocking.
В некоторых конфигурациях сцепленных окошек самое нижнее почемуто самопроизвольно чуток увеличивается при любых операциях с изменением содержимого формы - добавление элементов, изменение caption и т.д.
на gif`е видно как нижняя панель увеличивается в момент как на ней отображаются координаты курсора (при попадании курсора на чертеж) Это какнибудь можно побороть?
Увеличение происходит только 1 раз за сеанс программы и не зависит от высоты этого нижнего окошка - какая бы не была, она просто увеличивается
В некоторых конфигурациях сцепленных окошек самое нижнее почемуто самопроизвольно чуток увеличивается при любых операциях с изменением содержимого формы - добавление элементов, изменение caption и т.д.
на gif`е видно как нижняя панель увеличивается в момент как на ней отображаются координаты курсора (при попадании курсора на чертеж) Это какнибудь можно побороть?
Увеличение происходит только 1 раз за сеанс программы и не зависит от высоты этого нижнего окошка - какая бы не была, она просто увеличивается
Re: Вопросы по LCL
Сорри за оффтопик, IDE Lazarus'а на данный момент уже поддерживает анчордокинг?!
Судя по скриншоту - получается, что да.
Если да - то где включить в настройках?
Судя по скриншоту - получается, что да.
Если да - то где включить в настройках?
Re: Вопросы по LCL
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 секунд:
п.с. Если точнее, то не особо заморачивался с этим делом...
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 секунд:
п.с. Если точнее, то не особо заморачивался с этим делом...
- Иван Шихалев
- энтузиаст
- Сообщения: 1138
- Зарегистрирован: 15.05.2006 11:26:13
- Откуда: Екатеринбург
- Контактная информация:
Re: Вопросы по LCL
Mr.Smart писал(а):The IDE can be made dockable. Install either the package AnchorDockingDsgn
У меня куда-то пропали палитра компонентов и кнопки быстрого доступа
Re: Вопросы по LCL
AnchorDockingDsgn нормально в IDE работает, с EasyDockMgrDsgn переодически были проблемы но тоже вроде работал.
Но для редактора форм это не лучший выбор, при нажатии кнопок в окне IDE формы проваливаются под него - их бы тоже придокить к IDE
Но для редактора форм это не лучший выбор, при нажатии кнопок в окне IDE формы проваливаются под него - их бы тоже придокить к IDE
- Иван Шихалев
- энтузиаст
- Сообщения: 1138
- Зарегистрирован: 15.05.2006 11:26:13
- Откуда: Екатеринбург
- Контактная информация:
Re: Вопросы по LCL
У меня — ненормально. EasyDockMgrDsgn чуть получше, если ничего не докить в главное окно... как только туда попадает редактор — пиши пропало — размер по вертикали так и не увеличивается, и схватиться у редактора не за что...
Но вообще, картинка радует. Думаю, это скоро допилят.
Но вообще, картинка радует. Думаю, это скоро допилят.
Re: Вопросы по LCL
У меня файл раскладки хранится с давних времен, обновляю-пересобираю лазаря, но стоит подключить AnchorDockingDsgn - всё сразу приатачено в привычном виде. Наверно поэтому проблем не замечаю
Re: Вопросы по LCL
Написал багрепорт, но по традиции, пока к репорту не приложишь патч - дело не пойдет)). попытался сам помыкаться - в TControl.DoAllAutoSize без бутылок двух-трех понять чтото трудно.
какие методы нужно ковырять чтоб найти виновника изменения размеров, я думал хватит SetBounds(ALeft, ATop, AWidth, AHeight: integer) но на момент прихода туда неверных значений - этиже неверные значения уже сидят в BoundsRect.
какие методы нужно ковырять чтоб найти виновника изменения размеров, я думал хватит SetBounds(ALeft, ATop, AWidth, AHeight: integer) но на момент прихода туда неверных значений - этиже неверные значения уже сидят в BoundsRect.
Re: Вопросы по LCL
Вопросы всё не кончаются..
Как запретить некоторому TAction выполняться по шорткату?
Например есть экшен с шорткатом на кнопку delete - удаляет выделенный пользователем объект на чертеже. Нужно сделать чтоб когда фокус например в какомлибо TEdit - экшен не выполнялся по нажатию delete, а из меню и тулбаров был доступен.
Как запретить некоторому TAction выполняться по шорткату?
Например есть экшен с шорткатом на кнопку delete - удаляет выделенный пользователем объект на чертеже. Нужно сделать чтоб когда фокус например в какомлибо TEdit - экшен не выполнялся по нажатию delete, а из меню и тулбаров был доступен.
Re: Вопросы по LCL
В событие TActionList.OnUpdate делать проверку вида:
Код: Выделить всё
...
aActionDelete.Enable:=not eEdit.Focesed
...
