-
Как узнать адрес процедуры в потоке, из другого модуля этой же программы ? Пробовал следующие варианты при которых компилятор выдаёт сообщение 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;
-
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,Unit8;
type
TOpenedThread = class(b);
TForm6 = class(TForm)
...........................
Addr := @TOpenedThread.Execute;
-
Нельзя приводить адрес метода к простому указателю.
-
> San1712
И зачем это понадобилось ?
-
> Как узнать адрес процедуры в потоке, из другого модуля этой > же программы ?
TThread.Execute, небось, еще и объявлен как protected
Это не говоря уже о > Нельзя приводить адрес метода к простому указателю.
...и о самом главном, > зачем это понадобилось ?
-
Удалено модератором Примечание: мат
-
> icWasya © (27.03.08 09:21) [2]
Если потом умело использовать, то можно :)
|