Потоки (TThread) - Форум Mapper720.Ru
Mapper720.Ru Понедельник, 20 Фев 2017, 09:28
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: La_Mafioza 
Форум » Софт, компы, технологии » Программерский » Потоки (TThread)
Потоки (TThread)
Chuwis720Дата: Четверг, 28 Янв 2010, 19:23 | Сообщение # 1
Зобаниватель незобавнивоемого
Группа: Админ™
Сообщений: 5725
Награды: 3
Репутация: 71
Статус: Offline
Кто нибудь может объяснить, как работать с Thread object'ами? Мне надо, чтобы поток двигал TProgressBar...

У меня дофига проблем, но я хочу поделиться своими проблемами! © Freeman's mind
Мой открытый ключ PGP (обновлён 23.12.2011)
 
karpovmakДата: Суббота, 30 Янв 2010, 10:04 | Сообщение # 2
Генерал-лейтенант
Группа: Проверенные
Сообщений: 551
Награды: 1
Репутация: 13
Замечания: 0%
Статус: Offline
исходник выложи, вдруг поток необязателен?

 
Chuwis720Дата: Суббота, 30 Янв 2010, 13:06 | Сообщение # 3
Зобаниватель незобавнивоемого
Группа: Админ™
Сообщений: 5725
Награды: 3
Репутация: 71
Статус: Offline
Поток, увы, обязателен...

unit Unit2;

interface

uses
   Classes, Unit1;

type
TThread = class(TThread)

  private
     { Private declarations }
   protected
     procedure Execute; override;
   end;

implementation

{ Important: Methods and properties of objects in visual components can only be
   used in a method called using Synchronize, for example,

       Synchronize(UpdateCaption);

   and UpdateCaption could look like,

     procedure TThread.UpdateCaption;
     begin
       Form1.Caption := 'Updated in a thread';
     end; }

{ TThread }

procedure TThread.Execute;
begin
Showmessage('ololo');
end;
end.

Вот красную строку вечно подсвечивает красным >(


У меня дофига проблем, но я хочу поделиться своими проблемами! © Freeman's mind
Мой открытый ключ PGP (обновлён 23.12.2011)
 
Chuwis720Дата: Суббота, 30 Янв 2010, 13:09 | Сообщение # 4
Зобаниватель незобавнивоемого
Группа: Админ™
Сообщений: 5725
Награды: 3
Репутация: 71
Статус: Offline
Пишет:
'Type TThread is not yet completely defined'
Что делать?? Задолбали уже потоки эти...


У меня дофига проблем, но я хочу поделиться своими проблемами! © Freeman's mind
Мой открытый ключ PGP (обновлён 23.12.2011)
 
karpovmakДата: Суббота, 30 Янв 2010, 22:36 | Сообщение # 5
Генерал-лейтенант
Группа: Проверенные
Сообщений: 551
Награды: 1
Репутация: 13
Замечания: 0%
Статус: Offline
Название класса измени! Такой класс уже существует!

 
Chuwis720Дата: Воскресенье, 31 Янв 2010, 15:47 | Сообщение # 6
Зобаниватель незобавнивоемого
Группа: Админ™
Сообщений: 5725
Награды: 3
Репутация: 71
Статус: Offline
Попробую... Хотя я вроде и TMyThread, и TNewThread и как только не называл...

У меня дофига проблем, но я хочу поделиться своими проблемами! © Freeman's mind
Мой открытый ключ PGP (обновлён 23.12.2011)
 
karpovmakДата: Воскресенье, 31 Янв 2010, 17:16 | Сообщение # 7
Генерал-лейтенант
Группа: Проверенные
Сообщений: 551
Награды: 1
Репутация: 13
Замечания: 0%
Статус: Offline
unit Unit2;

interface

uses
Classes, Unit1;

type
TXThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;

implementation

{ Important: Methods and properties of objects in visual components can only be
used in a method called using Synchronize, for example,

Synchronize(UpdateCaption);

and UpdateCaption could look like,

procedure TThread.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end; }

{ TThread }

procedure TXThread.Execute;
begin
Showmessage('ololo');
end;
end.


 
Chuwis720Дата: Понедельник, 01 Фев 2010, 10:57 | Сообщение # 8
Зобаниватель незобавнивоемого
Группа: Админ™
Сообщений: 5725
Награды: 3
Репутация: 71
Статус: Offline
А как потом запустить этот поток, скажем, кнопкой? Кнопка на глагне форме. Нужно, наверное, поток как то в разделе Uses объявить?

У меня дофига проблем, но я хочу поделиться своими проблемами! © Freeman's mind
Мой открытый ключ PGP (обновлён 23.12.2011)
 
karpovmakДата: Понедельник, 01 Фев 2010, 12:24 | Сообщение # 9
Генерал-лейтенант
Группа: Проверенные
Сообщений: 551
Награды: 1
Репутация: 13
Замечания: 0%
Статус: Offline
Quote (Chuwis720)
в разделе Uses объявить?

да.
поток завершается при завершении процедуры Execute.
запуск потока
Code

var XThread : TXThread;
...
begin
...
XThread := TXThread.Create(false);


 
Chuwis720Дата: Понедельник, 01 Фев 2010, 15:32 | Сообщение # 10
Зобаниватель незобавнивоемого
Группа: Админ™
Сообщений: 5725
Награды: 3
Репутация: 71
Статус: Offline
Code
XThread := TXThread.Create(false);

А далее, если не ошибаюсь, нечто типа TXThread.Execute?


У меня дофига проблем, но я хочу поделиться своими проблемами! © Freeman's mind
Мой открытый ключ PGP (обновлён 23.12.2011)
 
karpovmakДата: Понедельник, 01 Фев 2010, 18:28 | Сообщение # 11
Генерал-лейтенант
Группа: Проверенные
Сообщений: 551
Награды: 1
Репутация: 13
Замечания: 0%
Статус: Offline
Не нужно. несли парамерт StartSuspend равен false.

 
Chuwis720Дата: Вторник, 02 Фев 2010, 14:36 | Сообщение # 12
Зобаниватель незобавнивоемого
Группа: Админ™
Сообщений: 5725
Награды: 3
Репутация: 71
Статус: Offline
Продолжение передачи "Нубские вопросы"... Я сделал как написано выше, теперь при нажатии на кнопку стоит код:
Code
procedure TForm1.Button1Click(Sender: TObject);
begin
XThread:=TXThread.Create(false);
end;

Сам поток:
Code

procedure TXThread.Execute;
begin
Showmessage('OLOLO!');
end;

И при нажатии кнопки...
Прикрепления: 9507149.gif(9Kb)


У меня дофига проблем, но я хочу поделиться своими проблемами! © Freeman's mind
Мой открытый ключ PGP (обновлён 23.12.2011)
 
karpovmakДата: Вторник, 02 Фев 2010, 15:54 | Сообщение # 13
Генерал-лейтенант
Группа: Проверенные
Сообщений: 551
Награды: 1
Репутация: 13
Замечания: 0%
Статус: Offline

Добавь в TXThread в USES модуль Dialogs.


 
Chuwis720Дата: Среда, 03 Фев 2010, 18:43 | Сообщение # 14
Зобаниватель незобавнивоемого
Группа: Админ™
Сообщений: 5725
Награды: 3
Репутация: 71
Статус: Offline
Он уже добавлен, вот:
Code

unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TXThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;

implementation

{ Important: Methods and properties of objects in visual components can only be
used in a method called using Synchronize, for example,

Synchronize(UpdateCaption);

and UpdateCaption could look like,

procedure TXThread.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end; }

{ TXThread }

procedure TXThread.Execute;
begin
Showmessage('OLOLO!');
end;

end.


У меня дофига проблем, но я хочу поделиться своими проблемами! © Freeman's mind
Мой открытый ключ PGP (обновлён 23.12.2011)
 
karpovmakДата: Четверг, 04 Фев 2010, 11:37 | Сообщение # 15
Генерал-лейтенант
Группа: Проверенные
Сообщений: 551
Награды: 1
Репутация: 13
Замечания: 0%
Статус: Offline
Hу не знаю, какая вресия дельфей?

У тебя переменная XThread обявлена так :

Code
var Form1 : TForm1;
     XThread : TXThread;

или так
Code
procedure TForm1.Button1Cilck(Sender : TObject);
var XThread : TXThread;
begin

Скинь исходник, причем весь, может ошибка возникает вовсе не в потоке? См. скрин, у меня ведь все работало! smile

Добавлено (04 Фев 2010, 09:56)
---------------------------------------------
Сейчас погоди сделаю несколько скринов, на этот раз D7;
Sleep(600000);

Добавлено (04 Фев 2010, 11:37)
---------------------------------------------
Попробуй :


 
Chuwis720Дата: Четверг, 04 Фев 2010, 13:42 | Сообщение # 16
Зобаниватель незобавнивоемого
Группа: Админ™
Сообщений: 5725
Награды: 3
Репутация: 71
Статус: Offline
Вот исходник: http://rghost.ru/933773

У меня дофига проблем, но я хочу поделиться своими проблемами! © Freeman's mind
Мой открытый ключ PGP (обновлён 23.12.2011)
 
karpovmakДата: Четверг, 04 Фев 2010, 16:20 | Сообщение # 17
Генерал-лейтенант
Группа: Проверенные
Сообщений: 551
Награды: 1
Репутация: 13
Замечания: 0%
Статус: Offline
Попробуй сделать как на скрине выше.

Добавлено (04 Фев 2010, 16:20)
---------------------------------------------
УНЫЛЫЙ ГОВНОПОТОК КАКБЭ ПОПЯЧЕН!11


 
Chuwis720Дата: Воскресенье, 07 Фев 2010, 21:28 | Сообщение # 18
Зобаниватель незобавнивоемого
Группа: Админ™
Сообщений: 5725
Награды: 3
Репутация: 71
Статус: Offline
Да ни хера эта сука не попячена... Как выдавала ошибку, так и выдает. Что в Delphi 10 Lite, что в Delphi 7 Enterprise Edition >( >( >( >( >( >( >( >(

У меня дофига проблем, но я хочу поделиться своими проблемами! © Freeman's mind
Мой открытый ключ PGP (обновлён 23.12.2011)
 
karpovmakДата: Среда, 10 Фев 2010, 17:52 | Сообщение # 19
Генерал-лейтенант
Группа: Проверенные
Сообщений: 551
Награды: 1
Репутация: 13
Замечания: 0%
Статус: Offline
ну что, на этот раз получилось?

 
Chuwis720Дата: Четверг, 11 Фев 2010, 14:00 | Сообщение # 20
Зобаниватель незобавнивоемого
Группа: Админ™
Сообщений: 5725
Награды: 3
Репутация: 71
Статус: Offline
karpovmak, не совсем. Я сделал, поток крутит ТПрогрессБар, но все равно форма виснет... Купил "Библию Дельфи", там есть глава про потоки, попробую разобраться по ней...

У меня дофига проблем, но я хочу поделиться своими проблемами! © Freeman's mind
Мой открытый ключ PGP (обновлён 23.12.2011)
 
Форум » Софт, компы, технологии » Программерский » Потоки (TThread)
Страница 1 из 11
Поиск:

Copyright Mapper720 © 2017   
Используются технологии uCoz