1. kenutary12.03.2025 в 20:54от
Загрузка...

Дополнительный поток в программе [Delphi]

Тема в разделе "С/С++/Pascal/Delphi", создана пользователем fenks, 19.05.2012.

  1. fenks

    fenks

    Статус:
    Оффлайн
    Регистрация:
    18.05.12
    Сообщения:
    195
    Репутация:
    105 +/-
    Всем привет, я хотел бы рассказать как сделать так, что бы программа при свой работе не зависала и мы ее могли спокойно перемещать/сворачивать.
    Ну что приступим! После
    Код:
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    объявляем класс, наследующий класс TThread:
    Код:
    TNewThread = class(TThread)
      private
      protected
     // переопределяем метод Execute
        procedure Execute; override;
      public
        constructor Create(CreateSuspended: Boolean);
      end;
    жмем ctrl+shift+c
    Создается
    Код:
    constructor TNewThread.Create(CreateSuspended: Boolean);
    begin
      inherited Create(CreateSuspended);
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     TNewThread.Create(false);//запуск нашего потока
    end;
    
    procedure TNewThread.Execute; //показывам что будит делать поток.
    begin
    // Тут программа выполняет какую-то вашу работу.
    end;
    Вот и все (:
     
  2. dan9

    dan9

    Статус:
    Оффлайн
    Регистрация:
    14.09.11
    Сообщения:
    184
    Репутация:
    81 +/-
    Запихиваю туда свой код, например код чекера. Он выделяет все ( мемо edit и т.д. ) красным...
    Что я не так делаю ?
     
  3. BrewMaster :3

    BrewMaster :3

    Статус:
    Оффлайн
    Регистрация:
    28.03.12
    Сообщения:
    678
    Репутация:
    283 +/-
    Копипаст с хэпика =) а так окай. молодцом. Плусик получи.
     
  4. dan9

    dan9

    Статус:
    Оффлайн
    Регистрация:
    14.09.11
    Сообщения:
    184
    Репутация:
    81 +/-
    Как блин с потоками разобраться :scratch_one-s_head:
     
  5. fenks

    fenks

    Статус:
    Оффлайн
    Регистрация:
    18.05.12
    Сообщения:
    195
    Репутация:
    105 +/-
    Выложи код помогу.
     
  6. dan9

    dan9

    Статус:
    Оффлайн
    Регистрация:
    14.09.11
    Сообщения:
    184
    Репутация:
    81 +/-
     
  7. fenks

    fenks

    Статус:
    Оффлайн
    Регистрация:
    18.05.12
    Сообщения:
    195
    Репутация:
    105 +/-

    Если у тебя форма form1 то перепиши мое.
     
  8. dan9

    dan9

    Статус:
    Оффлайн
    Регистрация:
    14.09.11
    Сообщения:
    184
    Репутация:
    81 +/-
    А что вы собственно сделали ?
    Я спрашивал как добавить потоки (сделать многопоточное приложение, например 10-20-50), но что то не заметил в вашем коде)
    Я так понимаю вы добавили 1 поток ?
     
  9. fenks

    fenks

    Статус:
    Оффлайн
    Регистрация:
    18.05.12
    Сообщения:
    195
    Репутация:
    105 +/-
    Ты сказал у тебя ерор дают, я исправил.
    Как добавить больше потоков?
    - Синхронизируй или добавь критичиские секции.
     
  10. BrewMaster :3

    BrewMaster :3

    Статус:
    Оффлайн
    Регистрация:
    28.03.12
    Сообщения:
    678
    Репутация:
    283 +/-
    добавь пожалуйста в скайп, обсудить с кодами кое что надо.
     
  11. dan9

    dan9

    Статус:
    Оффлайн
    Регистрация:
    14.09.11
    Сообщения:
    184
    Репутация:
    81 +/-
    Ну я имел ввиду, как прально потоки добавить, как в 1 посту не получилось.
     
  12. fenks

    fenks

    Статус:
    Оффлайн
    Регистрация:
    18.05.12
    Сообщения:
    195
    Репутация:
    105 +/-
    В 1 посту это дополнительный поток, для того что бы форма не зависала.
    Про дополнительные потоки я уже скал : Синхронизируй или используй критичиские секции.

    Может мне проще весь код написать за тебя?
     
  13. dan9

    dan9

    Статус:
    Оффлайн
    Регистрация:
    14.09.11
    Сообщения:
    184
    Репутация:
    81 +/-
    А статейку не подскажешь ?