Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 6

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
Колбэк:

Код:
  function ThreadCallback(LpParameter: PThreadParams): DWORD; stdcall;
  var
    i: Integer;
    h: THandle;
    s1,s2: WideString;
  begin
    Result := 0;
    SetThreadPriority(thread, THREAD_PRIORITY_LOWEST);
    h := GetDlgItem(LpParameter.Handle, IDC_TITLE);
    s1 := LpParameter.pszAnsi;
    Dispose(LpParameter);
    i := 0;
    repeat
      Inc(i);
      s2 := FormatW('i = %d', [i]);
      SendMessageW(h, WM_SETTEXT, 0, LPARAM(LPWSTR(s2)));
      Sleep(150);
    until
      (i >= 100) or terminate;
    if not terminate then
      SendMessageW(h, WM_SETTEXT, 0, LPARAM(LPWSTR(s1)));
    CloseHandle(thread);
    thread := 0;
  end;

 
Пуск:
 

Код:
          SendMessageW(hWnd, WM_COMMAND, MakeWParam(IDC_STOP, BN_CLICKED), 0);
          if ((thread = 0) and terminate) then
          begin
            New(params);
            if (params <> nil) then
            begin
              params.Handle  := hWnd;
              params.pszAnsi := 'text';
              terminate := FALSE;
              thread := CreateThread(
                nil,
                0,
                @ThreadCallback,
                params,
                0,
                ThreadID
              );
            end;
          end;

 
Стоп:
 

Код:
          terminate := TRUE;
          if (thread <> 0) then
            WaitForSingleObject(thread, 500);
          if (thread <> 0) then
          begin
            GetExitCodeThread(thread, dwRet);
            TerminateThread(thread, dwRet);
            CloseHandle(thread);
            thread := 0;
          end;

 

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 13:34 12-01-2011 | Исправлено: Maks150988, 14:30 12-01-2011
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 6


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru