Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.04.19;
Скачать: CL | DM;

Вниз

Передача значений из функции   Найти похожие ветки 

 
Pavel   (2009-02-26 22:30) [0]

Как мне из функции передать два значения?

Спасибо за ответы.


 
Johnmen ©   (2009-02-26 22:43) [1]

procedure MyFunction(var variable1: type1; var variable2: type2);


 
Медвежонок Пятачок ©   (2009-02-26 22:53) [2]

function myfirstfunction : mysinglevaluetype;
begin
MySecondFunction(value1,value2);
end;


 
korneley ©   (2009-02-26 22:53) [3]

Или через запись ;)

type
 TMyRecord = record
   i : integer;
   b : byte;
 end;

function MyFunc : TMyRecord;
...
function MyFunc : TMyRecord;
begin
 Result.i := trunc(Now);
 Result.b := $E3;
end;
...
procedure TForm1.Button13Click(Sender: TObject);
var MyRecord : TMyRecord;
begin
 MyRecord := MyFunc;
 ShowMessage(DateTimeToStr(MyRecord.i) + char(MyRecord.b) + ".");
end;


 
Медвежонок Пятачок ©   (2009-02-26 22:57) [4]

зачем через рекорд?
ему же передать надо, а не вернуть


 
korneley ©   (2009-02-26 23:01) [5]


> Медвежонок Пятачок ©   (26.02.09 22:57) [4]

Не... Телепатическая составляющая подсказывает, что если "из", то всё-таки вернуть :)


 
Медвежонок Пятачок ©   (2009-02-26 23:04) [6]

а как можно передать не "из" ?


 
Медвежонок Пятачок ©   (2009-02-26 23:05) [7]

передают параметры, возвращают значения.
параметров может быть вагон.


 
korneley ©   (2009-02-26 23:20) [8]


> Медвежонок Пятачок ©   (26.02.09 23:05) [7]
> передают параметры, возвращают значения.параметров может
> быть вагон.


> Pavel   (26.02.09 22:30) 
> Как мне из функции передать два значения?

Не будем бодаться, т.к по [0] понятно, что человек хочет получить 2 значения чего-то там. Из функции. Ну не те термины выбрал, так "...профессионалам отдельная просьба - быть снисходительными..." ;)


 
Медвежонок Пятачок ©   (2009-02-26 23:34) [9]

считаешь здесь полезно получать только то, про что спросил и ни граммом больше?


 
Pavel   (2009-02-26 23:38) [10]

korneley, спасибо за понимание.


 
Медвежонок Пятачок ©   (2009-02-26 23:42) [11]

вот видишь, корнелий, что ты натворил.
одним человеком, считающим чт функция может возвратить два значения стало больше.
причем еще и значение не возвращается, а передается.

вредитель ты.


 
Anatoly Podgoretsky ©   (2009-02-26 23:57) [12]

Варианта A,B,...N := Func, где A,B,...N получают разные значения, в природе не существует


 
korneley ©   (2009-02-27 00:21) [13]


> вредитель ты.

Дык, вроде, конференция "начинающим" И понятие "возвратить" не обязательно должно включать в себя "передать и потом возвратить". Напомнило:
- Стой, кто идёт?
- Ну кто с той идёт, а кто и с этой...


 
Германн ©   (2009-02-27 00:27) [14]

В 21 веке все функции следует заменить на процедуры. Некоторые из процедур должны возвращать результат булевского типа свидетельствующий об успехе/неуспехе выполнения данной процедуры.


 
Anatoly Podgoretsky ©   (2009-02-27 00:39) [15]

> Германн  (27.02.2009 0:27:14)  [14]

Каких только новостей не начитаешься на форумах.


 
korneley ©   (2009-02-27 00:39) [16]


> Германн ©   (27.02.09 00:27) [14]

Ну так это и исключениями можно добиться. А если учесть " Некоторые из процедур должны возвращать результат...", то это всё-таки функции :) Хотя... "все братья - сёстры", "все процедуры, суть функции" :)))

> Медвежонок Пятачок ©   (26.02.09 23:42) [11]
> вот видишь, корнелий, что ты натворил.одним человеком, считающим
> чт функция может возвратить два значения стало больше.

Ни фига. Значение одно: типа, рекорд. А уж сколько полей там, только от фантазии зависит :)


 
Медвежонок Пятачок ©   (2009-02-27 00:41) [17]

