Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2011, 15:43   #1
Reformator
 
Регистрация: 01.06.2011
Сообщений: 3
По умолчанию Написать класс

Нужна реализовать какой нибудь класс к этой программе. Помогите плиз, или объясните какой класс проще сделать и как.

Код:
unit Unit1;

interface

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

const
  dt=0.0001;//квант времени
type
  TForm1 = class(TForm)
    Anime: TImage;
    graf: TChart;
    start: TButton;
    stop: TButton;
    exit: TButton;
    Timer: TTimer;
    Chastota: TLabeledEdit;
    New_Ugol: TLabeledEdit;
    New_Speed: TLabeledEdit;
    Param_Zatuh: TLabeledEdit;
    Series1: TLineSeries;
    Series2: TLineSeries;
    Series3: TLineSeries;
    Vynuj_Sila: TLabeledEdit;
    Chasta_Vynuj_Sila: TLabeledEdit;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    PopupMenu1: TPopupMenu;
    N9: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    procedure exitClick(Sender: TObject);
    procedure startClick(Sender: TObject);
    procedure TimerTimer(Sender: TObject);
    procedure stopClick(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure N11Click(Sender: TObject);
  private
    { Private declarations }
    R,t,Phi,PhiDot,Phi2Dot,Omega,Delta,dphidot,f,chastF:extended;
  public
    { Public declarations }
  end;


var
  Form1: TForm1;


  procedure ShowLogo; external 'Logo.dll'
  procedure ShowAbout; external 'About.dll'


implementation



{$R *.dfm}


procedure TForm1.FormShow(Sender: TObject);
begin
ShowLogo;
end;

procedure TForm1.N11Click(Sender: TObject);
begin
graf.SaveToBitmapFile( 'c:\grafik.bmp' );
end;

procedure TForm1.N8Click(Sender: TObject);
begin
ShowAbout;
end;

procedure TForm1.startClick(Sender: TObject);
var i:integer;
begin
for i:=0 to 2 do //очистка (для нескольких испытаний)
  graf.Series[i].Clear;
t:=0;
Phi:=StrToFloatDef(New_Ugol.Text,90)/180*pi;//угол
phidot:=strtofloatdef(New_Speed.Text,5);//скорость
delta:=strtofloatdef(Param_Zatuh.Text,1)/5;//параметр затухания
omega:=strtofloatdef(Chastota.Text,5);//частота
f:=strtofloatdef(Vynuj_Sila.Text,0);//сила
chastF:=StrToFloatdef(Chasta_Vynuj_Sila.Text,6);//частота вынужд. силы
r:=min(Anime.Width,Anime.Height) div 3;//за радиус принимаем 1/3
timer.Enabled:=true;//включаем таймер
end;

procedure TForm1.stopClick(Sender: TObject);
begin
timer.Enabled:=false;
end;

procedure TForm1.TimerTimer(Sender: TObject);
var xx,yy,i:integer;
begin
for i:=1 to 100 do //зависит от точности кванта времени
 begin
  dphidot:=-(2*delta*phidot+sqr(omega)*sin(phi)+f*sin(chastF*t)*cos(phi))*dt;
  phi2dot:=dphidot/dt;
  phi:=phi+(phidot+dphidot/2)*dt;
  phidot:=phidot+dphidot;
  t:=t+dt;//следующий момент времени
 end;
{рисуем графики}
graf.Series[0].AddXY(t, phi);
graf.Series[1].AddXY(t, phi2dot);
graf.Series[2].AddXY(t, phidot);
with Anime do
 begin
  canvas.Pen.color:=clGreen;//обводка
  canvas.Brush.Color:=$D8E9EC;//фоновый цвет
  canvas.Rectangle(0,0,Width,Height);//прямоуголник на всё поле
  canvas.Pen.color:=clBlack;//цвет нити
 end;
xx:=Round(R*cos(3*pi/2+phi));//отступ по оси X
yy:=Round(R*sin(3*pi/2+phi));//отступ по оси Y
Anime.canvas.MoveTo((Anime.Height div 2),(Anime.Width div 2));//возвращаем значения в центр
Anime.canvas.LineTo((Anime.Height div 2)+xx,(Anime.Width div 2)-yy);//рисуем нить
Anime.canvas.Brush.Color:=clGreen;//цвет шарика
Anime.canvas.Ellipse(((Anime.Height div 2)+xx)+3,((Anime.Height div 2)-yy)+3,((Anime.Height div 2)+xx)-3,((Anime.Height div 2)-yy)-3);//рисуем шарик
end;

procedure TForm1.exitClick(Sender: TObject);
begin
close;
end;

end.
Reformator вне форума Ответить с цитированием
Старый 01.06.2011, 22:03   #2
Reformator
 
Регистрация: 01.06.2011
Сообщений: 3
По умолчанию

люди, срочно нужно разобраться (ну и написать конечно), но хотя бы разобраться
Reformator вне форума Ответить с цитированием
Старый 02.06.2011, 01:19   #3
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

У тебя уже есть класс - TForm1.
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 02.06.2011, 06:23   #4
Reformator
 
Регистрация: 01.06.2011
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Сtrl Посмотреть сообщение
У тебя уже есть класс - TForm1.
TForm1 создается автоматом, а мне нужно ручками в отдельном Unit
Reformator вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описать класс-родитель и класс-потомок. Delphi 7 Andrew_M Помощь студентам 0 15.01.2011 14:42
Написать программу класс Вектор на С++ provayder Общие вопросы C/C++ 4 28.11.2010 21:44
Написать класс для работы с двоичными числами в Visual C++ 2008 Maxs Фриланс 1 23.12.2009 21:07
задача под windows,помогите написать.Надо написать на Borland C++Builder 6. eddddii Помощь студентам 9 23.05.2008 17:04
Написать класс - прямые на плоскости. Red Devel Помощь студентам 7 22.01.2008 15:23