Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.06.2014, 18:28
Dimka-super Dimka-super вне форума
Прохожий
 
Регистрация: 11.02.2014
Сообщения: 23
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Обоснуйте пожалуста, где обьявить функцию?

В каком месте кода? Я скажем решил в процедуру 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
Ответить с цитированием
 


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:41.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter