Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.013 c
15-1148636830
korotkova
2006-05-26 13:47
2006.06.18
Открыта вакансия!


11-1127844554
_Beginner_
2005-09-27 22:09
2006.06.18
Как перетягивать форму без заголовка?


2-1148988774
Revan
2006-05-30 15:32
2006.06.18
А я так и не сделал настройку звука...


2-1148890159
DiGe
2006-05-29 12:09
2006.06.18
задача о рюкзаке


5-1133168076
DimaBr
2005-11-28 11:54
2006.06.18
ПодСвойство компонента





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский