Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
3-11042
VikOss
2002-10-14 16:59
2002.11.04
Удаление


4-11542
raiks
2002-09-21 20:33
2002.11.04
Как запретить получение фокуса компонентом TMemo?


1-11188
Weare
2002-10-24 14:34
2002.11.04
Как распечатать *.jpg файл


3-11047
Metallex
2002-10-14 17:53
2002.11.04
Referential Integrity. Каскадное обновление.


14-11458
DeMoN-777
2002-10-16 01:56
2002.11.04
Autoexec.bat





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский