![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Runtime error - array of string как атрибут класса [D7, XP]
Tassadar © (2010-05-08 19:35:00)Всем привет!
Очень давно не садился за Делфи, а вот сейчас появилась необходимость написать одну программку, и столкнулся с такой проблемой.
Есть какой-то класс, одним из атрибутов которого является array of string. Например, такой:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TTest = class(TObject)
public
arr: array of string;
private
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
Test:TTest;
begin
Test.Create;
end;
end.
При создании объекта Test выдает Runtime error - access violation.
При этом если в описании arr убрать array и оставить просто string, программа работает.
Я чувствую, что где-то здесь я дурак, но не могу понять, где именно. Подскажите, пожалуйста, если найдете минутку, почему возникает ошибка, и как было бы правильно работать с атрибутами класса вида array of string?
Заранее спасибо.
sniknik (2010-05-08 19:49:00) [1]> почему возникает ошибка
это чудо... вполне серьезно, результат подобного "создания" непредсказуем, т.е. ошибки могло и не быть, но это все равно было бы неправильным, и в конце концов "рвануло бы" только с большими последствиями.
т.что кто то тебя хранит...
Tassadar (2010-05-08 19:47:00) [2]Точно, Test := TTest.Create.
Спасибо :-)
Германн (2010-05-08 19:45:00) [3]
> Я чувствую, что где-то здесь я дурак, но не могу понять,
> где именно.
Вот тут:
> Test.Create;
>