Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.09.2002, 18:34
|
|||
|---|---|---|---|
|
|||
Как передать в процедуру указатель на экземпляр класса? |
|||
|
#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; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.09.2002, 06:26
|
|||
|---|---|---|---|
|
|||
Как передать в процедуру указатель на экземпляр класса? |
|||
|
#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; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

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

| 0 / 0 |
