Показать сообщение отдельно
  #14  
Старый 19.05.2012, 22:09
Impressive Impressive вне форума
Прохожий
 
Регистрация: 16.05.2012
Сообщения: 10
Репутация: 10
По умолчанию Теперь 150 ячеек... Это координаты точек (u,v) для графика.

Вроде место есть куда писать, но не получается...
ПОЛНЫЙ КОД:

Код:
unit Unit3;

interface

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

type
    TForm3 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Panel1: TPanel;
    StringGrid1: TStringGrid;
    Button3: TButton;
    Button4: TButton;
    Panel2: TPanel;
    Panel3: TPanel;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Panel4: TPanel;
    StringGrid2: TStringGrid;
    Button5: TButton;

   procedure OnCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);



  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;
   c  : Single = 3e8;
   massa,zariad: real;
   q:byte;

implementation

uses Unit2,Unit1;

{$R *.dfm}

Procedure TForm3.OnCreate(Sender: TObject);
begin
StringGrid1.Cells[0,0] := 'Напряжение U, МВ';
StringGrid1.Cells[0,1] := 'Скорость v, м/c';
end;

// КНОПКА НАЗАД
procedure TForm3.Button1Click(Sender: TObject);
begin
Form3.Hide;
Form2.Show;
end;
// КНОПКА ВЫХОД
procedure TForm3.Button2Click(Sender: TObject);
begin
Form3.Hide;
end;


// ЗАПОЛНЕНИЕ ТАБЛИЦЫ 
procedure TForm3.Button3Click(Sender: TObject);
var
  I, J : Integer;
  U, v : Single;
  dU : Single;
begin
  Q:=form1.combobox1.itemindex;
  massa:= P[q].m0;   // определяем массу из первой формы по выбору Combobox1
  zariad:= P[q].q0;  // определяем заряд из первой формы по выбору Combobox1
  // расчет значений для графика
  J:= 1;
  StringGrid1.Cells[0,0]:='Напряжение U, МВ';
  StringGrid1.Cells[0,1]:='Скорость v,10^8 м/c';
  U:= 0;
  StringGrid1.Cells[J,0]:=FloatToStr(U);
  v:=c*sqrt(1 - sqr(massa*c*c/(5*zariad*U*1e6 + massa*c*c)))/1e8; //*1e6 т.к. МВ
  StringGrid1.Cells[J,1]:= FloatToStr(v);
  dU:= StrToFloat(Edit1.Text);
  repeat
    U:=U+dU;
    v:=c*sqrt(1 - sqr(massa*c*c/(5*zariad*U*1e6 + massa*c*c)))/1e8;
    // Записываем напряжение в ячейку:
    StringGrid1.Cells[J+1,0]:= FloatToStr(U);
    // Записывем скорость в ячейку ниже,под соответ.напряжением:
    StringGrid1.Cells[J+1,1]:= FloatToStr(v);
    inc(J);
  until J > 151;//StringGRid1.ColCount - 1;
end;

//ОЧИСТКА ТАБЛИЦЫ
procedure TForm3.Button4Click(Sender: TObject);
var i, j :integer;
begin
with StringGRid1 do
    for i:=0 to RowCount do   //Заголовки строк не трогаем
    for j:=0 to ColCount do   //Заголовки столбцов не трогаем
      Cells[j, i]:=' ';
end;

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