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

Вниз

Почему может не срабатывать TGauge.Visible?   Найти похожие ветки 

 
Zheksonz   (2012-02-28 20:05) [0]

TStatusBar является "предком" двух TGauge, на панелях которого они отображаются во время некоторых процессов. Один по команде Gauge1.Visible = false; становится невидимым, а второй Gauge2.Visible = false нет(( Обычно источником подобной мистики является моя невнимательность, а иногда и тупость, но в этот раз я всё проверил вдоль и поперёк. StatusBar.Refresh делу не помог(( Может есть какое-то ограничение на количество отображаемых Gauge в Statusbar_е?


 
Zheksonz   (2012-02-28 20:31) [1]

кинул на новую форму StatusBar и два Gauge, так же раскинул их по панелям. Так всё работает, в программе же, несмотря на то, что принципиальных отличий в работе именно StatusBar_а и Gauge - нет. Мистика!


 
Zheksonz   (2012-02-28 20:52) [2]

хм(((((((((( Gauge.Visible := true; вначале процедуры, до начала цикла, делает видимым объект, а после окончания цикла, в конце процедуры, обнуление Gauge проходит успешно, а Gauge.Visible := false нет(((


 
Zheksonz   (2012-02-28 21:37) [3]

и всё-таки мистика!

убрал из FormCreate код цепляющий g2 на StatusBar1 и по вызову g2.Visible := false; g2 на форме перестал отображаться. Т.е. в самом g2 нет проблем, как и в алгоритме использования. А что же в этом StatusBar_е может быть не так? Ведь второй Gauge, отображаемый в этом же StatusBar_е, только на другой панели, работает нормально.

Вот код привязки обоих Gauge:


with g1 do
begin
 Parent := StatusBar1;
 Progress := 0;
 Top := 2;
 Left := StatusBar1.Panels[0].Width;
 Height := StatusBar1.Height - Top;
 Width := 98;
end;

with g2 do
begin
 Parent := StatusBar1;
 Progress := 0;
 Top := 2;
 Left := StatusBar1.Panels[0].Width + StatusBar1.Panels[1].Width;
 Height := StatusBar1.Height - Top;
 Width := 98;
end;


 
Anatoly Podgoretsky ©   (2012-02-28 22:40) [4]

> Zheksonz  (28.02.2012 20:05:00)  [0]

TStatusBar не является предком TGauge


 
Zheksonz   (2012-02-28 22:45) [5]


> Anatoly Podgoretsky ©   (28.02.12 22:40) [4]


Предком нет, а родителем, учитывая Gauge.Parent := StatusBar1; ?


 
Zheksonz   (2012-02-28 22:46) [6]

И ведь не в этом суть, а почему не включается невидимость компонента?


 
Zheksonz   (2012-02-28 23:39) [7]

Если смотрю отладчиком, тоGauge.Progress и Gauge.Visible принимают необходимые значения, 0 и false соответственно.

Удивительно же то, что после прогона ф-ции с отладчиком объект становится невидимым, без отладчика же, по крайней мере визуально, значение не меняется на 0 и Gauge остаётся видимым.

Ставил задержку перед выполнением этих операций, ставил Application.ProcessMessages, делал Refresh и Repaint StatusBar_а и Gaugе... всё бестолку. Заново закидывал эти компоненты, на случай если наклацал случайно в свойствах лишнего... в общем поизвращался на славу!

Вот и в чём кака?


 
Германн ©   (2012-02-28 23:47) [8]

DFM файл можешь показать?


 
Zheksonz   (2012-02-28 23:53) [9]


> Германн ©   (28.02.12 23:47) [8]


Он 43 кб.

В общем сдался я, вернее решил остановить накапливание зря потраченного времени...

Заменил Gauge обычным ProgressBar_ом, ничего не меняя в алгоритме, и всё заработало как нужно.


 
Забаненный   (2012-02-29 01:00) [10]


> Parent := StatusBar1;

а не лучше ли родителем делать панель? и если уж так хочется гауг, то дай ему еще родителя, ее видимостью управляй. ту же панель, например.


 
Zheksonz   (2012-02-29 01:34) [11]


> Забаненный   (29.02.12 01:00) [10]


На будущее буду иметь в виду, но сейчас возвращаться к Gauge нет смысла. ProgressBar вполне устраивает. Спасибо.


 
Германн ©   (2012-02-29 01:46) [12]


> Zheksonz   (28.02.12 23:53) [9]
>
>
> > Германн ©   (28.02.12 23:47) [8]
>
>
> Он 43 кб.

Можно выложить на Webfile или ещё куда-нибудь.
Вот просто интересно сколько в этом файле есть TGauge?


 
Забаненный   (2012-02-29 02:51) [13]

Кстати да, даже в ХЕ2 такие грабли по-прежнему могут быть.



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

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

Наверх




Память: 0.49 MB
Время: 0.18 c
15-1343044403
D.L.
2012-07-23 15:53
2013.03.22
как научится воспринимать английскую речь на слух?


2-1337444815
TStas
2012-05-19 20:26
2013.03.22
Горизонтальная прокрутка ричЭдита


15-1347000404
ford
2012-09-07 10:46
2013.03.22
алгоритм для анализа изображения


15-1329373822
Димка На
2012-02-16 10:30
2013.03.22
Как узнать кто "мучает" диск?


15-1339187405
Юрий
2012-06-09 00:30
2013.03.22
С днем рождения ! 9 июня 2012 суббота