Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2010, 17:12   #1
StartMis
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 175
По умолчанию ОтДельный поток

Вот так я его создаю
Код:
type
  TMsgRecord = record
  thread : Integer;
  msg    : string[30];
end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function OTDELN_POTOK(a : string) : Integer;
begin


EndThread(0);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
id1 : LongWord;
thread1 : Integer;
msg1 : TMsgRecord;
Rect : TRect;
begin
msg1.thread := 1;





thread1:=BeginThread(nil,0,@OTDELN_POTOK,@msg1,0,id1);
CloseHandle(thread1);
end;
Вопрос как передать функции OTDELN_POTOK(a : string) : Integer; переменную a : string
StartMis вне форума Ответить с цитированием
Старый 20.02.2010, 17:37   #2
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Не знаю, но кажется, что без SendMessage не обойтись.
А почему бы не создать свой класс на основне TThread? Было бы намного удобнее
TwiX вне форума Ответить с цитированием
Старый 20.02.2010, 17:47   #3
StartMis
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 175
По умолчанию

Что то я не пойму как создать свой класс на основне TThread. Можно пример
StartMis вне форума Ответить с цитированием
Старый 20.02.2010, 18:12   #4
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Извините, но лень писать. Нашел в гугле просто вбив BeginThread. Все четко с примером написано тут соответственно в TMsgRecord записывайте что вам угодно и сколько угодно.

Edit:
Хотя вот и заметил, ваш код близок, только вы не верно описали функцию потока. Вместо a: string напишите param: Pointer; а дальше как в примере сверху, переведите в указатель на вашу структуру TMsgRecord
BOBAH13 вне форума Ответить с цитированием
Старый 20.02.2010, 18:12   #5
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Код:
type
   TMyThread = class (TThread)
   private
      procedure Execute; override;
   end;
Создаёшь как
Код:
var
   a: TMyThread;
begin
   a:=TMyThread.Create(False);
end;
По запуску начинается выполняться процедура Execute
TwiX вне форума Ответить с цитированием
Старый 20.02.2010, 19:37   #6
crystalbit
ГОСТ 2.403-75
Пользователь
 
Аватар для crystalbit
 
Регистрация: 04.05.2009
Сообщений: 92
По умолчанию

ТС, копай ThreadVar
мой скромный delphi блог
crystalbit вне форума Ответить с цитированием
Старый 20.02.2010, 23:03   #7
maxionans
Форумчанин
 
Аватар для maxionans
 
Регистрация: 02.01.2010
Сообщений: 254
По умолчанию

Цитата:
Вопрос как передать функции OTDELN_POTOK(a : string) : Integer; переменную a : string
...
Что то я не пойму как создать свой класс на основне TThread. Можно пример
Если использовать TThread, то можно вот так:

Код:
type
  TMyThread = class(TThread)
  private
    FString : String;
  protected
    procedure Execute; override;
  public
    constructor Create(ACreateSuspended : Boolean; const AString : String); reintroduce;
  end;
...
constructor TMyThread.Create(ACreateSuspended : Boolean; const AString : String);
begin
  inherited Create( ACreateSuspended );
  FString := AString;
end;

procedure TMyThread.Execute;
begin
  { Здесь что-то делаем с FString }
end;
Если не использовать TThread, то передавать лучше PChar и потоковую функцию изменить на приём PChar.
maxionans вне форума Ответить с цитированием
Старый 21.02.2010, 00:37   #8
InternetStranger
php / delphi
Форумчанин
 
Аватар для InternetStranger
 
Регистрация: 10.06.2007
Сообщений: 175
По умолчанию

ммм. Переопределять конструктор совсем не обязательно, как и ThreadVar использовать (это смотря что именно ты хочешь).
Проще объявить в глобальном пространстве имен A:String.
Коль речь зашла о TThread, то данная тема -повтор
G.Azamat { Web Development / Computer simulation }
Начинающий программист думает, что в килобайте 1000 байтов, а законченный уверен, что в километре 1024 метра.
InternetStranger вне форума Ответить с цитированием
Старый 21.02.2010, 02:22   #9
maxionans
Форумчанин
 
Аватар для maxionans
 
Регистрация: 02.01.2010
Сообщений: 254
По умолчанию

Глобальные переменные для таких мелочей, как в данном случае, это плохо-плохо-плохо-плохо
maxionans вне форума Ответить с цитированием
Старый 21.02.2010, 10:12   #10
InternetStranger
php / delphi
Форумчанин
 
Аватар для InternetStranger
 
Регистрация: 10.06.2007
Сообщений: 175
По умолчанию

Конечно плохо... Но людей-то как раз на плохое и тянет
G.Azamat { Web Development / Computer simulation }
Начинающий программист думает, что в килобайте 1000 байтов, а законченный уверен, что в километре 1024 метра.
InternetStranger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать отдельный поток для отправки письма betirsolt Работа с сетью в Delphi 2 28.12.2009 22:39
Как замутить отдельный поток внутри службы? theYozh Общие вопросы Delphi 0 28.09.2009 18:05
Как вынести пинг через IdIcmpClient в отдельный поток ? ewgenw Помощь студентам 1 11.05.2009 16:42
Отсылка почты через отдельный поток Hottabych Работа с сетью в Delphi 16 15.03.2008 11:31
Отсылка почты через отдельный поток Hottabych Работа с сетью в Delphi 0 11.03.2008 19:32