![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Шушпан |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 8 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите пожалуйста
Я пишу процедуру, которая осуществляет добавление элемента в массив при нажатии кнопки. Но при проверке работы выдается ошибка... в чем дело, понять не могу. Не подкажете? Код type words=array of string; procedure add_to_array(var base:words; rus:string); var k,i:integer; tmp:words; begin i:=length(base); tmp:=nil; setlength(tmp,i+1); for k:=1 to i do begin tmp[k]:=base[k]; end; tmp[i+1]:=rus; base:=nil; i:=i+1; setlength(base,i); base:=copy(tmp,0,i); end; procedure TForm1.baseframeaddbuttonClick(Sender: TObject); var i,k:integer; str,rus:string; base:words; begin rus:=baseframe.rusword.Text; i:=length(base); add_to_array(base,rus); end; plz |
![]() ![]() |
Martyr |
![]()
Сообщение
#2
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Репутация: ![]() ![]() ![]() |
Хотя бы вот:
Код tmp[i+1]:=rus; но Код setlength(tmp,i+1); т. е. индекс последнего элемента будет i, а не i + 1 И вообще, все как-то усложнено. Можно и попроще: Код procedure add_to_array(var base: words; const rus: string); var i: integer; begin i := length(base); setlength(base, i + 1); base[i] := rus; end; |
![]() ![]() |
![]() |
Текстовая версия | 24.07.2025 3:29 |