Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как вернуть значени переменной из одной процедуры, Как передать переменную из одной процеду 
V
    Опции темы
Mepcuk
  Дата 11.10.2006, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 11.10.2006
Где: LATVIA, Riga

Репутация: нет
Всего: нет



помогите пожалуйста! Горю ярким пламенем ! Как вернуть значение переменной из одной процедуры в другую ? Прописать как public ?  А если у меня переменная типа INTEGER ? А если переменная типа ARRAY ? Или нужно классами прописывать ? 

Я совсем зеленый ! помогиииите !!!
PM MAIL   Вверх
DemoCode
Дата 11.10.2006, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 2
Всего: 41



Ты об этом?
Код

procedure proc1 (var J: Integer);
begin
   J:=1;
end;

procedure proc2;
var
  I: Integer;
begin
  proc(I);
  // I = 1
end;



--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
Mepcuk
Дата 11.10.2006, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 11.10.2006
Где: LATVIA, Riga

Репутация: нет
Всего: нет



Неее не совсем так !!

допустим
Код

procedure maincode;
var x1:integer;
begin
x1:=StrToInt(Edit1.text);
Calculation (x1);

        !!!!!! Что надо написать чтобы вернуть значение переменной Superdata из процедуры Calculation


end;

procedure calculation(in_data:integer) ;
var superdata:integer;
begin
   Superdata:=10*100/1000;
end;


Добавлено @ 17:53 
Неее не совсем так !!

допустим
Код

procedure maincode;
var x1:integer;
begin
x1:=StrToInt(Edit1.text);
Calculation (x1);

        !!!!!! Что надо написать чтобы вернуть значение переменной Superdata из процедуры Calculation


end;

procedure calculation(in_data:integer) ;
var superdata:integer;
begin
   Superdata:=in_data*100/1000;
end;

PM MAIL   Вверх
Yanis
Дата 11.10.2006, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Зачем ей возвращать значение она всёравно умрёт в процедуре... Или тебе нужно выпустить знаечение superdata в мир, т.е. за пределы calculation?

Это сообщение отредактировал(а) Yanis - 11.10.2006, 17:53


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
DemoCode
Дата 11.10.2006, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 2
Всего: 41



Тогда так:
Код

procedure maincode;
var x1:integer;
begin
x1:=StrToInt(Edit1.text);
Result:=Calculation (x1);
end;

function calculation(in_data:integer): Integer;
var superdata:integer;
begin
   calculation:=10*100/1000;
end;

Если критично, чтоб были именно процедуры, то:

Код

procedure maincode;
var x1:integer;
superdata: integer;
begin
x1:=StrToInt(Edit1.text);
Calculation (x1, Superdata);
end;

procedure calculation(in_data:integer; var Superdata: Integer) ;
begin
   Superdata:=10*100/1000;
end;


Это сообщение отредактировал(а) DemoCode - 11.10.2006, 17:56


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
Mepcuk
Дата 11.10.2006, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 11.10.2006
Где: LATVIA, Riga

Репутация: нет
Всего: нет



мне нужно выпустить в Мир

Добавлено @ 17:57 
Да очень критично потому что процедура состоит из огромных расчетов в примере просто указал ! Как сделать чтобы я видел ету переменную из любой процедуры ?
PM MAIL   Вверх
Yanis
Дата 11.10.2006, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(Mepcuk @  11.10.2006,  18:55 Найти цитируемый пост)
мне нужно выпустить в Мир

Сделай calculation функцией.


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
DemoCode
Дата 11.10.2006, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 2
Всего: 41



Цитата(volvo877 @  11.10.2006,  18:57 Найти цитируемый пост)
DemoCode, а того, что компилироваться не будет в виде процедуры, не боишься?

Почему?


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
volvo877
Дата 11.10.2006, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 14
Всего: 116



Потому, что ты уже исправил... Тебе сказать, что раньше было?
PM MAIL   Вверх
DemoCode
Дата 11.10.2006, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 2
Всего: 41



Цитата(Mepcuk @  11.10.2006,  18:55 Найти цитируемый пост)
Как сделать чтобы я видел ету переменную из любой процедуры ? 

Так объяви "глобальную переменную" и работай с ней.

Добавлено @ 18:00 
Цитата(volvo877 @  11.10.2006,  18:59 Найти цитируемый пост)
Потому, что ты уже исправил... Тебе сказать, что раньше было? 

А... ты первый вариант видел, где варку забыл удалить, а я думал ты его не успел заметить, т.к. ты свой пост исправления послал  smile 


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
Mepcuk
Дата 11.10.2006, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 11.10.2006
Где: LATVIA, Riga

Репутация: нет
Всего: нет



обясните где обьявлять ! только громко не смейтесь я зеленый smile

Код

  private
    { Private declarations }
  public
    testsms:string;  <<<----- Обьявлять здесь
   end;

PM MAIL   Вверх
DemoCode
Дата 11.10.2006, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 2
Всего: 41



Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  testsms: string; // Здесь

implementation

{$R *.dfm}

end.


Добавлено @ 18:11 
Если нужна доступность в других юнитах, можешь её объявить в каком-нибудь юните и подключать его ко всем остальным в uses.


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
Mepcuk
Дата 11.10.2006, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 11.10.2006
Где: LATVIA, Riga

Репутация: нет
Всего: нет



Огромное спасибо ! smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0748 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.