![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите с динамическими массивами...
Cr@sh © (2002-10-12 17:36:00)Подскажите, где моя ошибка?
type
TForm1 = class(TForm)
M1: TMainMenu;
Button1: TButton;
Memo1: TMemo;
Main1: TMenuItem;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
x:array of TMenuItem;
i:integer;
procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Lines.LoadFromFile("C:\items.txt");
setlength(x,memo1.Lines.Count);
for i:=0 to 10 do
begin
x[i]:=TMenuItem.Create(self);
x[i].Name:="n"+inttostr(i);
x[i].Caption:=memo1.Lines[i];
end;
m1.Items.items[0].Add(x);
finalize(x);
end;
end.
Если не ставить файналайз, то все работает хорошо, но при закрытии программы вылетает ошибка "Инвэлид поинтер валу"
А с файналайзом сразу после нажатия "аццесс виолатэйшн".
Где моя ошибка?
Заранее спасибо.
Cr@sh (2002-10-12 19:44:00) [1]Спасибо всем огромное!
Все заработало.
TTCustomDelphiMaster (2002-10-12 19:12:00) [2]Зачем Вы освобождаете память finalize(x);если не Вы ее выделяли.
Anatoly P (2002-10-12 19:12:00) [3]for i:=0 to memo1.Lines.Count-1 do вместо твоей строки
Anatoly Podgoretsky (2002-10-12 18:59:00) [4]Тоже самое, размер устанавливаешь по memo1.Lines.Count, потом неожиданно цикл на 11 элементов и вообще не понятно для чего нужен массив?
Anatoly P (2002-10-12 18:54:00) [5]Число 10 как-нибудь связано с кол-вом строк в файле?
Cr@sh (2002-10-12 18:47:00) [6]Ну неучто никто не знает?