Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как передать в процедуру указатель на экземпляр класса?
|
|||
|---|---|---|---|
|
#18+
Посоветуйте пожалуйста. Нужно передать в процедуру указатель на класс, чтобы можно было работать в отдельном потоке с экземпляром этого класса. При компиляции компилятор выдает ошибку:[Error] (173): This form of method call only allowed for class methods. В чем может быть дело? uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, COMObj, OLECtrls, Grids, DBGrids, ComCtrls, ExtCtrls, DBCtrls, DB, DBTables; type TMainForm = class(TForm) Button1: TButton; MasterTable: TTable; DataSource: TDataSource; DBGrid1: TDBGrid; DBGrid2: TDBGrid; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; type MyThread=class(TThread) LocMasTable1=^TTable; procedure VarInit(LocMasTable:LocMasTable1); end; var MainForm: TMainForm; implementation {$R *.dfm} procedure MyThread.VarInit(LocMasTable:LocMasTable1); var Progress_counter:integer; str:String[14]; begin // Тело процедуры end; procedure TMainForm.Button1Click(Sender: TObject); begin MyThread.VarInit(addr(MasterTable)); MyThread.Create(False); MyThread.Priority:=tpNormal; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2002, 18:34 |
|
||
|
Как передать в процедуру указатель на экземпляр класса?
|
|||
|---|---|---|---|
|
#18+
Самое интересное не написал, ошибка-то, небось, в теле треда выдаётся. А вообще, зря к указателям переводишь. Имя переменной какого-либо класса само по себе указатель (если var), то есть так по идее должно работать: procedure MyThread.VarInit(var LocMasTable:TTable); var Progress_counter:integer; str:String[14]; begin // Тело процедуры LocMasTable.Open; end; procedure TMainForm.Button1Click(Sender: TObject); begin MyThread.VarInit(MasterTable); MyThread.Create(False); MyThread.Priority:=tpNormal; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2002, 06:26 |
|
||
|
|

start [/forum/topic.php?fid=58&tid=2119839]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 277ms |
| total: | 382ms |

| 0 / 0 |
