Форум: "KOL";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
ВнизЕще о KOLTabControl Найти похожие ветки
← →
Terminus (2004-05-20 21:51) [0]Господа! :)
Еще один вопрос про KOLTabControl
Допустим, есть две закладки. Кладем на первую что-нибудь. Я попробовал
GroupBox. Затем пишем в KOLForm.OnShow:
GroupBox1.Align:=caClient;
Суть в том, что если при загрузке программы открыта будет первая закладка (на которой GroupBox лежит) выравнивание происходит. А если любая другая - фиг. :) Очевидно, что это баг, но может кто-то уже с этим научился бороться?
P.S.: Только, плз, не надо давать умных советов вроде "выравнивай все в
IDE". Если я так делаю - значит надо :)
← →
Gandalf (2004-05-20 23:09) [1]Я тоже пробовал все работает... D7 KOLnMCK 1.91 WinXP Rus SP1+
← →
SPeller © (2004-05-21 02:32) [2]Это не баг. Просто невидимые контролы не выравниваются.
← →
RTWolf © (2004-05-21 10:01) [3]Кстать у меня еще вопрос возник: у меня WinXP с какой-нить темой, заходим в свойства Мой компутер и видим как там сделаны закладки, т.е. там есть фон с небольшим цветовым градиентом, как сделать это в кол а то все на сером фоне как-то не прикольно выглядит. Манифест в проге у меня есть
← →
Bezols (2004-05-21 10:43) [4]Сам градиент отрисуй или KolGradientPanel прилепи
← →
Terminus (2004-05-21 14:48) [5]SPeller
Мда, это не баг, это просто недоработка (а жаль). Просто в обычных (не KOL) приложениях такой проблемы нет...
← →
Gandalf © (2004-05-21 15:51) [6]Возможно стоит сказать Кладову он поправит.
← →
Ajax © (2004-05-21 16:39) [7]Кстати насчет фона на панелях. Действительно есть такая тема, причем выглядит это как будто фон есть, а на него сверху положена панель стандартного цвета, потому что по краям фон присутствует. Как бы это поправить?
← →
Terminus (2004-05-21 20:10) [8]Да говорил уже Кладову. Еще до форума. Ответ:
"может и баг. Не знаю. Кто-нибудь даст исправление, будеи думать, и по возможности исправлять. Меня самого это не беспокоит. Я просто стараюсь делать проще. Align кстати можно форсировать по событию:
GlobalAlign( родитель )."
Что такое GlobalAlign, и почему он не упоминается в исходниках KOL я не понял, и переспрашивать не стал :)
← →
Gandalf (2004-05-21 22:18) [9]1) Имелось в виду Global_Align
2) Попробуйте поправить
....
procedure DoAlign( Allowed: TAligns );
var I: Integer;
C: PControl;
R, R1: TRect;
W, H: Integer;
ChgPos, ChgSiz: Boolean;
begin
for I := 0 to P.fChildren.fCount - 1 do
begin
C := P.fChildren.fItems[ I ];
if not C.ToBeVisible then continue; // <- вот это убрать
...
← →
SPeller © (2004-05-21 22:35) [10]
> if not C.ToBeVisible then continue; // <- вот это убрать
Я при написании своего плагина для ТС как раз эту строчку и закомментировал. Нодо бы у самого Владимира спроосить для чего это условие было поставлено. Я пока не понял.
← →
Vladimir Kladov (2004-05-22 11:33) [11]это чтобы не пытаться выравнивать контролы, которые в действительности не видны. Может получиться казус, если имеется к примеру пара контролов, которые скрываются и показываются в динамике. Если это условие убрать, место под них будет. Правильнее исправить ToBeVisible. Но там надо много тестировать. Исправите - дайте знать. Меня пока что устраивает форсировать выравнивание при необходимости.
← →
Terminus (2004-05-23 01:13) [12]1) Имелось в виду Global_Align
Гут, потом попробую :). Хотя пора проблема решалась уже отпала необходимость в решении в силу посторонних причин...
2) Попробуйте поправить
Димыч, с каких пор мы на "Вы"? :) Аж неудобно...
← →
Gandalf © (2004-05-23 12:49) [13]Это я в массы кинул - потому и "вы". ;)
Вообще забавная вещь с выравниваем, может кто даст пример мне нерабочий, я не особо напрягался - но вопроизвести не смог.
ЗЫ: Ты я так понимаю свой проект поднимаешь по просмотру форматов?
← →
SPeller © (2004-05-23 13:17) [14]Пример - у меня в плагине. Там основная программа меняет размеры окна пока оно ещё не видимо. Поэтому хотя своиство Visible у моих контролов установлено в True, выравнивание не происходит, и появляется на экране фигня вместо нормально выравнянных контролов.
← →
Vladimir Kladov (2004-05-23 13:43) [15]скорее всего дело не в невидимости, а в том, что Handle еще не создан. Форсировать создание окна формы: Form.GetWindowHandle;
← →
Terminus (2004-05-23 16:32) [16]To Gendalf
Нет, это редактор для игры...
Ну, в общем, создаешь TabControl с двумя закладками
Кладешь на первую закладку что-угодно, что можно выравнить
Пишешь в KOLForm.OnShow:
что-угодно.Align:=caClient;
Потом переключаешься на вторую закладку и загружаешь прогу. Только чтобы при загрузке открытой была именно вторая закладка. Так вот при таком раскладе "что-угодно" не выровнится. :|
← →
Gandalf © (2004-05-24 11:54) [17]Ага. Надо поглядеть... SPeller а где твой плагин взять?
← →
SPeller © (2004-05-24 13:58) [18]http://spellersoft.narod.ru/peviewer.htm
Только, без исходников :)
← →
GMax (2004-05-25 19:14) [19]у меня отсутствовало выравнивание в таком случае:
форма создаётся с visible=false;
во время выполнения (по нажатию на кнопку) делается form.show и видим невыровненные контролы
← →
Gandalf © (2004-05-25 20:39) [20]Всем спасибо... изучаю.
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.042 c