Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.014 c
1-30388
a
2003-03-30 09:24
2003.04.10
какая технология позволяет проделать вот такое -


1-30352
OxOTHuK
2003-03-29 07:37
2003.04.10
Передача данных в Консоль


1-30333
Intell
2003-03-30 14:35
2003.04.10
MouseMove в DriveComboBox?


6-30483
JMER
2003-02-10 10:05
2003.04.10
CGI - exe поиск сервера


4-30652
Дмитрий_М
2003-02-10 16:23
2003.04.10
WaitForMultipleObjects




   Наверх