![]() |
|
|
Регистрация | << Правила форума >> | 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
|
|||
|
|||
![]() теперь все работает, спасибо за помощ
![]() |