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

Вниз

Как обратится к элементу динамического массива?   Найти похожие ветки 

 
CrowD ©   (2002-10-22 15:30) [0]

Привет, All!

есть код
~~~~
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,IniFiles;

type Class1 = class
public
x : integer;
end;

type Class2 = class
public
c1_ : array of Class1;
end;

TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
c2 : Class2;
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}



procedure TForm1.Button1Click(Sender: TObject);
begin
c2 := Class2.Create;
SetLength(c2.c1_,3);
c2.c1_[1].x:= 3;
end;

end.
~~~~~
при обращении исполнении строки
c2.c1_[1].x:= 3;
врывает и выдаёт дамп памяти, типа не может обратится, объясните как коректно занести туда значение?


 
MBo ©   (2002-10-22 15:34) [1]

А кто будет экземпляры class1 создавать?


 
Vint ©   (2002-10-22 15:46) [2]

если c2.c1_[1].x:= 3;
то вроде предел должен устанавливаться SetLength(c2.c1_, 4);




 
Skier ©   (2002-10-22 15:47) [3]

>Vint
Attention required !

???!!!


 
Андрей Прокофьев ©   (2002-10-22 15:50) [4]

2 Vint © (22.10.02 15:46)
Сильно! :))


 
CrowD ©   (2002-10-22 16:39) [5]

MBo>

так в том то и дело что Class1 это динамический массив, как его если не с помощью SetLength создавать, объясните пожалуста



 
Skier ©   (2002-10-22 16:43) [6]

>CrowD

var
AClass1 : Class1;
begin
SetLength(c2.c1_,3);
AClass1 := Class1.Create;
try
c1_[1] := AClass1;
c2.c1_[1].x:= 3;
finally
AClass1.Free;
end; //try
end;


 
Skier ©   (2002-10-22 16:46) [7]

>CrowD
Но,IMHO, лучше через - TList или TObjectList


 
MBo ©   (2002-10-22 17:18) [8]

Стоит ли?
>finally
> AClass1.Free;


 
Skier ©   (2002-10-23 10:41) [9]

>MBo
Это ты про :

- использвание try-блока ?
- использование переменной AClass ?
- освобождение объекта ?


 
han_malign ©   (2002-10-23 10:50) [10]

нет бы объяснить человеку что в Delphi class и record, в отличие от C++, не одно и тоже, и статического объявления объектов тоже нет.
(на всякий случай - в C++ - struct это класс, но по умолчанию public)



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

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

Наверх




Память: 0.49 MB
Время: 0.02 c
3-11050
Diesel_x34
2002-10-14 22:34
2002.11.04
Накрылась база!!!


1-11245
Dok_3D
2002-10-25 13:22
2002.11.04
Передача больших по значению параметров на удаленные COM-сервера.


14-11437
AL2002
2002-10-15 12:15
2002.11.04
Как запустить дллку?


14-11395
ICQ
2002-10-13 22:50
2002.11.04
Принцип работы собирания мыл


1-11335
KIR
2002-10-24 12:12
2002.11.04
Можно ли скрыть MDI Child форму?