Главная страница
    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.008 c
4-11539
kex86
2002-09-22 03:43
2002.11.04
---|Ветка была без названия|---


14-11396
RV
2002-10-17 12:19
2002.11.04
Про железки. Переходник с PCI на USB


3-11126
Jony
2002-10-16 13:41
2002.11.04
Редактирование записи (без сохранения) ADOStoredProc.


6-11369
tararasyk
2002-09-05 13:26
2002.11.04
Уничтожить ClientSocket, конструктор Create(), метод Free()


14-11431
Dim!S
2002-10-15 12:43
2002.11.04
Смена раскладки





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский