![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() В каком месте кода? Я скажем решил в процедуру Button1Click, что бы функция пренадлежала ей и вызывалась нажатием кнопки. В public ведь скрывать мне нечего. Я не уверен чито так надо. Понял что я смутно очинь смутно представляю как надо.
Ошибка при компиляции на первой же строке функции. Да я ожидал что обьявление функции если оно верное будит скомпилировано, без ошибок. Без использования функции. Если в другом модуле эта функция не нужна её можно и не объявлять. А как их правильно вообще обьявлять? Я имено с Дельфи почти некак, незнаком. Принцип классов в общем понимаю, но тут много особеностей. Почти наугад делаю. Вот тоже вышла ошибка Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin TFunc = function (x: real): real; procedure DrawGraph (f: TFunc; a: real; b: real; C: TCanvas); var x, y, h: real; max, min: real; sx, sy: real; xmid, ymid: integer; begin sx := (c.ClipRect.Right)/(b-a); h := 1/sx; xmid := c.ClipRect.Right div 2; ymid := c.ClipRect.Bottom div 2; x := a; max := f( x); min := max; while x<=b do begin y := f( x); if y<min then min := y; if y>max then max := y; x := x + h; end; sy := c.ClipRect.Bottom/ (max-min); c.Brush.Color := clBlack; c.FillRect(Rect(0, 0, c.ClipRect.Right, c.ClipRect.Bottom)); c.Pen.Color := clYellow; c.MoveTo(0, ymid); c.LineTo(c.ClipRect.Right, ymid); c.MoveTo(xmid, 0); c.LineTo(xmid, c.ClipRect.Bottom); x := a; y := f(x); c.Pen.Color := clWhite; c.MoveTo(xmid+round(sx*x), ymid-round(sy*y)); while x<=b do begin y := f(x); c.LineTo(xmid+round(sx*x), ymid-round(sy*y)); x := x + h; end; end; Canvas.Brush.Style:=bsCross; Canvas.Brush.Color:=clRed; Canvas.Pen.Color:=clRed; Canvas.Ellipse(100,100,300,200); end; end. Ага. Undeclared identifier TFunc |