![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() При использовании массива созданного в процедуре у него не сохраняются значения,вот в таком виде нули выдает:
Код:
var Form1: TForm1; d: array[0..10] of integer; i:integer; procedure x(d: array of integer); procedure TForm1.Button1Click(Sender: TObject); begin x(d); for i:=0 to 10 do memo1.Lines.Add(inttostr(d[i])); end; procedure x(d: array of integer); begin for i:=0 to 10 do begin d[i]:=i; //form1.memo1.Lines.Add(inttostr(d[i])); end; end; А если выводить прямо из процедуры в мемо то все нормально работает. Наверное в записи что то поменять нужно, подскажите что. |
#2
|
||||
|
||||
![]() procedure x(var d: array of integer);
Пишу программы за еду. __________________ |
#3
|
|||
|
|||
![]() Благодарю, проглядел
|
#4
|
|||
|
|||
![]() Но вот здесь про var немного другое написано
http://www.delphi-manual.ru/lesson9.php Цитата:
|
#5
|
|||
|
|||
![]() если без var, то делается копия переменной, соответственно что ты меняешь в процедуре делается в копии и на оригинал не влияет
|
#6
|
|||
|
|||
![]() Поразбирался еще и возникает вопрос,а зачем вообще что то в скобках в процедуре писать, если и так ссылки на глобальные переменные будут? А локальные переменные все равно ниже задаются. В чем сакральный смысл переменных в скобках?
|
#7
|
||||
|
||||
![]() При использовании в одном юните смысла мало. Теперь представь, что процедура в другом юните или, что "приятнее", в DLL. Что тогда? Как передавать будешь?
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#8
|
||||
|
||||
![]() А если так:
Код:
procedure a(b:integer); begin ... end; procedure c; var k:integer; begin ... a(k); end; jmp $ ; Happy End! The Cake Is A Lie. |
#9
|
|||
|
|||
![]() Понял,спасибо
|