Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2011, 20:12   #1
LexaL
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 12
По умолчанию Создание функций

Подскажите пожалуйста, можно ли создать функцию возвращающую несколько параметров (2 и более)? Если можно, то так это сделать? За примеры, спасибо!
LexaL вне форума Ответить с цитированием
Старый 05.05.2011, 20:18   #2
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Тогда возникает вопрос как отработать несколько вернувшихся от функции значений?

Такчто нельзя. Лучше опиши что нужно сделать.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 05.05.2011, 20:20   #3
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Функция может возвращять любые параметры, включая тип record, и массивы. Зачем возвращать 2 параметра, если можно вернуть массив заполненый данными?
vovk вне форума Ответить с цитированием
Старый 05.05.2011, 20:32   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Можно использовать var параметры для возврата результатов
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.05.2011, 20:37   #5
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Можно использовать var параметры для возврата результатов
тут не согласен, var можно использовать для изменения переменных, а не для возврата результата.

Последний раз редактировалось vovk; 05.05.2011 в 20:40.
vovk вне форума Ответить с цитированием
Старый 05.05.2011, 20:38   #6
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Можно использовать var параметры для возврата результатов
Это значит что функция будет работать с ссылкой, а не с параметром.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 05.05.2011, 20:59   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Ну вообще-то может вернуть хоть 100 хоть 200 значений... я делаю это так...

Код:

//Функция... 
{
параметры p1,p2,p3,p4 это ВЫХОДНЫЕ параметры ИЗ функции.. 
}
function some(p1,p2,p3,p4:string):integer;
begin
Result:=-1; //Error
p1:='one';
p2:='Two';
p3:='Three';
p4:='Four';
end;

Далее 

Procedure someproc;
var
 s1,s2,s3,s4:string;
begin
 //собственно получаем из функции значения и заносим в параметры
 Some(s1,s2,s3,s4); 
end;
Человек_Борща вне форума Ответить с цитированием
Старый 05.05.2011, 21:06   #8
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Цитата:
я делаю это так...
Очень интересно сделано.

Код:
function some(p1,p2,p3,p4:string):integer;
begin
Result:=-1; //Error
p1:='one';
p2:='Two';
p3:='Three';
p4:='Four';
end;
Функция всегда вернёт -1. Смысл тогда возвращать вообще какойто результат? Тут налицо (хотя непонятна цель задачи) воспользоваться процедурой.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 05.05.2011, 21:21   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Вы смотрите на Result? Неприавильно...

Не думал, что не поймете. Строкам(как входным параметрам) s1,s2,s3,s4 будут присвоены значения из функции Some(как к выходным параметрам) с котороыми можно делать что угодно.
Человек_Борща вне форума Ответить с цитированием
Старый 05.05.2011, 21:29   #10
LexaL
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 12
По умолчанию

Нужно что бы возвращала трехмерный массив и три int переменных. Как в этом случае поступить?
LexaL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание пользовательских функций Lain. Помощь студентам 0 23.12.2010 23:23
Создание функций пользователя в приложении MS Excel vinni_puh88 Microsoft Office Excel 3 21.11.2010 18:43
Создание функций пользователя в приложении MS Excel vinni_puh88 Помощь студентам 0 10.11.2010 14:33
Создание функций в C++ Sad_SmiliK Помощь студентам 8 23.10.2008 22:24
создание встроенных функций OLesechka300490 Помощь студентам 6 10.06.2008 12:54