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

Вниз

А можно создавать/убирать statusbar налету?   Найти похожие ветки 

 
Alexei Dragoner   (2002-07-25 17:16) [0]

Прошу прощение за назойливость, но все же:
А почему статус не отдельный объект? Мне интересно написать полноценное OpenGL приложение на KOL, поэтому интересуюсь...

Спасибо,


 
Mhorse ©   (2002-07-25 18:57) [1]

StatusBar - объект, кто сказал, что нет? Form.StatusCtl имеет тип PControl, и свойство Visible у него на месте!


 
Alexei Dragoner   (2002-07-26 00:17) [2]

Ясно, спасибо,
Инициализация не стандартная - автоматическая при присваивании StatusText чего-нибудь...


 
Alexander ©   (2002-10-15 10:22) [3]

Не работает следующий код (1.54):

if menuMain.Items[mnStatusBar].Checked then
Form.SimpleStatusText := " "
else
Form.RemoveStatus;

В начале у меня StatusBar создан. После обработки Form.RemoveStatus всё содержимое StatusBar затирается, но размер формы остаётся прежний. После обработки Form.SimpleStatusText := " " форма ещё раз увеличивается на высоту StatusBar, но сам StatusBar не появляется, а появляется пустое место. Последующие шаги убирают и показывают это пустое место вместо самого StatusBar.


 
Vladimir Kladov   (2002-10-16 11:01) [4]


> Инициализация не стандартная - автоматическая при присваивании
> StatusText чего-нибудь...

Да, он очень у MS нестандартный. Не получается положить его еще
куда-то, кроме формы (по крайней мере, не получилось, когда я его
делал). Не получается положить на форму 2 статус-бара. Не удается
изменить ему размеры. Хотя можно (зачем-то) положить его не вниз, а вверх формы. В общем, я решил, что не нужно относиться к нему как к полноценному контролу. Это просто придаток внизу формы :)



> В начале у меня StatusBar создан. После обработки Form.RemoveStatus
> всё содержимое StatusBar затирается, но размер формы остаётся
> прежний. После обработки Form.SimpleStatusText := " " форма
> ещё раз увеличивается на высоту StatusBar, но сам StatusBar
> не появляется, а появляется пустое место. Последующие шаги
> убирают и показывают это пустое место вместо самого StatusBar.


У меня размер формы меняется при первом убирании. Делал по кнопке:

procedure TForm1.Button2Click(Sender: PObj);
begin
if Button2.Tag <> 0 then
Form.SimpleStatusText := " "
else
Form.RemoveStatus;
Button2.Tag := 1 - Button2.Tag;
end;

По меню делается так же. Какая версия KOL, Delphi, OS ?
Никакие constarint"ы не стоят? Специальной обработки OnResize нет?


 
Alexander ©   (2002-10-16 11:24) [5]

>Какая версия KOL, Delphi, OS ?
1.54, 6.0, 2000 SP3

Ничего дополнительного не обрабатывается.

Так, чать проблемы я понял:
У меня у формы высота 330, а MinHeight=350 - но это я так из-за Toolbar-a сделал, мне нужно, чтобы форма имела минимальный размер такой, какой в Design time, и если я задаю MinHeight=330, то Toolbar нормально убирается с первого раза, но форму при этом после запуска можно уменьшить на эти самые 20 пикселов, т.е. на высоту Toolbar-a.

C появлением и отрисовкой те-же проблемы, что и были - появляется пустое место на месте Toolbar-a


 
Vladimir Kladov   (2002-10-17 16:18) [6]

В KOL1.54 были проблемы с асм-версией. Правда, вроде бы только для treeview. Попробуйте подгрузить KOL 1.54.1 (выложено 16.10.2002, ср.)

Так про статус-бар речь-то вроде бы шла? MinHeight уберите для чистоты эксперимента. По идее MinHeight надо бы менять от того, есть статус или нет. В VCL всегда так делал.


 
Alexander ©   (2002-10-17 22:43) [7]

>Попробуйте подгрузить KOL 1.54.1
Попробовал - не прошло.

>Так про статус-бар речь-то вроде бы шла?
Виноват, описАлся.

>MinHeight уберите для чистоты эксперимента.
Ставил я всё в ноль - тот же результат.

>По идее MinHeight надо бы менять от того, есть статус или нет.
Спорный вопрос. По идее это же часть моей формы, для которой я размеры все определил. И его видимость (status bar-a)не должна влиять на размеры окна.


 
Vladimir Kladov   (2002-10-21 08:25) [8]

Так я не понял - вас не устраивает, что статус при динамическом
добавлении увеличивает форму на свою высоту? Или что?

Вообще-то я так сделал вовсе не потому, что мне так понравилось.
Видите ли, на заре KOL, когда в нем еще не было Align для всех
контролов, форма выглядела скорее как диалог. И динамическое
добавление статус-панели при условии сохранения высоты самой формы приводило к неприятностям. Контролы переставали влезать. Или приходилось резервировать место для статуса. Что вообще-то странно выглядело, особенно если учесть, что высота у него в разных условиях могла быть разной. Я потом погляжу, можно ли сделать так, чтобы эта фича была опциональна.


 
Alexander ©   (2002-10-21 09:11) [9]

Сейчас мне важнее прорисовать Statusbar просле скрытия.


 
Alexander ©   (2002-10-22 14:49) [10]

Опционально по-моему нужно задавать именно изменение размера формы, т.к. я специально посмотрел множество программ и в них размер формы при скрытии(показе) статусбара не изменяется.


 
Vladimir Kladov   (2002-10-23 10:16) [11]

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


 
SPeller ©   (2002-10-23 11:54) [12]


> Alexander © (21.10.02 09:11)

А если ему сделать Show, я уже сталкивался с проблемой прорисовки при создании, даже ветку делал.


 
Alexander ©   (2002-10-23 13:11) [13]

>SPeller
Да, такой код заработал:

if menuMain.Items[mnStatusBar].Checked then
begin
Form.SimpleStatusText := " ";
Form.StatusCtl.Show;
end
else
Form.RemoveStatus;

предложение Alexander © (22.10.02 14:49) остаётся в силе



Страницы: 1 вся ветка

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

Наверх




Память: 0.5 MB
Время: 0.016 c
14-97787
Silentium!
2003-06-13 11:49
2003.06.30
ШАГ в for


1-97700
marat_ch
2003-06-18 02:11
2003.06.30
Thread


1-97690
McSimm2
2003-06-17 16:02
2003.06.30
Свои цвета для DrawEdge()


3-97514
Demn
2003-05-30 05:25
2003.06.30
Кто-нибудь пытался срастить и Delphi?


7-97913
BaRToV
2003-04-13 13:13
2003.06.30
CD-Rom и все что с ним связано...