Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.10;
Скачать: CL | DM;

Вниз

Работа с классами   Найти похожие ветки 

 
DenisX   (2003-03-30 15:30) [0]

Всем привет! Подскажите в чем проблема? При использовании метода
Create возникает ошибка. Заранее благодарю.


unit VObj;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls, Grids;

type
str22=string[22];

TElement=record
Fam:str22;
Kniga:str22;
Shifr:str22;
God:integer;
Kolvo:integer;
end;

Mas=array of TElement;
TAvtor=class
pV:^Mas;//
schet, schet2:integer;
constructor Create(a:integer);
destructor Destroy;
end;

FT=file of TElement;

implementation

uses Vec, Poi, Dob;

constructor TAvtor.Create(a:integer);
begin
GetMem(pV,a); //Здесь возникает ошибка
schet2:=a;
schet:=a;
end;

destructor TAvtor.Destroy;
begin
FreeMem(pV);
pV:=nil;
end;

end.


 
Palladin ©   (2003-03-30 16:34) [1]

когда ты говоришь array of TYPE, то переменная этого типа уже является указателем,

что получается в твоем случае...
pV является указателем на указатель... тоесть на область памяти в 4 байта, ты же под него выделяешь [a] байт...
конечно будет ошибка...

unit VObj;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls, Grids;

type
str22=string[22];

TElement=record
Fam:str22;
Kniga:str22;
Shifr:str22;
God:integer;
Kolvo:integer;
end;

Mas=array of TElement;
TAvtor=class
pV:Mas;//
schet, schet2:integer;
constructor Create(a:integer);
destructor Destroy;
end;

FT=file of TElement;

implementation

uses Vec, Poi, Dob;

constructor TAvtor.Create(a:integer);
begin
SetLength(pV,a); //Здесь больше не будет возникать ошибки
schet2:=a;
schet:=a;
end;

destructor TAvtor.Destroy;
begin
pV:=nil;
end;

end.



Страницы: 1 вся ветка

Текущий архив: 2003.04.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
14-30594
race1
2003-03-26 07:19
2003.04.10
size


1-30394
bIzET
2003-03-30 13:19
2003.04.10
menu


7-30627
AGGRESSOR
2003-02-04 15:08
2003.04.10
Объем видеопамяти


3-30307
Step[B.M.]
2003-03-23 01:57
2003.04.10
DBF. Данные в DOS кодировке. Корректно не отображаются в гриде.


1-30449
OlBan
2003-03-31 09:17
2003.04.10
Как программно выбрать другое окно приложения?