![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем привет. Подскажите пожалуйста как получить результат работы функции, понимаю вопрос глупый, но все же не знаю как это сделать =)
есть функция: Код:
function TStreetShow.GetStreetLength(index: integer): string; begin Result:=self.FLength[index]; end; procedure TForm1.FShowClick(Sender: TObject); Код:
begin FMyStreetsLength.Lines.Add(MyStreetShow.GetStreetLength(1)); end; Результат- в Memo появляется пустая строка. Заранее спасибо. Последний раз редактировалось davin4u, 13.06.2009 в 21:18. |
|
#2
|
||||
|
||||
|
Ну поскольку вроде все правильно, предположу, что Result:=self.FLength[index] - действительно пустота. Проверьте отладчиком, что там реально находится, есть у меня подозрение, что вы с индексом элемента в массиве что-то путаете.
|
|
#3
|
|||
|
|||
|
Спасибо, нашел где была ошибка
|
|
#4
|
|||
|
|||
|
Возник еще один вопрос связанный с работой с функциями
Можно ли заносить в функцию 2 значения? если можно то как? потому что я пробовал, выдавалась ошибка, связанная с вводимыми в функцию типами данных, хотя оба вводимых значения были одного типа. Если нельзя вводить несколько значений, то можно ли как результат, вывести из функции двумерный массив? вот пример того как я пытался делать: Код:
Function GetMass(var num1:integer; num2:integer):integer; begin Result:=num1+num2; end; |
|
#5
|
||||
|
||||
|
Зачем вам здесь var в описании? Почитайте про передачу параметров.
Код:
Function GetMass(num1,num2:integer):integer; begin Result:=num1+num2; end; Можно и двумерный массив: Код:
Type TDualArray = array[1..2,1..2] of integer; function DualArray: TDualArray; begin end; |
|
#6
|
|||
|
|||
|
Попробовал сделать чтобы результатом работы функции был двумерный массив, возникла новая проблема =(
как теперь занести в другой массив результат работы функции? mass:=Board.DualArray, не выходит, ошибка в типах данных, mass-массив, а DualArray- класс TDualArray ? |
|
#7
|
||||
|
||||
|
Покажите какой именно тип у mass
|
|
#8
|
|||
|
|||
|
Код:
mass: array [1..8,1..8] of integer; |
|
#9
|
||||
|
||||
|
Цитата:
Подаем в нее две переменных, они каким то образом изменяются (уже внутри процедуры) и результат их изменения идет уже наружу в те же переменные, которые были поданы в качестве параметров в процедуру. Из-за двух переменных заводить массив както не так. Хотя я не знаю что это за переменные и какая стоит задача - может быть и правильное решение. |
|
#10
|
|||
|
|||
|
В функции у меня получается массив данных, и мне его нужно вывести наружу, т.е. после того как функция все сделала что нужно было, переменной Result присваивается двумерный массив. Как мне теперь присвоить массиву находящемуся за пределами функции, значение этого Result ?
|
|
#11
|
||||
|
||||
|
Цитата:
А ошибка у вас возникает, потому как надо было задавать тип переменной и результат функции одинаковым, а не похожим внешне: Код:
mass: TDualArray; Последний раз редактировалось Страдалецъ, 19.06.2009 в 21:45. |
|
#12
|
|||
|
|||
|
теперь все работает, спасибо за помощ
![]() |