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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2013, 18:40   #1
reget
Новичок
Джуниор
 
Регистрация: 17.01.2013
Сообщений: 1
По умолчанию Delphi RadioButton для выбора двух-трёх графиков

Добрый день! Подскажите пожалуйста, как можно осуществить с помощью двух-трех RadioButton выбор нужной функции для построения графика?

Код:
unit Unit1; 

interface 

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

type 
  TForm1 = class(TForm) 
  Button1: TButton; 
  Button2: TButton; 
  PaintBox1: TPaintBox; 
  Edit1: TEdit; 
  Edit2: TEdit; 
  Edit3: TEdit; 
  Edit4: TEdit; 
  RadioButton1: TRadioButton; 
  RadioButton2: TRadioButton; 
  Edit5: TEdit; 
  Label1: TLabel; 
  Label2: TLabel; 
  Label3: TLabel; 
  Label4: TLabel; 
  Label5: TLabel; 
  procedure RadioButton2Click(Sender: TObject); 
  procedure RadioButton1Click(Sender: TObject); 
  procedure PaintBox1Click(Sender: TObject); 
  procedure Button2Click(Sender: TObject); 
  private 
  { Private declarations } 
  public 
  { Public declarations } 
  end; 

var 
  Form1: TForm1; 

implementation 

{$R *.dfm} 

Function f(x:real):real; 
begin 
f:=cos(x); 
end; 

procedure TForm1.Button2Click(Sender: TObject); 
begin 
 PaintBox1.Canvas.FillRect(Rect(0,0,ClientWidth,ClientHeight)); 
end; 

procedure TForm1.PaintBox1Click(Sender: TObject); 
var 
x1, x2: real; 
y1, y2: real; 
x: real; 
y: real; 
dx: real; 
l, b: integer; 
w, h: integer; 
mx, my: real; 
x0, y0: integer; 
begin 
  PaintBox1.Canvas.Rectangle(0,0,537,185); 
  l:=0; 
  b:=PaintBox1.ClientHeight-20; 
  h:=PaintBox1.ClientHeight-40; 
  w:=PaintBox1.ClientWidth-40; 
  x1:={0} StrToFloat(Edit1.Text); 
  x2:={25} StrToFloat(Edit2.Text); 
  dx:={0.0001} StrToFloat(Edit3.Text); 
  y1:={f(x1)} StrToFloat(Edit4.Text); 
  y2:={f(x2)} StrToFloat(Edit5.Text); 
  x:=x1; 
  repeat 
  y:= f(x); 
  if y<y1 then y1:=y; 
  if y>y2 then y2:=y; 
  x:=x+dx; 
  until (x>=x2); 

  my:=h/abs(y2-y1); 
  mx:=w/abs(x2-x1); 

  x0:={1}l; 
  y0:=b-Abs(Round(y1*my)); 
  with PaintBox1.Canvas do 
  begin 
  PaintBox1.Canvas.MoveTo(l, b); PaintBox1.Canvas.LineTo(l, b-h); 
  PaintBox1.Canvas.MoveTo(x0, y0); PaintBox1.Canvas.LineTo(x0+w, y0); 
  PaintBox1.Canvas.TextOut(l+5, b-h, FloatToStrF(y2, ffGeneral, 6, 3)); 
  PaintBox1.Canvas.TextOut(l+5, b, FloatToStrF(y1, ffGeneral, 6, 3)); 

  x:=x1; 
  repeat 
  y:=f(x); 
  PaintBox1.Canvas.Pixels[x0+Round(x*mx), y0-Round(y*my)]:=clRed; 
  x:=x+dx; 
  until (x>=x2); 
  end; 
end; 


procedure TForm1.RadioButton1Click(Sender: TObject); 
begin 
Form1.Caption:= 'График функции: sin(x)' 
end; 

procedure TForm1.RadioButton2Click(Sender: TObject); 
begin 
Form1.Caption:= 'График функции: cos(x)' 
end; 

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


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где ошибка? Delphi. Вычисление значения по формуле в трёх условиях Erlotaza Помощь студентам 6 06.06.2012 20:34
программка для построения графиков тригонометрических функций sin cos tg ctg [delphi] Николай.А Помощь студентам 3 06.10.2011 08:46
передача текста в textarea в зависимости от выбора radiobutton AndreiN JavaScript, Ajax 2 24.03.2011 19:19
максимальное из трёх чисел (Delphi) WADADA Помощь студентам 2 27.03.2009 18:15