Конференция "Основная" » Как узнать адрес процедуры в потоке из модуля этой же программы? [D7, WinXP]
 
  • San1712 (27.03.08 05:41) [0]
    Как узнать адрес процедуры в потоке, из другого модуля этой же программы ? Пробовал следующие варианты при которых компилятор выдаёт сообщение Undeclared identifier: 'Execute'.
    interface

    uses
     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     Dialogs, StdCtrls, ExtCtrls,Unit8;{Unit8 это модуль потока}
    type
     TForm6 = class(TForm)
       Panel1: TPanel;
       Label1: TLabel;
       ListBox1: TListBox;
       Edit1: TEdit;
       Button1: TButton;
       procedure Button1Click(Sender: TObject);
       procedure FormCreate(Sender: TObject);
     private
      pr:b;
       { Private declarations }
     public
       { Public declarations }
     end;

    var
     Form6: TForm6;

    implementation
    uses Unit1;
    ......
    var Addr:Pointer;
    begin
    Addr := @b.Execute;
    ______________________________
    uses
     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     Dialogs, StdCtrls, ExtCtrls;
    type
     TForm6 = class(TForm)
       Panel1: TPanel;
       Label1: TLabel;
       ListBox1: TListBox;
       Edit1: TEdit;
       Button1: TButton;
       procedure Button1Click(Sender: TObject);
       procedure FormCreate(Sender: TObject);
     private
      pr:b;
       { Private declarations }
     public
       { Public declarations }
     end;

    var
     Form6: TForm6;

    implementation
    uses Unit1,Unit8;
    .........
    var Addr:Pointer;
    begin
    Addr := @b.Execute;
  • Loginov Dmitry © (27.03.08 07:45) [1]
    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, ExtCtrls,Unit8;{Unit8 это модуль потока}
    type
    TOpenedThread = class(b);

    TForm6 = class(TForm)

    ...........................
    Addr := @TOpenedThread.Execute;

  • icWasya © (27.03.08 09:21) [2]
    Нельзя приводить адрес метода к простому указателю.
  • Сергей М. © (27.03.08 09:40) [3]

    > San1712


    И зачем это понадобилось ?
  • DrPass © (27.03.08 21:35) [4]

    > Как узнать адрес процедуры в потоке, из другого модуля этой
    > же программы ?


    TThread.Execute, небось, еще и объявлен как protected

    Это не говоря уже о
    > Нельзя приводить адрес метода к простому указателю.


    ...и о самом главном,
    > зачем это понадобилось ?
  • vl_chel © (28.03.08 09:34) [5]
    Удалено модератором
    Примечание: мат
  • evvcom © (29.03.08 17:07) [6]

    > icWasya ©   (27.03.08 09:21) [2]

    Если потом умело использовать, то можно :)
 
Конференция "Основная" » Как узнать адрес процедуры в потоке из модуля этой же программы? [D7, WinXP]
Есть новые Нет новых   [134484   +49][b:0][p:0.001]