| 
| 
 | Вопрос # 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
 Комментарий к оценке: ага, спасибо) я уж сам разобрался) |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |