Текущий архив: 2006.04.09;
Скачать: CL | DM;
ВнизВот дан исходный модуль.Это программа строит график функции.Помог Найти похожие ветки
← →
Gleb © (2006-03-25 20:00) [0]Вот дан исходный модуль.Это программа строит график функции.Помогите
сделать чтобы на осях координат (ox и oy) были проставлены значения функции и
что бы они менялись в зависимости от масштаба и смещения.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Spin, StdCtrls, Buttons, ComCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
SpinEdit1: TSpinEdit;
SpinEdit2: TSpinEdit;
Label2: TLabel;
Label3: TLabel;
SpinEdit3: TSpinEdit;
SpinEdit4: TSpinEdit;
Label4: TLabel;
Label5: TLabel;
Image1: TImage;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
procedure SpinEdit4Change(Sender: TObject);
procedure SpinEdit3Change(Sender: TObject);
procedure SpinEdit2Change(Sender: TObject);
procedure SpinEdit1Change(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure SpeedButton2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Timer1Timer(Sender: TObject);
procedure SpinEdit5Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure ClearZ;//очищает
procedure DrawZ;//рисует
Function Calc_yr_on_Xr( sT:string;xr:real):real;
end;
var
Form1: TForm1;
implementation
uses Tfp_01;
{$R *.dfm}
procedure TForm1.ClearZ;
begin
image1.Canvas.Brush.Color := clwhite;
image1.Canvas.FillRect( Rect(0,0, image1.Width,image1.Height) );
end;
procedure TForm1.DrawZ;
var g1,g2,g4,g3,g0:integer;
Px,Py:longint;
y,x:real;
begin
try
g1:=SpinEdit1.Value;//горизонтальный масштаб
g2:=SpinEdit2.Value;//вертикальный масштаб
g3:=SpinEdit3.Value;//смещение горизонтальное
g4:=SpinEdit4.Value;//смещение вертикальное
with image1.Canvas do
begin
pen.Width:=2;
pen.Color:=clBlack;
// ось ox
moveto(0,g3);
lineto(image1.Width,g3);
// ось 0y
moveto(g4,0);
lineto(g4,image1.Height);
pen.Width:=3;
Pen.Color:=Clred;
Moveto(-90,0) ;
For px:=-1 to image1.Width do
begin
X:=(px-g4)/ g2;
Y:=Calc_yr_on_Xr(Edit1.Text,x);
Py := g3-Trunc(Y*g1);
LineTo( px, py);
end;
end;
except
MessageDlg("Не возможно построить график",
mtInformation,[mbok], 0);
end;
end;
procedure TForm1.SpinEdit4Change(Sender: TObject);
begin
ClearZ;// очистить
DrawZ;
end;
procedure TForm1.SpinEdit3Change(Sender: TObject);
begin
ClearZ;// очистить
DrawZ;//нарисовать
end;
procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
ClearZ;// очистить
DrawZ;//нарисовать
end;
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
ClearZ;// очистить
DrawZ;//нарисовать
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
DrawZ;//нарисовать
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
ClearZ;
end;
procedure TForm1.SpinEdit5Change(Sender: TObject);
begin
ClearZ;// очистить
DrawZ;
end;
function TForm1.Calc_yr_on_Xr(sT: string; xr: real): real;
var s2:string; n:integer;
begin
s2 := FloatToStr(xr);
n := Pos (",",s2);
if n>0 then s2 := Copy(s2,1,n-1)+"."+Copy(s2,n+1, Length(s2));
repeat
n:=Pos("x",sT);
if n>0 then sT := Copy(sT,1,n-1)+s2+Copy(sT,n+1, Length(sT));
until n=0;
result:= Tfp_parse2real( sT );
end;
procedure TForm1.Edit2Change(Sender: TObject);
begin
ClearZ;// очистить
DrawZ;
end;
end;
end.
← →
Desdechado © (2006-03-25 20:06) [1]это все уже сделано в TChart
← →
Gleb © (2006-03-25 20:22) [2]А мне надо чтобы значение были в компоненте Image1....
← →
Kolan © (2006-03-25 22:58) [3]
Canvas.TextOut
← →
Gleb © (2006-03-27 10:44) [4]А как сделать чтобы менялись значения с изменением масштаба
← →
Darvin © (2006-03-27 18:01) [5]Завести свойство Scale : Integer
← →
Gleb © (2006-03-28 10:43) [6]А как теперь это записать в моей программе?
Страницы: 1 вся ветка
Текущий архив: 2006.04.09;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.013 c