![]() |
C++Builder 6.0 -> проблема с компонентами неправилно работает __property
написал я компонент TExtProgressBar который создан при помощи базового класа TGraphicControl
Если в нем задать __property любого типа и при выполнении присвоить значение равное нулю тогда это значение ей не присвоится хотя никаких проверок на ее значение не ведется Например: ExtProgressBar.h Цитата:
ExtProgressBar.cpp Цитата:
|
Цитата:
Код:
if(value!=FProgress) // допустим fvalue==0 && FProgress==0 сделайте конструктор Код:
TExtProgressBar::TExtProgressBar(...) : TProgressBar(...), FProgress(-1) {} |
Кстати маленькая ошибочка переменая Progress и FProgress не bool а int
pva Ты немного меня не понял. Я создал компонент, установил его и поместил его на свою форму но даже если в Design-time изменить например свойство Progress сначала на 10 а потом присвоить занчение 0 тода переменная будет..... 10 Точнее покажет что 0 но после компиляции будет 10. Цитата:
FWidth = 100; FHeight = 20; FProgress = 10; FMin = 0; FMax = 100; ...и т.д. но как я понял это влияет только на создание компонента но не на дальнейшее его существование Цитата:
Это освобождает компонент от отрисовки того же самого состояния (зачем нам перерисовывать весь рисунок если ничего не изменилось) |
так, а если 20, а потом 0? Просто подозрительная кореляция с инициализируемым в конструкторе значением...
А, и вот ещё что: проверь типы. Код:
void __fastcall TExtProgressBar::SetProgress(bool value) Код:
bool value = ...; |
Цитата:
10 это тько для наглядности в принципе знач. может быть любым (и 20 и 100 и ...) |
я вот про это: void __fastcall TExtProgressBar::SetProgress(bool value)
просто придираться как компилятор уже стал. Цитата:
|
Время: 05:03. |
Время: 05:03.
© OSzone.net 2001-