Вниз
Скачать: CL | DM;

Помогите с динамическими массивами...   Найти похожие ветки 

← →
Cr@sh ©   (2002-10-12 17:36) [0]

Подскажите, где моя ошибка?

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 18:47) [1]

Ну неучто никто не знает?


← →
Anatoly P   (2002-10-12 18:54) [2]

Число 10 как-нибудь связано с кол-вом строк в файле?


← →
Anatoly Podgoretsky ©   (2002-10-12 18:59) [3]

Тоже самое, размер устанавливаешь по memo1.Lines.Count, потом неожиданно цикл на 11 элементов и вообще не понятно для чего нужен массив?


← →
TTCustomDelphiMaster ©   (2002-10-12 19:12) [4]

Зачем Вы освобождаете память finalize(x); если не Вы ее выделяли.


← →
Anatoly P   (2002-10-12 19:12) [5]

for i:=0 to memo1.Lines.Count-1 do вместо твоей строки


← →
Cr@sh ©   (2002-10-12 19:44) [6]

Спасибо всем огромное!
Все заработало.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.013 c
14-78663
aga
2002-10-04 20:16
2002.10.24
Фонт


3-78218
Rom Shell
2002-10-04 11:18
2002.10.24
Переиндексация


14-78618
Snake2000
2002-10-03 13:07
2002.10.24
Звукосниматель


4-78734
EndDie
2002-09-10 12:43
2002.10.24
ReadProcessMemory


1-78379
Демонов Е.В.
2002-10-14 13:54
2002.10.24
Вопрос про SetForegroundWindow




   Наверх