Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.16;
Скачать: CL | DM;

Вниз

Еще о 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 вся ветка

Текущий архив: 2005.01.16;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.169 c
1-1104159928
Фёдор Мегатронов
2004-12-27 18:05
2005.01.16
Пара вопросов на счёт винча и файлов.


1-1103828956
LedWorm
2004-12-23 22:09
2005.01.16
Пробег по элементам TreeView


1-1104512464
Cheguevara
2004-12-31 20:01
2005.01.16
Как загрузить в массив картинку


14-1103922545
PURGEN
2004-12-25 00:09
2005.01.16
JavaScript


1-1104128308
Pavelkq
2004-12-27 09:18
2005.01.16
TFileStream.Create или еще чего?