Конференция "KOL" » работа с потоками
 
  • Лёха (13.06.09 17:02) [0]
    Добрый день!
    Скачал пример работы с потоками, а он с использованием MCK, мне нужно в чистом KOL.

    вот кусок:

    var
     formThread: PThread;

    function ThreadExecute(Sender: PThread): Integer;
    begin
     // тут выполняем какие-либо действия
    end;

    begin
     form := NewForm(Applet, 'Окно');
     Run(form);
     formThread := NewThread;
     formThread.OnExecute := ThreadExecute;
    end;



    получаю такое:
    [Error] Project99.dpr(39): Incompatible types: 'method pointer and regular procedure'

    через MakeMethod тоже не работает:
    [Error] Project99.dpr(39): Incompatible types: 'TOnThreadExecute' and 'TMethod'

    помогите плиз, как этот метод присвоить?

    Заранее спасиб!!!
  • Galkov (13.06.09 17:22) [1]
    Program ThreadTest;
    uses  windows,kol;

    type Tsdk=object
     Thread: PThread;
     function ThreadExecute(Sender: PThread): Integer;
    end;

    var SDK:Tsdk;

    function Tsdk.ThreadExecute(Sender: PThread): Integer;
    begin
     // тут выполняем какие-либо действия
     Result := 0;
    end;

    begin
     Applet := NewForm(Applet, 'Окно');
     SDK.Thread := NewThread;
     SDK.Thread.OnExecute := SDK.ThreadExecute;
     Run(Applet);
    end.

  • Лёха (13.06.09 17:35) [2]
    спасибо! но я сделал чуть по-другому:
    formThread.OnExecute := TOnThreadExecute(MakeMethod(nil, @ThreadExecute));
  • Galkov (13.06.09 20:40) [3]
    1) Да не вопрос, можно и так
    2) Есть такой термин - чит. Это то, чем не следует пользоваться без крайней необходимости :)
  • abyss_by © (13.06.09 22:58) [4]
    var
    MyThread: PThread;

    procedure TForm1.FormThreadShow;
    begin
     if Assigned(ToolTipThread) then
      MyThread.Terminate;
      MyThread := NewThreadAutofree(ShowThread);//ShowThread будет ниже
      MyThread.PriorityClass := THREAD_PRIORITY_IDLE;// тут на усмотрение конечно
      MyThread.Threadpriority := THREAD_PRIORITY_LOWEST;
    end;

    function TForm1.ShowThread(Sender: pThread): integer;
    begin
    //tratata
    end;
 
Конференция "KOL" » работа с потоками
Есть новые Нет новых   [134431   +11][b:0][p:0.001]