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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2015, 16:05   #1
romantik1993
Пользователь
 
Регистрация: 12.03.2012
Сообщений: 99
По умолчанию Delphi - 2 потока в одной программе

На форме есть 2 кнопки, и каждая из них должна работать в разных потоках, подскажите как реализовать. Я не очень в потоках разбираюсь, одна кнопка под потоком работает. а как второй сделать и синхронизировать.
romantik1993 вне форума Ответить с цитированием
Старый 04.03.2015, 17:03   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Никак, с UI можно работать только из основного потока и никакая кнопка "под потоком" не работает.

По нажатию кнопки можно только запустить поток, например. Вы хотите чего-то не того, что сказали.
Цитата:
Я не очень в потоках разбираюсь
Не используйте их если не разбираетесь. Или разберитесь.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 04.03.2015 в 17:07.
Alex11223 вне форума Ответить с цитированием
Старый 04.03.2015, 18:09   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
одна кнопка под потоком работает
Показывай как сделал )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.03.2015, 18:28   #4
romantik1993
Пользователь
 
Регистрация: 12.03.2012
Сообщений: 99
По умолчанию

Не могу показать программу, так как нельзя ее светить в интернете, покажу небольшой пример.

тут программа чисто арифметическая, под первой кнопкой код прорабатывает через поток, мне нужно добавить еще один поток так чтобы вторая кнопка через другой поток

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
//Здесь необходимо описать класс TMyThread:
  TMyThread = class(TThread)
    private
    { Private declarations }
  protected
    procedure Execute; override;
  end;
var
  Form1: TForm1;
  //Нужно ввести переменную класса TMyThread
  MyThread: TMyThread;

implementation

{$R *.dfm}

//Нужно создать процедуру Execute, уже описанную в классе TMyThread
procedure TMyThread.Execute;
var
x:integer;
begin
x:=5+69;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
MyThread:=TMyThread.Create(False);
  MyThread.Priority:=tpNormal;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
y:integer;
begin
y:=56+99;
end;

end.
Вроде сам сделал

Подскажите нужно ли потоки синхронизировать, если они одновременно не работают?

Последний раз редактировалось Stilet; 04.03.2015 в 20:18.
romantik1993 вне форума Ответить с цитированием
Старый 04.03.2015, 19:30   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
так как нельзя ее светить в интернете
А че нельзя, сильно вумная?
Цитата:
Подскажите нужно ли потоки синхронизировать, если они одновременно не работают?
Ну основной то поток формы всегда есть
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.03.2015, 19:48   #6
romantik1993
Пользователь
 
Регистрация: 12.03.2012
Сообщений: 99
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А че нельзя, сильно вумная?Ну основной то поток формы всегда есть
Нет просто, ДИПЛОМ, а на форумах не один я шляюсь, могут увести(На счет умности не знаю, но не легкая, пока дорабатываю)

Цитата:
Сообщение от Аватар Посмотреть сообщение
А че нельзя, сильно вумная?Ну основной то поток формы всегда есть
Тогда подскажите пожалуйста синхронизировать на примере кода по первой кнопке который я выше выложил

Последний раз редактировалось Stilet; 04.03.2015 в 20:22.
romantik1993 вне форума Ответить с цитированием
Старый 04.03.2015, 20:15   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

На том примере нечего синхронизировать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.03.2015, 20:18   #8
romantik1993
Пользователь
 
Регистрация: 12.03.2012
Сообщений: 99
По умолчанию

а для чего применяется синхронизация, визуально на форме меняется только доюовление в memo миллионы значений
romantik1993 вне форума Ответить с цитированием
Старый 04.03.2015, 20:20   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Для обращений к VCL формы из потоков, для обращения к объектам и переменным из разных потоков, мало ли к чему

ADD

Memo тоже vcl, так к сведению
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.03.2015, 20:45   #10
romantik1993
Пользователь
 
Регистрация: 12.03.2012
Сообщений: 99
По умолчанию

а как тогда синхронизировать
romantik1993 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Три цикла в одной программе C# NeoX_2011 Помощь студентам 1 18.03.2012 16:56
2 задачи в одной программе Scredis Помощь студентам 3 19.01.2011 18:44
2 задания в одной программе. Scredis Помощь студентам 0 19.01.2011 10:12
Из потока прочитать созданный в программе объект. DIgorevich Общие вопросы Delphi 3 30.08.2010 08:16
Постоянный фокус на одной программе regman Общие вопросы Delphi 20 10.08.2009 11:07