![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Добрый день!
Народ помогите кто может. Мне надо использовать указатель на класс. т.е. нашел вот такой пример http://delphiworld.narod.ru/base/dyn...ribution2.html Но у меня класс, что самое главное с типом record все работает на ура а вот с типом class не хочет. Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
PNewClass = ^TNewClass;
TNewClass = class
FField :string;
end;
(* Вот так работает
type
PNewClass = ^TNewClass;
TNewClass = record
FField :string;
end;
*)
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
b : PNewClass;
begin
new(b);
b^.FField := '3';
label1.Caption := b^.FField;
Dispose(b);
end;
end.
|
|
#2
|
||||
|
||||
|
На класс, помоему, указатель нельзя делать, т.к. класс сначала должен создаваться конструктором. Попробуй указатель на type TMyObj=object
|
|
#3
|
|||
|
|||
|
Переменная типа класса и есть указатель на класс, после того как экземпляр класса создан.
Код:
type
// PNewClass = ^TNewClass;
TNewClass = class
FField :string;
end;
...
procedure TForm1.Button1Click(Sender: TObject);
var
b : TNewClass;
begin
b := TNewClass.Create; //в этот момент "b" становится указателем на класс
b.FField := '3';
label1.Caption := b.FField;
b.Free;
end; |