я и не говорил что их два (значения).
я сказал, что стало больше одним человеком, который считает что их два.


 
korneley ©   (2009-02-27 00:54) [18]


> Медвежонок Пятачок ©   (27.02.09 00:41) [17]
> я и не говорил что их два (значения).я сказал, что стало
> больше одним человеком, который считает что их два

Ну с чего это? В [3] не классика, конечно, но если человек захочет разобраться, то поймёт, что таки одно. Я там даже умышленно присвоение ввёл, чтобы избежать
ShowMessage(DateTimeToStr(MyFunc.i) + char(MyFunc.b) + ".")


 
Германн ©   (2009-02-27 00:57) [19]


> Anatoly Podgoretsky ©   (27.02.09 00:39) [15]
>
> > Германн  (27.02.2009 0:27:14)  [14]
>
> Каких только новостей не начитаешься на форумах.
>


> korneley ©   (27.02.09 00:39) [16]
>
>
> > Германн ©   (27.02.09 00:27) [14]
>
> Ну так это и исключениями можно добиться. А если учесть
> " Некоторые из процедур должны возвращать результат...",
>  то это всё-таки функции :) Хотя... "все братья - сёстры",
>  "все процедуры, суть функции" :)))

Я был уверен, что чувство юмора вам не изменяет.
:)


 
Медвежонок Пятачок ©   (2009-02-27 01:02) [20]

Ну с чего это? В [3] не классика, конечно, но если человек захочет разобраться, то поймёт, что таки одно.

ты хочешь сказать, что автор без тебя не слышал ни про рекорды, ни про массивы?


 
Германн ©   (2009-02-27 01:09) [21]


> Медвежонок Пятачок ©   (27.02.09 01:02) [20]
>
> Ну с чего это? В [3] не классика, конечно, но если человек
> захочет разобраться, то поймёт, что таки одно.
>
> ты хочешь сказать, что автор без тебя не слышал ни про рекорды,
>  ни про массивы?
>

Имхо, автор очень много чего не слышал (точнее не знает).
Иначе не задал бы такой вопрос. Ему простой учебник бы в руки.


 
Медвежонок Пятачок ©   (2009-02-27 01:10) [22]

теперь он знает что "функция может вернуть два значения"


 
korneley ©   (2009-02-27 01:12) [23]


> Медвежонок Пятачок ©   (27.02.09 01:02) [20]
> ты хочешь сказать, что автор без тебя не слышал ни про рекорды, ни
> про массивы?

За массивы не скажу (это всё-таки набор однотипных элементов), как и за автора. Слышать-то может и слышал, но подтолкнуть его в нужном направлении, разве не задача форума? Если у меня есть штангенциркуль, это не не означает, что я знаю, как им пользоваться :)


 
Плохиш ©   (2009-02-27 01:23) [24]


> Слышать-то может и слышал, но подтолкнуть его в нужном направлении,
>  разве не задача форума?

Хм, всегда думал, что задача форума помочь решить интересную задачу. А толкнуть в направлении работы чего-либо - задача инструкции пользователя.


 
Германн ©   (2009-02-27 01:25) [25]


> Медвежонок Пятачок ©   (27.02.09 01:10) [22]
>
> теперь он знает что "функция может вернуть два значения"
>

А разве это плохо?


 
Германн ©   (2009-02-27 01:34) [26]


> Плохиш ©   (27.02.09 01:23) [24]
>
>
> > Слышать-то может и слышал, но подтолкнуть его в нужном
> направлении,
> >  разве не задача форума?
>
> Хм, всегда думал, что задача форума помочь решить интересную
> задачу. А толкнуть в направлении работы чего-либо - задача
> инструкции пользователя.
>

В конференции " Начинающим" - это немного не так.


 
korneley ©   (2009-02-27 01:36) [27]


> Плохиш ©   (27.02.09 01:23) [24]
> > Слышать-то может и слышал, но подтолкнуть его в нужном
> направлении,>  разве не задача форума?Хм, всегда думал,
> что задача форума помочь решить интересную задачу. А толкнуть
> в направлении работы чего-либо - задача инструкции пользователя.
>

Дык, иногда надо и сказать, где инструкция лежит :) А дальше, естественно, сами, сами...


 
Anatoly Podgoretsky ©   (2009-02-27 09:38) [28]

> Германн  (27.02.2009 0:57:19)  [19]

