Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Правильный вызов Delphi

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Правильный вызов Delphi
Имя
Сообщение << Старые топики   Новые топики >>
Правильный вызов Delphi - 2009-01-04 14:41:11.123333   
Kerny

Сообщений: 41
Оценки: 0
Присоединился: 2008-12-11 15:39:17.436666
Такой вопросик:

procedure idert(i:integer;var s:string); var result:string; //локальные переменные begin //код программы result:=s; end; {вызов процедуры по нажатию кнопки} procedure TForm1.Button2Click(Sender: TObject); var t:integer; j:string; begin idert(t,j); label1.caption:=j; end;
Получится что после выполнения кода
в поле label1 будет значения переменной j.

а как сделать, так что бы можно было вызвать процедуру так

procedure idert(i:integer); var //локальные переменные begin //код программы, в результате значение будет строковым end; {вызов процедуры по нажатию кнопки} procedure TForm1.Button2Click(Sender: TObject); var t:integer; // параметра значение, которого передаем процедуре. begin t:=1+1; label1.caption:=dert(t); // функция возвращает результат своего выполнения в поле label. end;

Надеюсь нормально обьяснил.
Post #: 1
RE: Правильный вызов Delphi - 2009-01-04 15:53:26.576666   
VENOM4X

Сообщений: 246
Оценки: 0
Присоединился: 2008-02-18 22:49:08.960000
вообще-то есть стандартная функция StrToInt.
напиши так label1.caption:=StrToInt(t);
Post #: 2
RE: Правильный вызов Delphi - 2009-01-04 15:56:37.013333   
Kerny

Сообщений: 41
Оценки: 0
Присоединился: 2008-12-11 15:39:17.436666
я знаю, что есть - но дело не в этом - мне просто нужно знать, как таким образом организовать вызов процедуры. чтобы она именно так вернула значение.
Post #: 3
RE: Правильный вызов Delphi - 2009-01-04 16:00:25.743333   
VENOM4X

Сообщений: 246
Оценки: 0
Присоединился: 2008-02-18 22:49:08.960000
тогда тебе надо писать не процедуру, а функцию. В том-то и разница, что процедура не возвращает значение, а функция возвращает.

Вот так надо было бы написать функцию:
function idert(i:integer) : string;
var
//локальные переменные
begin
//код программы, в результате значение будет строковым
result:=IntToStr(i);//<– здесь мы возвращаем значение
end;
Post #: 4
RE: Правильный вызов Delphi - 2009-01-04 16:03:39.360000   
Kerny

Сообщений: 41
Оценки: 0
Присоединился: 2008-12-11 15:39:17.436666
Спасибо - попробую!
Post #: 5
RE: Правильный вызов Delphi - 2009-01-04 17:12:16.790000   
Kerny

Сообщений: 41
Оценки: 0
Присоединился: 2008-12-11 15:39:17.436666
А можно использовать переменную не result, а какую нить другую.
Post #: 6
RE: Правильный вызов Delphi - 2009-01-04 17:18:10.373333   
VENOM4X

Сообщений: 246
Оценки: 0
Присоединился: 2008-02-18 22:49:08.960000
Нет, для возвращения инфы из функции, ты должен использовать result (или передавать переменную по ссылке). При этом ты result не объявляешь - своя скрытая result есть в каждой функции.

P.S. Почитай что-нибудь по Delphi.
Post #: 7
RE: Правильный вызов Delphi - 2009-01-05 11:11:48.110000   
Alex1001222

Сообщений: 13
Оценки: 0
Присоединился: 2009-01-03 19:42:44.476666
Kerny
 
procedure TForm1.Button2Click(Sender: TObject); var t : real; begin t := 1+1; label1.caption := FloatToStr(t); end;  
Попробуй вот так, должно работать. И используй real, т.к. String не поддерживает дробные числа. Тогда перевод в строку будет FloatToStr(t), а перевод в числа будет StrToFloat(t), где t - переменная с типом real
Post #: 8
RE: Правильный вызов Delphi - 2009-01-07 13:46:53.346666   
Kerny

Сообщений: 41
Оценки: 0
Присоединился: 2008-12-11 15:39:17.436666
Да суть не в том была….. но все равно всем спасибо за помощь.
Post #: 9
RE: Правильный вызов Delphi - 2009-01-07 15:06:49.426666   
fleisch

Сообщений: 35
Оценки: 0
Присоединился: 2009-01-06 18:17:17.283333
На сколько я помню, в теле функции должна присутствовать строка присвоения функции какого-то значения… Или для Delphi это не катит???
Post #: 10
RE: Правильный вызов Delphi - 2009-01-07 15:14:18.470000   
QunneD

Сообщений: 833
Оценки: 0
Присоединился: 2008-11-09 20:54:38.113333
Вот как создаеться простая правильная функция.

function easy_func(a : boolean):boolean;
begin
if (a = true) then
result := true
else if (a = false) then
result := false;
end;

Result возвращает из функции результат, и как правило ее надо обязательно использовать.
Это процедуру можно использовать без Result.
Post #: 11
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Правильный вызов Delphi







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.