Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.12.2012, 23:51
Басота Басота вне форума
Прохожий
 
Регистрация: 28.11.2012
Адрес: Киев
Сообщения: 6
Версия Delphi: Delphi 2010
Репутация: 10
По умолчанию Видимость процедуры и ее переменных

У меня возник следующий вопрос: мне нужно реализовать две процедуры (coef , Prost) так, чтобы вторая процедура (Prost) использовала результаты (A,B,C,D), вычисленные благодаря первой процедуре (coef). Массивы u, unew глобальные. Значения m,n берутся с основной программы (procedure Button1Click (Sender: TObject)). Вопрос: как сделать так, чтобы процедура Prost могла видеть переменные A,B,C,D (как я могу передать значения A,B,C,D процедуре Prost)?. Процедуру coef не можна реализовать в процедуре Prost!!!

Пример:

Код:
Procedure coef (k,dt,dx,dy :single; ii,jj :integer);
var  A,B,C,D; single;
begin
A:=k*dt/dx;
C:=A;
B:=-2*A/dy;
D:=u[ii,jj]+unew[ii,jj];
End;
//-------------------------------------------------------------------------
Procedure Prost (m,n:integer)
Var
k,dt,dx,dy :single;
ii,jj,intr :integer;
Mas: array  // этот массив только для этого примера нужен, поэтому я его даже не описую
begin
dt:=1;
dx:=2;
dy:=3;
k:=1;
itr:=0;
for ii:=1 to n do
begin
		for jj:=1 to m do coef (k,dt,dx,dy,ii,jj);
		itr:=itr+1;
	end;
for ii:=1 to n do	Mas[ii,jj]:=A+B+C/D;
end;

procedure Button1Click (Sender: TObject)
…….
…….
…….

Последний раз редактировалось lmikle, 04.12.2012 в 03:03.
Ответить с цитированием
  #2  
Старый 04.12.2012, 00:39
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию

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

Код:
type
  TForm1 = class(TForm)
    TntButton1: TTntButton;
    procedure TntButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
type
 massiv=array of integer;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function coef:massiv;
begin
SetLength(Result,4);
Result[1]:=1; //А
Result[2]:=2; //B
Result[3]:=5; //C
Result[4]:=100; //D
end;

procedure TForm1.TntButton1Click(Sender: TObject);
var x:massiv;
    a,b,c,d:Integer;
begin
x:=coef;
a:=x[1];
b:=x[2];
c:=x[3];
d:=x[4];
ShowMessage(IntToStr(a)+' '+IntToStr(b)+' '+IntToStr(c)+' '+IntToStr(d));
end;

Последний раз редактировалось Snake22, 04.12.2012 в 00:58.
Ответить с цитированием
Этот пользователь сказал Спасибо Snake22 за это полезное сообщение:
Басота (04.12.2012)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:25.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter