![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
помогите пожалуйста исправить ошибки =(, тут самую превую выдает на 51 строке
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
LabeledEdit3: TLabeledEdit;
Memo1: TMemo;
Button1: TButton;
Image1: TImage;
procedure LabeledEdit3Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Xmin,Xmax,h,y:real;
cx,cy:real;
begin
try
Xmin:=StrToFloat(LabeledEdit1.Text);
Xmax:=StrToFloat(LabeledEdit2.Text);
h:=StrToFloat(LabeledEdit3.Text);
except
MessageDlg('неверные данные',mtError,[mbOK],0);
exit
end;
if Xmax<=Xmin then
begin
MessageDlg('Xmin>Xmax!',mtError,[mbOK],0);
exit
end;
end;
Memo1.Lines.Clear;
with Image1.Canvas do
begin
Brash.Color:=clBlue;
FillRect(Image1.ClientRect);
pen.color:=clWhite;
moveto(0,Image1.Height div 2);
lineto(Image1.Width,Image1.Height div 2);
cx:=(Xmax-Xmin)/Image1.Width;
cy:=2/Image1.Height;
if cy>cx then
cx:=cy;
moveto(0,Image1.Height div 2);
While Xmin<=Xmax do
begin
y:=sin(Xmin);
Memo1.Lines.Add('sin('+FloatToStrF(Xmin,ffFixed,10,4)+')='+FloatToStrF(y,ffFixed,10,4));
lineto(trunc(Xmin/cx),Image1.Height div 2 - trunc(Xmin/cx));
Xmin:=Xmin+h;
end;
end;
end. |
|
#2
|
||||
|
||||
|
End лишний.
И учитесь уже код нормально оформлять. читать же невозможно! Код:
procedure TForm1.Button1Click(Sender: TObject);
var
Xmin, Xmax, h, y: real;
cx, cy: real;
begin
try
Xmin := StrToFloat(LabeledEdit1.Text);
Xmax := StrToFloat(LabeledEdit2.Text);
h := StrToFloat(LabeledEdit3.Text);
except
MessageDlg('неверные данные', mtError, [mbOK], 0);
exit
end;
if Xmax <= Xmin then
begin
MessageDlg('Xmin>Xmax!', mtError, [mbOK], 0);
exit
end;
Memo1.Lines.Clear;
with Image1.Canvas do
begin
Brush.Color := clBlue;
FillRect(Image1.ClientRect);
pen.Color := clWhite;
moveto(0, Image1.Height div 2);
lineto(Image1.Width, Image1.Height div 2);
cx := (Xmax - Xmin) / Image1.Width;
cy := 2 / Image1.Height;
if cy > cx then
cx := cy;
moveto(0, Image1.Height div 2);
While Xmin <= Xmax do
begin
y := sin(Xmin);
Memo1.Lines.Add('sin(' + FloatToStrF(Xmin, ffFixed, 10, 4) + ')=' +
FloatToStrF(y, ffFixed, 10, 4));
lineto(trunc(Xmin / cx), Image1.Height div 2 - trunc(Xmin / cx));
Xmin := Xmin + h;
end;
end;
end; |
|
#3
|
||||
|
||||
|
Спасибо =( а можно ещё вопросик, у меня ещё в одной программке ошибку выдает, пишет пера нет...ну в общем странная ошибка ( я не знаю пока как она исправляется
Код:
procedure TForm1.Button1Click(Sender: TObject); Procedure Ufo(x,y:integer); begin with Image1.Canvas do begin Pen.Color:=clBlue; pen.width:=3; ellipse(x,y,x+20,y+10); end; end; var i:word; begin with Image1.Canvas do begin Form1.DoubleBuffered:=True; Brush.Color:=clBlack; Fillrect(Image1.ClientRect); for i:=1 to 500 do Pixels[RANDOM(Image1.Width),RANDOM(Image1.Height)]:=clWhite; end; Pen.Mode:=pmNOTXOR; for i:=0 to Image1.Width do begin Ufo (i,i div 2); Application.ProcessMessages; Sleep(10); Ufo (i,i div 2); end; end; end. |
|
#4
|
||||
|
||||
|
Бо ты за пределами with Image1.Canvas do...
|