Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

           Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
           И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - https://clck.ru/fCqwP

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2022, 20:28   #1
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 587
Счастье Как из функции получить несколько значений?

Здравствуйте!
Подскажите, пожалуйста, как из функции получить сразу несколько значений?
Женя32 вне форума Ответить с цитированием
Старый 21.01.2022, 21:36   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,075
По умолчанию

Либо через параметры, переданные по ссылке, либо возвращать тип record.
Arigato вне форума Ответить с цитированием
Старый 22.01.2022, 14:00   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 3,968
По умолчанию

Не обязательно record. Если возвращаемые данные одного типа - можно через array.
Код:
type ar2 = array[0..1] of Extended ;
........................... 
procedure TForm1.Button3Click(Sender: TObject);
var t: ar2 ;

function Two_Res(arg1,arg2:Extended) : ar2 ;
var tmp: ar2 ;
begin
  tmp[0] := arg1+ arg2 ;
  tmp[1] := arg1- arg2 ;
  Result := tmp
end;

begin
   t := Two_Res(3.0,5.0) ;
   S.Lines.Add(Format('%6.1f %6.1f',[t[0],t[1]]))
end;
Результат:
8,0 -2,0

Последний раз редактировалось digitalis; 22.01.2022 в 14:02.
digitalis вне форума Ответить с цитированием
Старый 22.01.2022, 14:48   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,075
По умолчанию

Да в общем и объект можно вернуть.
Arigato вне форума Ответить с цитированием
Старый 22.01.2022, 20:53   #5
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 587
Счастье

Функция должна возвращать три значения, два типа String, и один Integer.
Код:
function getWords(var s1, s2: String; var n Integer): Integer; export;
begin
    s1:='Go';
    s2:='Stop';
    result:=27;
end;
Я правильно сделал? Если да, то как в программе получить эти значения?
Женя32 вне форума Ответить с цитированием
Старый 22.01.2022, 21:08   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 6,772
По умолчанию

Код:
res := getWords(s1, s2, n);
// тут использовать s1, s2, res
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 22.01.2022, 21:44   #7
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 587
По умолчанию

Спасибо большой! Все получилось!
Женя32 вне форума Ответить с цитированием
Старый 27.01.2022, 22:23   #8
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 3,968
По умолчанию

Цитата:
Сообщение от Женя32 Посмотреть сообщение
Функция должна возвращать три значения, два типа String, и один Integer.
Код:
function getWords(var s1, s2: String; var n Integer): Integer; export;
begin
    s1:='Go';
    s2:='Stop';
    result:=27;
end;
Ну если она - функция, то
Код:
var n Integer
вроде как лишнее - Integer возвращается в виде значения функции, и в данном примере оно не используется.
digitalis вне форума Ответить с цитированием
Старый 27.01.2022, 22:26   #9
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 348
По умолчанию

Кстати, у меня схожий вопрос:
Можно ли в case засунуть одновременно несколько переменных?

То есть чтобы дерево вариантов строилось не от значения одной переменной, а от значений нескольких (двухмерное дерево)
Kronos913 вне форума Ответить с цитированием
Старый 27.01.2022, 22:51   #10
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,075
По умолчанию

Вложенные case-ы можно использовать.
Arigato вне форума Ответить с цитированием
Ответ

           Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
           Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из функции передать несколько значений? Rendw Общие вопросы Delphi 6 15.03.2020 07:50
Элемент СПИСОК. Выбираю несколько значений. Как получить выбранные значения? vldmlt Microsoft Office Access 1 15.05.2018 22:41
как из метода вернуть несколько значений oldsnowman Общие вопросы по Java, Java SE, Kotlin 5 28.08.2015 03:42
Как сравнить несколько значений...? zaki SQL, базы данных 3 12.12.2014 22:54
Как в MsgBox, выводить несколько значений valerij Microsoft Office Excel 12 22.03.2010 23:17