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

Вниз

beginthread   Найти похожие ветки 

 
Res   (2008-08-02 04:29) [0]

Здравствуйте. Проблема в том что при создании потока в Label появляется всякая белебурда, вместо посылаемого значения.. подскажите в чем проблема


procedure thread(param:pointer);
var
command:^string;
smail:string;
begin
command:=param;
smail:=command^;
form1.Label1.Caption:=smail;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
smail:string;
id:LongWord;
begin
smail:="aaaa";
BeginThread(nil,0,Addr(thread),Addr(smail),0,id);

end;


Заранее благодарен.


 
Riply ©   (2008-08-02 09:13) [1]

Потому что ты не чукча-читатель :)

P.S.
1. На любом форуме есть статьи по работе с нитями.
2. У тебя есть исходники TThread
3. В Demos есть хороший пример по работе с нитями
4. И наконец существует MSDN
5. Про гугл уж я помалкиваю :)

Не... ты не удосужился никуда заглянуть хоть одним глазком, хотя бы ради интереса.


 
Anatoly Podgoretsky ©   (2008-08-02 11:03) [2]

До пунктов 1-5 еще рано, он не умеет работать с Паскалем, базовой теории не знает, что толку искать в статьях, если он в них ничего не поймет.


 
Loginov Dmitry ©   (2008-08-02 12:50) [3]

> подскажите в чем проблема


основная в том, что ты не понимаешь, что этот код делает.

1) Ты передаешь в BeginThread() адрес локальной переменной с ограниченным временем жизни. Это глупо, хотя возможно и прокатить в случае, когда строке присвоена константа (но в общем случае работать не будет).

2) Общащаешься к VCL из дополнительного потока. Этого делать НЕЛЬЗЯ!!! Используй для обращения к VCL SendMessage() либо TThread.Syncronize() ( http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1370 )

3) Что за танцы с бубном:
command:=param;
smail:=command^;

?

4) Не мучай фукнцию BeginThread(). Изучи наконец класс TThread, примеров работы с ним - море. Заведи строковое поле, ему свою строку присваивай.



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

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

Наверх





Память: 0.45 MB
Время: 8.636 c
2-1217714068
KilkennyCat
2008-08-03 01:54
2008.09.14
Где рисуется бордер компонента?


15-1217051959
@!!ex
2008-07-26 09:59
2008.09.14
Как исправить ошибки линковки? (С++)


11-1193314040
LazyBob
2007-10-25 16:07
2008.09.14
новые GRush


15-1216821757
Vlad Oshin
2008-07-23 18:02
2008.09.14
Поставил FastMM.dll - стала BDS2006 глючить. Ни у кого больше?


6-1193157498
Pacific
2007-10-23 20:38
2008.09.14
smtp





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