Опять сомневаешься?


 
Anatoly Podgoretsky ©   (2009-02-27 09:39) [29]

> Германн  (27.02.2009 1:09:21)  [21]

При том учебник математики.


 
Anatoly Podgoretsky ©   (2009-02-27 09:40) [30]

> Плохиш  (27.02.2009 1:23:24)  [24]

Это не задача форума, это личное дело каждого участника.
Задача форума одна, общаться как на базаре, именно так форум и переводится.


 
korneley ©   (2009-02-27 09:53) [31]


> Anatoly Podgoretsky ©   (27.02.09 09:40) [30]
> Задача форума одна, общаться
> как на базаре, именно так форум и переводится.

Вот. А на базаре можно много нового узнать. Но и там разные торговые ряды присутствуют. :)


 
charoey_mag   (2009-02-27 12:30) [32]

Если посмотреть с машинной точки зрения то "функция" как обертка над CALL может все таки вернуть больше одного результата.
Все параметры передаются через стек и адрес возврата его замыкает, поэтому больше чем явно указанных вернуть не получится, но результат выполнения в 90% случаев возвращается через EAX, а в собственных функциях, где регламент возвращаемых значений вообще не устанавлен, никто не запрещает использовать дополнительные регистры для возврата значений. И получается что результатов выполнения может быть не просто несколько, а их кол-во может динамически изменяться


 
Palladin ©   (2009-02-27 12:38) [33]


> charoey_mag   (27.02.09 12:30) [32]

это все здорово. тебе осталось только изобрести синтаксис, что бы одним приравниванием->одним вызовом ассигновать сразу несколько переменных, количество которых может изменятся. тогда сразу поймешь почему функция не может возвращать более одного значения.


 
Плохиш ©   (2009-02-27 13:07) [34]


> Германн ©   (27.02.09 01:34) [26]

Знаю, знаю, что здесь филиал гугля и заменитель справки с документацией, да ещё и с использованием телепаторов :-))

> Anatoly Podgoretsky ©   (27.02.09 09:40) [30]
> Задача форума одна, общаться как на базаре

Ну дык, так ведь сам не дашь здеся пообщаться, фсё потрёшь :-P


 
Amoeba ©   (2009-02-27 17:43) [35]

Господа, а куда делся уважаемый приснопамятный АВТОР? Выходит, что весь флейм пропал втуне. Жаль ...


 
Anatoly Podgoretsky ©   (2009-02-27 19:09) [36]

> Amoeba  (27.02.2009 17:43:35)  [35]

Не может он пропасть, он не для него, а для нас, а мы все тут.


 
korneley ©   (2009-02-27 22:08) [37]


> Anatoly Podgoretsky ©   (27.02.09 19:09) [36]
> > Amoeba  (27.02.2009 17:43:35)  [35]Не может он пропасть,
>  он не для него, а для нас, а мы все тут.

Ну понятно, сначала Автора обсуждаем, а потом начинаем мейнфреймами меряться :)))


 
Игорь Шевченко ©   (2009-02-27 22:10) [38]


> В конференции " Начинающим" - это немного не так.


Да. В конференции " Начинающим" функция может возвращать до пяти различных значений одновременно.

Впрочем, у кого есть желание стоять с ложкой - никто не ограничивает, другое дело, что оно не у всех есть, а поообщаться хочется.


 
Германн ©   (2009-02-28 00:34) [39]


> Игорь Шевченко ©   (27.02.09 22:10) [38]

ИШ нынче злой :)
Три ветки одним махом!


 
Anatoly Podgoretsky ©   (2009-02-28 10:34) [40]

> Германн  (28.02.2009 0:34:39)  [39]

Одним махом, семерых побивахом.
Чешская народная сказка.
Сказал бы что уже полночь, но будет неправда.



Страницы: 1 2 вся ветка

Текущий архив: 2009.04.19;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.018 c
2-1235987671
Unforgiven
2009-03-02 12:54
2009.04.19
Функция в другой форме


2-1235826105
Neket
2009-02-28 16:01
2009.04.19
Передача DataSource в Excel.


2-1235882729
CodeMaster
2009-03-01 07:45
2009.04.19
Позиция


2-1236233045
vat
2009-03-05 09:04
2009.04.19
Искажение больших картинок


2-1236238837
EWGhack
2009-03-05 10:40
2009.04.19
Хочу написать прогу но незнаю с чего начать