|
Вопрос # 3 264/ вопрос открыт / |
|
Здравствуйте, эксперты!
У меня такая проблема: в обработчике события FormCreate пишу код.
Весь код выполняется нормально, но когда он заканчивает выполнятся, (т.е на последнем end; ) - происходит ошибка Invalid Pointer Operation; при этом дальше программа стартует без проблем и все работает. подскажите пожалуйста, как убрать эту ошибку?
Приложение: Переключить в обычный режим- var strmas: array of string;
- nowSelect: integer;
- k: integer;
-
- ...
- ...
-
- procedure TForm1.FormCreate(Sender: TObject);
- var F: TIniFile;
- p: string;
- I: Integer;
- begin
- Label2.Caption:=DateToStr(Now);
- //
- p:=ExtractFileDir(Application.ExeName)+'\data.dat';
- F := TIniFile.Create(p);
- try
- if FileExists(p) then
- begin
- k:=F.ReadInteger('AllCounts','Counts',1);
- SetLength(strmas, k);
- for I := 1 to k do
- strmas[i]:=F.ReadString('Zametki', IntToStr(i), '');
- nowSelect:=1;
- Label9.Caption:=IntToStr(nowSelect);
- Button2.Enabled:=true;
- Button3.Enabled:=true;
- RichEdit1.Text:=strmas[nowSelect];
- end;
- finally
- F.Free;
- end;
- end;
 |
Вопрос задал: IlluminatI (статус: 2-ой класс)
Вопрос отправлен: 8 октября 2009, 22:26
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Amidamaru
Здравствуйте, IlluminatI!
Скорее всего это изза строчки
for I := 1 to k do
Индексы динамических массивов ВСЕГДА начинаются с нуля. Т.е. тут должно быть
for I := 0 to k-1 do
ИЛИ в сл. строчке
strmas[i-1] ...
 |
Ответ отправил: Amidamaru (статус: 4-ый класс)
Время отправки: 8 октября 2009, 22:40
Оценка за ответ: 5
Комментарий к оценке: ага, спасибо) я уж сам разобрался)
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|