Главная страница
    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.047 c
14-1104177321
Игорек
2004-12-27 22:55
2005.01.16
Где можно выкачать 1C?


14-1103907381
Aldor_
2004-12-24 19:56
2005.01.16
WinXP - когда вставляю флэшку, винда виснет


1-1104413587
AndreyK_6
2004-12-30 16:33
2005.01.16
Что с этим кодом?


14-1103869505
Rouse_
2004-12-24 09:25
2005.01.16
C Днем Рождения 24 Декабря


1-1104276522
AAAlekzzz
2004-12-29 02:28
2005.01.16
Добавление текста из TMemo в начало любого файла.





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