Главная страница
    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
Время: 0.061 c
15-1216902649
DevilDevil
2008-07-24 16:30
2008.09.14
можно ли как то в опциях Delphi-проекта указать выходное имя *.ex


2-1217606385
InsanI
2008-08-01 19:59
2008.09.14
Ввод текста в другой программе


2-1217587744
Аннушка21
2008-08-01 14:49
2008.09.14
связать раблицы dbf


4-1196190355
DevilDevil
2007-11-27 22:05
2008.09.14
Схватить форму/отпустить форму. Помогите, пожалуйста.


15-1216662309
Вася
2008-07-21 21:45
2008.09.14
Не могу запустить Делфи





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