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

Вниз

Объясните как написать функцию с возвратом ?   Найти похожие ветки 

 
XTD ©   (2006-06-02 15:23) [0]

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

function mmy(var s:string):string;
begin
Result := s+" 1";
end;

procedure my;
begin
ShowMessege(mmy("1"));
end;

Должно вывести 1+1 а ругается.


 
XTD ©   (2006-06-02 15:25) [1]

Что нетак ?


 
DiamondShark ©   (2006-06-02 15:26) [2]

а как ругается?


 
Kolan ©   (2006-06-02 15:27) [3]


> Result := s+" 1";

Result := s+" 1";


 
Dmitrij_K   (2006-06-02 15:27) [4]

function mmy(const s:string):string;


 
Dmitrij_K   (2006-06-02 15:28) [5]

function mmy(const s:string):string;
begin
Result := s+"+1";
end;

procedure my;
begin
ShowMessege(mmy("1"));
end;


 
XTD ©   (2006-06-02 15:28) [6]

Constant object cannot be passed as var parameter


 
Kolan ©   (2006-06-02 15:29) [7]


> Должно вывести 1+1 а ругается.

Твое выведет "11"

function TForm1.AddStrings(S: string): string;
begin
 Result := S + "1";
end;

procedure TForm1.ShowString;
begin
 ShowMessage(AddStrings("1+"));
end;


 
Kolan ©   (2006-06-02 15:30) [8]


> function mmy(var s:string):string;

var ненужно т.к. ты не изменяешь передаваемую строку...


 
XTD ©   (2006-06-02 15:30) [9]

Теперь так: Unsatisfied forward or external declaration: "TForm1.FaileNameTime"


 
Asail   (2006-06-02 15:31) [10]

Просто поменяй function mmy(var s:string):string;
на function mmy(s:string):string;


 
XTD ©   (2006-06-02 15:31) [11]

в type


 
DiamondShark ©   (2006-06-02 15:32) [12]


> Теперь так: Unsatisfied forward or external declaration:
>  "TForm1.FaileNameTime"

Это в другую ветку.


 
XTD ©   (2006-06-02 15:34) [13]

А тут можно ответить ?


 
Kolan ©   (2006-06-02 15:36) [14]


>
> function AddStrings(S: string): string;
> begin
>  Result := S + "1";
> end;
>
> procedure ShowString;
> begin
>  ShowMessage(AddStrings("1+"));
> end;
>

Вот так работает ? :)


 
Сергей М. ©   (2006-06-02 15:37) [15]


> XTD ©   (02.06.06 15:34) [13]


А перевести и осознать не пробовал ?


 
DiamondShark ©   (2006-06-02 15:37) [16]

Можно.
TForm1.FaileNameTime описана в заголовке, но отсутствует в реализации.
Но это не имеет ни малейшего отношения к исходному вопросу.


 
Kolan ©   (2006-06-02 15:39) [17]


> "TForm1.FaileNameTime"

А еще один способ лесенияч стать на клсс и нажать Ctrl+Shift+C :)


 
XTD ©   (2006-06-02 15:45) [18]

DiamondShark , так что делать ?


 
Asail   (2006-06-02 15:52) [19]

Описать TForm1.FaileNameTime в разделе implementation


 
evvcom ©   (2006-06-02 16:34) [20]


> Просто поменяй function mmy(var s:string):string;
> на function mmy(s:string):string;

уже раньше указали на что поменять, т.е. на
function mmy(const s:string):string;
а без const компилятор сгенерит не нужный для данного случая код, копирующий переданную строку в стек. А это как минимум неоптимально.


 
Asail   (2006-06-02 17:13) [21]

Согласен


 
Loginov Dmitry ©   (2006-06-02 18:59) [22]

evvcom ©   (02.06.06 16:34) [20]
а без const компилятор сгенерит не нужный для данного случая код, копирующий переданную строку в стек. А это как минимум неоптимально.


1) Строки String к стеку никакого отношения не имеют.
2) Никакого копирования строки не произойдет, так как в самой функции она не модифицируется.



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

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

Наверх




Память: 0.49 MB
Время: 0.013 c
2-1149165412
newbie2
2006-06-01 16:36
2006.06.18
Почему не вызывается destructor?


2-1149241925
XoXoL
2006-06-02 13:52
2006.06.18
Помогите!


3-1145542831
Sphinx
2006-04-20 18:20
2006.06.18
Невизуальные компоненты для БД


2-1148886556
ttt_111
2006-05-29 11:09
2006.06.18
Каким образом можно сохранять изменяемый код?


15-1148727021
guest2006
2006-05-27 14:50
2006.06.18
Помогите перевести C++ на Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский