powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как передать в процедуру указатель на экземпляр класса?
2 сообщений из 2, страница 1 из 1
Как передать в процедуру указатель на экземпляр класса?
    #32051129
Denis Vasilenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посоветуйте пожалуйста.
Нужно передать в процедуру указатель на класс, чтобы можно было работать в отдельном потоке с экземпляром этого класса. При компиляции компилятор выдает ошибку:[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;
...
Рейтинг: 0 / 0
Как передать в процедуру указатель на экземпляр класса?
    #32051185
Фотография Luchkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое интересное не написал, ошибка-то, небось, в теле треда выдаётся. А вообще, зря к указателям переводишь. Имя переменной какого-либо класса само по себе указатель (если 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;
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как передать в процедуру указатель на экземпляр класса?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]