|
|
Регистрация | << Правила форума >> | 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
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#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; Не забывайте делать резервные копии |