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

Delphi Sources



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

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.06.2010, 02:47
Bezo Bezo вне форума
Прохожий
 
Регистрация: 25.06.2010
Сообщения: 1
Репутация: 10
Вопрос georadar

Народ для вас это должно быть неочень сложно!!!
Подскажите по программе а именно:

1)какой именно участок кода в Делфи отвечает за связь с Фортраном
2)Описать некоторые фрагменты кода что за что отвечает
3)представьте, что посторонний человек запускает эту программу -
что ему делать, по пунктам, и что при этом должно происходить на
экране (и, желательно, что при этом делается внутри программы)

ВОТ ЛИСТИНГ ПРОГРАММЫ:

Код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series, Grids;

const
arraynumt = 2000;
arraynumy = 1000;
type
emf=array[0..arraynumt] of double; //новый тип - массив по времени
TEps=array[1..9] of double; //массив для эпсилон
TForm1 = class(TForm)
Chart1: TChart; //эта компонента - для рисования
Series1: TFastLineSeries;
GroupBox1: TGroupBox;
Label1: TLabel;
Label3: TLabel;
Label2: TLabel;
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
Edit3: TEdit;
GroupBox3: TGroupBox;
StringGrid1: TStringGrid;
GroupBox2: TGroupBox;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;

procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure getDataFromForm();
procedure checkData();
procedure putDataToForm();

private
{ Private declarations }
public
{ Public declarations }
end;
procedure getimpprop(E0,delta,omega,dt,ymax,s igouble; eps,EpsTh:TEps; e:emf); stdcall;

var //переменные
Form1: TForm1;
E0,delta,omega,str,dt,ymax,sigoub le;
e:emf;
eps,EpsTh:TEps;
i,j:integer;
PersCount,zuouble;
flWrongData:boolean;

implementation

{$R *.dfm}
//процедура, импортируемая из динамической библиотеки georadar.dll
procedure getimpprop(E0,delta,omega,dt,ymax,s ig ouble; eps,EpsTh:TEps;
e:emf);
external 'georadar1.dll';
//конструктор
procedure TForm1.FormCreate(Sender: TObject);
begin

StringGrid1.Cells[1,0] := 'Эпсилон';
StringGrid1.Cells[2,0] := 'Толщина в %';
for i:=1 to 9 do
begin
StringGrid1.Cells[0,i]:=FloatToStr(i);
StringGrid1.Cells[1,i]:=FloatToStr(0);
StringGrid1.Cells[2,i]:=FloatToStr(0);
end;
StringGrid1.Cells[1,1]:=FloatToStr(6);
StringGrid1.Cells[2,1]:=FloatToStr(1);
StringGrid1.Cells[1,2]:=FloatToStr(13);
StringGrid1.Cells[2,2]:=FloatToStr(1);
getDataFromForm();
end;

procedure TForm1.getDataFromForm();
begin
E0:=StrToFloat(Edit1.Text);
omega:=StrToFloat(Edit2.Text);
delta:=StrToFloat(Edit3.Text);
dt:=StrToFloat(Edit4.Text);
ymax:=StrToFloat(Edit5.Text);
sig:=StrToFloat(Edit6.Text);
end;

procedure TForm1.checkData();
begin
if delta<0 then
begin
showmessage('delta must be > 0');
flWrongData:=true;
end;
if omega<0 then
begin
showmessage('delta must be < 0');
flWrongData:=true;
end;

i:=1; PersCount:=0;
while ((TryStrToFloat(StringGrid1.Cells[2,i],zu)) or (i<10)) do
begin
PersCount:=PersCount+zu;
i:=i+1;
end;
if (PersCount<>100) then
begin
for j:=1 to i do
begin
TryStrToFloat(StringGrid1.Cells[2,j],zu);
StringGrid1.Cells[2,j]:=FloatToStr(zu*100/PersCount);
end;
end;
for i:=1 to 9 do
begin
TryStrToFloat(StringGrid1.Cells[1,i],zu);
eps[i]:=zu;
TryStrToFloat(StringGrid1.Cells[2,i],zu);
EpsTh[i]:=zu;
end;
end;

procedure TForm1.putDataToForm();
begin
Chart1.Series[0].Clear;
Chart1.Series[0].AddArray(e);
end;
//при нажатии на кнопку
procedure TForm1.Button1Click(Sender: TObject);
begin
getDataFromForm();
checkData();
if flWrongData then exit;
//передаем параметры в динамическую библиотеку и считаем поле
getimpprop(E0,delta,omega,dt,ymax,s ig,eps,EpsTh,e);
putDataToForm();

// StringGrid1.RowCount := 100;

//рисуем то, что получилось

end;
end.
Ответить с цитированием
 


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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