Главная страница
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.053 c
15-1346445002
Юрий
2012-09-01 00:30
2013.03.22
С днем рождения ! 1 сентября 2012 суббота


2-1346412530
теркин
2012-08-31 15:28
2013.03.22
Чтение запись TObjectList в файл


2-1341380685
Xmen
2012-07-04 09:44
2013.03.22
Национальные символы в Delphi


15-1333541616
AV
2012-04-04 16:13
2013.03.22
TIdMappedPortTCP. Все ли видно через AThread.NetData?


8-1228318270
exkalement
2008-12-03 18:31
2013.03.22
Визуализация?