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

Вниз

Поток и переменная   Найти похожие ветки 

 
denis24   (2004-12-29 12:57) [0]

В главной форме создаю поток и форму заставку.Вызываю поток,показываю заставку.По окончанию потока -закрываю форму заставку.Как из цикла в потоке передавать значение переменной-счетчика на форму-заставку,чтобы показывался процесс выполнения этого цикла?


 
Digitman ©   (2004-12-29 13:18) [1]

например, так :

const
 CM_PROGRESS = WM_USER + 5000;

TZastavka = class(TForm)
..
 procedure MsgProgress(var Message: TMessage); message CM_PROGRESS;
..
end;
..
var
Zastavka: TZastavka;
..
procedure TZastavka.MsgProgress(var Message: TMessage); message CM_PROGRESS;
begin
ProgressBar.Position := wParam;
end;

..

procedure TMyThread.Execute;
var
 i: Integer;
begin
..
 SendMessage(Zastavka.WindowHandle, CM_PROGRESS, i, 0);
..
end;


 
AlterEgo of WondeRu ©   (2004-12-29 14:37) [2]

Digitman ©   (29.12.04 13:18) [1]
SendMessage(Zastavka.WindowHandle, CM_PROGRESS, i, 0);


а может PostMessage? или я не прав? просто в  SendMessage бужет ждать завершения MsgProgress, а  PostMessage не будет!


 
Digitman ©   (2004-12-29 14:58) [3]


> AlterEgo of WondeRu ©   (29.12.04 14:37) [2]


можно и PostMessage() ... можно вообще дохрена чего ..

но видимые результаты в конкретной задаче могут сильно отличаться

SendMessage синхронен по определению
PostMessage асинхронен

выводы должен делать тот кто принимает решение о применении того или иного способа нотификации


 
denis24   (2004-12-29 15:56) [4]

Простите за ламерство...
Пишет
Uknown directive "message"
в
procedure Tfrmsplash.MsgProgress(var Message: TMessage); message CM_PROGRESS;
begin
...
end;
Что юзать нужно?


 
Digitman ©   (2004-12-29 16:21) [5]


> denis24   (29.12.04 15:56) [4]


а ты в какую секцию декларации класса влупил эту строчку ?
допустимо было либо в private, либо в protected, либо в public ..


 
Erik1 ©   (2004-12-29 16:26) [6]

message CM_PROGRESS; нужно только в декларации.


 
denis24   (2004-12-29 18:30) [7]

const
CM_PROGRESS = WM_USER + 5000;
type
 TfrmSplash = class(TForm)
   
   procedure FormCreate(Sender: TObject);
 private
 procedure MsgProgress(var Message: TMessage); message CM_PROGRESS;
.
.
.
procedure Tfrmsplash.MsgProgress(var Message: TMessage); message CM_PROGRESS;
begin
label1.caption:= inttostr(wParam);
end;


 
denis24   (2004-12-31 12:16) [8]

Разобрался
Теперь еще одно.Что то не то с wparam
procedure Tfrmsplash.MsgProgress(var Message: TMessage);
begin
label1.caption:=inttostr(wParam);
end;
Пишет "("excected but ";" found


 
begin...end ©   (2004-12-31 12:20) [9]

> [8] denis24   (31.12.04 12:16)

> wParam

Message.wParam


 
Anatoly Podgoretsky ©   (2004-12-31 12:23) [10]

Ошибка в другой строке.


 
begin...end ©   (2004-12-31 12:25) [11]

> [10] Anatoly Podgoretsky ©   (31.12.04 12:23)

В 17-ой? Или в 1-ой? :)


 
Digitman ©   (2004-12-31 12:42) [12]

procedure Tfrmsplash.MsgProgress; //!!
begin
.. чего-то там ...
end;


 
denis24   (2004-12-31 13:01) [13]

Wparam-помогло!
Когда с потока пишу
SendMessage(frmSplash.WindowHandle, CM_PROGRESS, counter, 0);
Пишет что нет свойства windowhandle
Если писать просто frmsplash.handle -"Access violation..."
Как быть с handlom..
Помогите неразумному...


 
Digitman ©   (2004-12-31 13:14) [14]


> Пишет что нет свойства windowhandle


SendMessage(frmSplash.Handle, CM_PROGRESS, counter, 0);


 
denis24   (2004-12-31 13:22) [15]

Если писать Handle -то access violation......


 
Digitman ©   (2004-12-31 13:31) [16]


> Если писать Handle -то access violation


тогда - с Новым Годом !
желаю чтобу в НГ объект frmSplash существовал.


 
denis24   (2004-12-31 14:30) [17]

спасибо
блин но я же эту форму создал перед потоком
TfrmSplash.Create(nil)


 
DiamondShark ©   (2004-12-31 14:53) [18]


> блин но я же эту форму создал перед потоком
> TfrmSplash.Create(nil)

А результат куда дел?


 
denis24   (2004-12-31 14:56) [19]

Все разобрался....
Новый год блин...


 
DiamondShark ©   (2004-12-31 15:07) [20]

С наступающим!
;)



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

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

Наверх




Память: 0.48 MB
Время: 0.038 c
1-1104342003
SATANA_
2004-12-29 20:40
2005.01.16
Как создать файл на домене и записать в него текст


1-1104457624
GEN++
2004-12-31 04:47
2005.01.16
Обращение к элементу массива.


14-1103666539
ArMellon
2004-12-22 01:02
2005.01.16
Как устроены форумы


14-1104311035
Егор
2004-12-29 12:03
2005.01.16
Настолные игры для локальки


1-1104653006
speed
2005-01-02 11:03
2005.01.16
ссылки в Delphi





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский