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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2010, 14:06   #1
utrnjhyfgjktjy
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 13
По умолчанию Delphi, проблема с EDIT

В общем задали нам написать программу на Delphi, реализующую построения 2D графиков.
Суть задания такова:Вывести сетку, вывести график, и по заданному значению Х найти У.
У меня проблема при такой последовательности действий
1.Жму новая сетка.
2.Новый график.
3.Ввожу в 3 EDIT число и нажимаю "Апроксимировать" выдает аткую вот ошибку(я так понимаю, что даже не считывает число). Потому что выбивает именно в том месте (1 строка процедуры Button1.click).
Если же запустить программу, и сначала ввести в область 3 edit число,то программа его спокойно прочитает.
Скрины приложены.
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


var
  Form1: TForm1;
  XX:array [1..500] of real;
  YY:array [1..500] of real;
  MinY,MaxY:real;
  MinX,MaxX:real;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
y,x:real;
fminX,fmaxX,fminY,fmaxY:real;
kx,ky,bx,by,ix,iy:real; h:real;
i:byte;
begin
//Image1.Canvas.Rectangle(0,0,Image1.Width,image1.Height);
//form1.Image1.Canvas.MoveTo(trunc(image1.Width/2),0);
//form1.Image1.Canvas.LineTo(trunc(image1.width/2),0);

//image1.Canvas.Rectangle(trunc(image1.Width/2),0,trunc(image1.Width/2)+2,image1.Height);
//image1.Canvas.Rectangle(0,trunc(image1.height/2),image1.Width,trunc(image1.Height/2)+2);

fminX:=0; fmaxX:=image1.Width;fminY:=Image1.Height;fmaxY:=0;

minY:=minX;
maxY:=maxX;
kx:= (fmaxX-fminX)/(maxX-MinY); bx:=fmaxX-kx*MaxX;
ky:= (fmaxY-fminY)/(maxY-minY); by:=fMaxY-ky*MaxY;
h:=(MaxX-minX)/400;
x:=MinX;
y:=x*x;
XX[1]:=x;
YY[1]:=y;
i:=1;
ix:=trunc(kx*x+bx); iy:=trunc(ky*y+by); image1.Canvas.MoveTo(trunc(ix),trunc(iy));
repeat
  inc(i)    ;
x:=x+h; y:=x*x;
XX[i]:=x; YY[i]:=y;
 ix:=trunc(kx*x+bx); iy:=trunc(ky*y+by);
 image1.Canvas.lineto(trunc(ix),trunc(iy));

until x>MaxX;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
hX,hY:real;
i:byte;
begin
Image1.Canvas.Rectangle(0,0,Image1.Width,image1.Height);
image1.Canvas.Rectangle(trunc(image1.Width/2),0,trunc(image1.Width/2)+2,image1.Height);
image1.Canvas.Rectangle(0,trunc(image1.height/2),image1.Width,trunc(image1.Height/2)+2);
MinX:=StrtoInt(Form1.Edit1.Text);
MaxX:=StrtoInt(Form1.Edit2.Text);
hX:=trunc(Image1.Width/(maxX-minX))  ;
hY:=trunc(Image1.Height/(maxX-MinX));
for i:=0 to trunc(maxX-minX) do
begin
image1.Canvas.MoveTo(trunc(hX*i),0);
image1.Canvas.LineTo(trunc(hX*i),Image1.Height);
image1.Canvas.MoveTo(0,trunc(hY*i));
image1.Canvas.LineTo(Image1.Width,trunc(hY*i));

end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
a:integer;

begin
a:=StrtoInt(Form1.Edit3.Text);
form1.Edit4.Text:=inttostr(a);
//x:=Strtoint(form1.Edit3.text);
//for i:=1 to 399 do
//if (X>XX[i])and(X<XX[i+1]) then edit1.Text:=FloattoStr(YY[i]);

end;

end.
Изображения
Тип файла: jpg Безымянный.jpg (55.4 Кб, 131 просмотров)
Тип файла: jpg й.jpg (20.4 Кб, 68 просмотров)
utrnjhyfgjktjy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычисление с использованием Edit в Delphi TaYgA Помощь студентам 3 09.11.2009 19:22
Memo и Edit в Delphi werser Помощь студентам 4 24.08.2009 19:30
Упрощение edit (delphi) grom333 Помощь студентам 1 04.04.2009 13:49
Проблема с Edit Stein21 Общие вопросы Delphi 17 26.01.2009 00:23