Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


San1712 ©   (2008-03-27 05:41:00) 

Как узнать адрес процедуры в потоке, из другого модуля этой же программы ? Пробовал следующие варианты при которых компилятор выдаёт сообщение 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;


evvcom   (2008-03-29 17:07:00) [1]


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

Если потом умело использовать, то можно :)


vl_chel   (2008-03-28 09:34:00) [2]

Удалено модератором
Примечание: мат


DrPass   (2008-03-27 21:35:00) [3]


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


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

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


...и о самом главном,
> зачем это понадобилось ?


Сергей М.   (2008-03-27 09:40:00) [4]


> San1712


И зачем это понадобилось ?


icWasya   (2008-03-27 09:21:00) [5]

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


Loginov Dmitry   (2008-03-27 07:45:00) [6]

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,Unit8;{Unit8 это модуль потока}
type
TOpenedThread = class(b);

TForm6 = class(TForm)

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо