Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];

Вниз

Когда ComponentState=csLoading?   Найти похожие ветки 

 
Bless   (2003-08-13 15:59) [0]

Любой компонент (то бишь наследник TComponent)имеет свойство ComponentState.
В каком случае ComponentState=csLoading?
В хелпе написано

csLoading
A filer object is currently loading the component. This flag is set when the component is first created and not cleared until the component and all its children are fully loaded (when the Loaded method is called).

Что значит
...the component and all its children are fully loaded...
Откуда куда загружены? В память? Или куда?


 
VMcL   (2003-08-13 16:01) [1]

>Откуда куда загружены? В память? Или куда?

Из ресурса формы в ОЗУ.


 
Vuk   (2003-08-13 16:02) [2]

to Bless:
Флаг csLoading показывает, что в данный момент идет загрузка свойств компонента из файла формы или из соответствующего ресурса. Как только загрузка завершена, флаг сбрасывается.


 
Юрий Федоров   (2003-08-13 16:03) [3]

Из потока. Из ресурса. Из *.dfm
Окончание загрузки означает что все св-ва компонента соответствуют тем, которые в Design-Time были выставлены в инспекторе объектов


 
Bless   (2003-08-13 16:05) [4]

Нифига себе оперативность :)
Спасибо.


 
Bless   (2003-08-13 16:22) [5]

А компонент получает события, когда ComponentState=csLoading?


 
Vuk   (2003-08-13 16:26) [6]

to Bless:
>А компонент получает события, когда ComponentState=csLoading?
События он получать не может, т.к. еще не загрежены обаботчики. А после загрузки вызывается виртуальный метод Loaded.


 
Bless   (2003-08-13 17:08) [7]

>События он получать не может, т.к. еще не загрежены обаботчики. А
>после загрузки вызывается виртуальный метод Loaded.

А може ли быть видимым компонент, пока он в состоянии загрузки?


 
Bless   (2003-08-13 17:12) [8]

Если ответ на мой последний вопрос - не может быть видимым(как я предполагаю), то в таком случае какой смысл в строчках

procedure TCustomDBGrid.DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState);
...
if csLoading in ComponentState then
begin
Canvas.Brush.Color := Color;
Canvas.FillRect(ARect);
Exit;
end;
...
(взято из модуля DBGrids)


 
Vuk   (2003-08-13 17:15) [9]

to Bless:
>А може ли быть видимым компонент, пока он в состоянии загрузки?
Вполне. Никто же не мешает загружать свойства компонента в любой момент времени.


 
Bless   (2003-08-13 17:23) [10]

>Вполне. Никто же не мешает загружать свойства компонента в любой
>момент времени.

Кажется, я опять чего-то не понимаю. Что значит "загружать свойства"? Изменять их значения?


 
Vuk   (2003-08-13 17:32) [11]

to Bless:
>Что значит "загружать свойства"?
Загрузка из потока, в котором хранится форма. см. TStream.ReadComponent


 
Bless   (2003-08-14 09:18) [12]

А можно кусочек кода на загрузку какого-нибудь свойства из потока формы? И что такое поток формы?
И еще, происходит ли когда-нибудь такая загрузка неявно,
уже после того, как он был полностью загружен?
Может кто знает ссылки на литературу о подобных вещах, подкиньте плз.


 
Vuk   (2003-08-14 10:44) [13]

to Bless:
>что такое поток формы?
.dfm видели? Так вот, этот файл хранит данные о свойствах формы (фрейма, модуля данных). При компиляции эти данные помещаются в ресурсы исполняемого модуля (если .dfm хранится в текстовом виде, то предварительно производится преобразование в двоичный формат .dfm). Во время выполнения программы форма читает из ресурсов данные и компоненты соответствующим образом инициализируются.

>И еще, происходит ли когда-нибудь такая загрузка неявно,
>уже после того, как он был полностью загружен?
Неявно для кого? Для компонента загрузка является процессом, который, как правило, инициируется снаружи компонента. Исключением явлются, пожалуй, только компоненты-контейнеры (формы, фреймы, модули данных), которые инициируют процесс загрузки самостоятельно - в конструкторе. Но сохранить в поток и загрузить оттуда данные можно для любого компонента.

С кодом прямо сейчас помочь не могу...


 
bless   (2003-08-14 11:49) [14]

Ладно. Спасибо.



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

Форум: "Основная";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.009 c
1-81704
Vint45
2003-08-11 11:12
2003.08.25
String->PChar


1-81821
MDL
2003-08-13 15:24
2003.08.25
ExitProc в Library


14-81953
Best Gun
2003-08-06 13:58
2003.08.25
Компилятор gcc


6-81866
GoldMedium
2003-06-15 17:04
2003.08.25
Как программно изменить IP-адрес


1-81766
romashka
2003-08-14 12:03
2003.08.25
Вывод окна перед запуском приложения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский