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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2014, 19:21   #21
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

Понятно..

Я в примере понял в общем что и за что отвечает. Я вставлял параметры по одному.

Удивило что значимосьть они имеют в куче- ну, один без другого не того.

И причем Canvas.Ellipse- ключевой момент, скажем сама решотка без эллипса, не появляется. Значит программа соотносит что все эти четыре строки относятся к одному эллипсу!


А давайте ещо разбирём мою старую программу из записей, она по ходу, не компилится.

Код:
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
    { Public declarations }

  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
 begin

  draw();
end;



procedure Tform1.draw(); //Èìÿ ïðîöåäóðû

 var //Îáúÿâëåíèå ãëîáàëüíûõ ïåðåìåííûõ
    t, x, y: real;
        p: real;//CËÓ×ÀÉÍÀß ÂÅËÈ×ÈÍÀ
    k: longint;
    mid_x, mid_y, radius: integer;

begin   //Íà÷àëî ïðîöåäóðû
    mid_x := paintbox1.width div 2;
    mid_y := paintbox1.height -100 ;
    radius := trunc(0.1 * mid_y);
    randomize;
    x := 1.0;
    y := 0.0;
    for k := 1 to iterations do
    begin
        p := random;
        t := x;
        if p <= 0.85 then  //Ïîñòðîåíèå âåðõíåé ÷àñòè ëèñòà
                    begin
            x := 0.84 * x -0.045  * y;
            y := 0.045  * t + 0.86   * y + 1.6;
        end
        else
        if p <= 0.92 then  //Ïîñòðîåíèå ëåâîãî  ëèñòà
        begin    //Íà÷àëî ïðîöåäóðû
            x := 0.25   * x - 0.26 * y;
            y := 0.23 * t + 0.25   * y + 1.6;

        end                //Ïîñòðîåíèå ïðàâîãî ëèñòà
        else if p <= 0.99 then
        begin                                           //Íà÷àëî ïðîöåäóðû
            x := -0.135   * x + 0.28 * y;
            y := 0.26 * t + 0.245 * y + 0.44;
        end
        else
        begin              //Ïîñòðîåíèå ñòåáëÿ
            x := 0.0;
            y := 0.16 * y  ;
        end;
                    paintbox1.Canvas.Pixels[mid_x+round(radius*x), mid_y-round(radius*y)+35]:=clGreen
    end



end;

[30]: Undeclared identifier: 'draw'
[35]: Undeclared identifier: 'draw'
Dimka-novitsek вне форума Ответить с цитированием
Старый 03.06.2014, 19:23   #22
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

Боже, какая-то фигня!!
Dimka-novitsek вне форума Ответить с цитированием
Старый 03.06.2014, 19:24   #23
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

Код:
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
    { Public declarations }

  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
 begin

  draw();
end;



procedure Tform1.draw(); //Èìÿ ïðîöåäóðû

 var //Îáúÿâëåíèå ãëîáàëüíûõ ïåðåìåííûõ
    t, x, y: real;
        p: real;//CËÓ×ÀÉÍÀß ÂÅËÈ×ÈÍÀ
    k: longint;
    mid_x, mid_y, radius: integer;

begin   //Íà÷àëî ïðîöåäóðû
    mid_x := paintbox1.width div 2;
    mid_y := paintbox1.height -100 ;
    radius := trunc(0.1 * mid_y);
    randomize;
    x := 1.0;
    y := 0.0;
    for k := 1 to iterations do
    begin
        p := random;
        t := x;
        if p <= 0.85 then  //Ïîñòðîåíèå âåðõíåé ÷àñòè ëèñòà
                    begin
            x := 0.84 * x -0.045  * y;
            y := 0.045  * t + 0.86   * y + 1.6;
        end
        else
        if p <= 0.92 then  //Ïîñòðîåíèå ëåâîãî  ëèñòà
        begin    //Íà÷àëî ïðîöåäóðû
            x := 0.25   * x - 0.26 * y;
            y := 0.23 * t + 0.25   * y + 1.6;

        end                //Ïîñòðîåíèå ïðàâîãî ëèñòà
        else if p <= 0.99 then
        begin                                           //Íà÷àëî ïðîöåäóðû
            x := -0.135   * x + 0.28 * y;
            y := 0.26 * t + 0.245 * y + 0.44;
        end
        else
        begin              //Ïîñòðîåíèå ñòåáëÿ
            x := 0.0;
            y := 0.16 * y  ;
        end;
                    paintbox1.Canvas.Pixels[mid_x+round(radius*x), mid_y-round(radius*y)+35]:=clGreen
    end



end;
Dimka-novitsek вне форума Ответить с цитированием
Старый 03.06.2014, 19:25   #24
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
раз лист, два лист и рисуеш?
Ну да )))
Раз колечко два колечко - и получим человечка )))
Изучай тогда FireMonkey - там именно рисовать самый смак. Да еще и модно нонче.
Цитата:
какая-то фигня!!
Не удивительно.
procedure Tform1.draw(); существует а в классе формы такого метода не описано.
Описывай его.
I'm learning to live...

Последний раз редактировалось Stilet; 03.06.2014 в 19:28.
Stilet вне форума Ответить с цитированием
Старый 03.06.2014, 19:25   #25
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

ААА!! Вот оно что, собака.

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
{ Public declarations }

end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

draw();
end;



procedure Tform1.draw(); //Èìÿ ïðîöåäóðû

var //Îáúÿâëåíèå ãëîáàëüíûõ ïåðåìåííûõ
t, x, y: real;
p: real;//CËÓ×ÀÉÍÀß ÂÅËÈ×ÈÍÀ
k: longint;
mid_x, mid_y, radius: integer;

begin //Íà÷àëî ïðîöåäóðû
mid_x := paintbox1.width div 2;
mid_y := paintbox1.height -100 ;
radius := trunc(0.1 * mid_y);
randomize;
x := 1.0;
y := 0.0;
for k := 1 to iterations do
begin
p := random;
t := x;
if p <= 0.85 then //Ïîñòðîåíèå âåðõíåé ÷àñòè ëèñòà
begin
x := 0.84 * x -0.045 * y;
y := 0.045 * t + 0.86 * y + 1.6;
end
else
if p <= 0.92 then //Ïîñòðîåíèå ëåâîãî ëèñòà
begin //Íà÷àëî ïðîöåäóðû
x := 0.25 * x - 0.26 * y;
y := 0.23 * t + 0.25 * y + 1.6;

end //Ïîñòðîåíèå ïðàâîãî ëèñòà
else if p <= 0.99 then
begin //Íà÷àëî ïðîöåäóðû
x := -0.135 * x + 0.28 * y;
y := 0.26 * t + 0.245 * y + 0.44;
end
else
begin //Ïîñòðîåíèå ñòåáëÿ
x := 0.0;
y := 0.16 * y ;
end;
paintbox1.Canvas.Pixels[mid_x+round(radius*x), mid_y-round(radius*y)+35]:=clGreen
end



end;
Dimka-novitsek вне форума Ответить с цитированием
Старый 03.06.2014, 19:27   #26
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

Опять, туда-же!!! Это комментарии, и в Дельфи я их вижу.


Раз колечко два колечко - и получим человечка )))
Прикольно!!!! Спасибо!!
Dimka-novitsek вне форума Ответить с цитированием
Старый 03.06.2014, 19:38   #27
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

procedure Tform1.draw(); существует а в классе формы такого метода не описано.
Спасибо!! Описываю.
Dimka-novitsek вне форума Ответить с цитированием
Старый 05.06.2014, 14:18   #28
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

Позвольте спросить. Во- первых, спасибо огромное за разьяснения. И я все же не могу понять, где у меня что.

Программа
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm) //Данные класса называются полями, процедуры и функции — методами.
   // TForm1 — это имя класса,Button1Click(Sender: TObject) — имя метода.

    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    procedure draw();

  end;

var //Объекты как представители класса объявляются в программе в разделе var, например:

  Form1: TForm1;  //Form1 обьект класса TForm1

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
 begin

  draw();
  end;
  

procedure Tform1.draw(); //Имя процедуры

 var //Объявление глобальных переменных
    t, x, y: real;
        p: real;//CЛУЧАЙНАЯ ВЕЛИЧИНА
    k: longint;
    mid_x, mid_y, radius: integer;

begin   //Начало процедуры
    mid_x := paintbox1.width div 2; // выделяется необходимая память для данных объекта  mid_x
    mid_y := paintbox1.height -100 ;  // выделяется необходимая память для данных объекта  mid_y
    radius := trunc(0.1 * mid_y);
    randomize;
    x := 1.0;
    y := 0.0;
    for k := 1 to iterations do
    begin
        p := random;
        t := x;
        if p <= 0.85 then  //Построение верхней части листа
                    begin
            x := 0.84 * x -0.045  * y;
            y := 0.045  * t + 0.86   * y + 1.6;
        end
        else
        if p <= 0.92 then  //Построение левого  листа
        begin    //Начало процедуры
            x := 0.25   * x - 0.26 * y;
            y := 0.23 * t + 0.25   * y + 1.6;

        end                //Построение правого листа
        else if p <= 0.99 then
        begin                                           //Начало процедуры
            x := -0.135   * x + 0.28 * y;
            y := 0.26 * t + 0.245 * y + 0.44;
        end
        else
        begin              //Построение стебля
            x := 0.0;
            y := 0.16 * y  ;
        end;
                    paintbox1.Canvas.Pixels[mid_x+round(radius*x), mid_y-round(radius*y)+35]:=clGreen
    end



end;
У меня пока вопросы если можно ответьте хоть на часть

Form1 обьект класса TForm1. И что? Не вижу использования обьекта Form1. Или его обьявление здесь- пустая формальность?

2. (Sender: TObject) Вижу дважды. Что здесь Sender и что TObject?

3. := Это присвоение значения переменной или что? почему не =?

4. paintbox1.width это что? Что это может быть? paintbox1.height это что? Это команды или переменные? Почему не обьявлены? div это что?

paintbox1.Canvas.Pixels А сдесь в таком сочетании. С .Canvas и с .Pixelsю Они к стати что?

И комментарии могут быть не верны. В плане термины попутанны.
Dimka-novitsek вне форума Ответить с цитированием
Старый 05.06.2014, 14:30   #29
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Это комментарии, и в Дельфи я их вижу.
А ты не копируй из редактора Делфи...
Цитата:
Не вижу использования обьекта Form1.
Методы, которые описаны в классе, не требуют написания имени переменной этого класса. Поэтому и не пишут. Это если нужно обратиться к методам другой вормы тогда да.
Цитата:
(Sender: TObject) Вижу дважды. Что здесь Sender и что TObject?
Основы читать - бегом!!!
Не зная такого дальше нет смысла прогать. Впрочем в твоем случае можешь не обращать внимание на этот параметр в методах.
Цитата:
3. := Это присвоение значения переменной или что? почему не =?
Основы читать - бегом!!!
Это тебе не Си.
Цитата:
paintbox1.width это что? Что это может быть? paintbox1.height это что?
Основы читать - бегом!!!. Особенно обратить внимание при чтении на раздел Свойств объекта.
Цитата:
div это что?
Основы читать - бегом!!!
Основы читать - бегом!!!
Основы читать - бегом!!!
Основы читать - бегом!!!
Основы читать - бегом!!!
Основы читать - бегом!!!
Основы читать - бегом!!!
Основы читать - бегом!!!
Основы читать - бегом!!!
Основы читать - бегом!!!
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.06.2014, 14:39   #30
Dimka-novitsek
Форумчанин
 
Аватар для Dimka-novitsek
 
Регистрация: 22.04.2013
Сообщений: 588
По умолчанию

Спасибо!!!!!!!!!



А, ссылка не работает... А. Это общий совет!! Хорошо конечно.
Dimka-novitsek вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пиксель с экрана serres Visual C++ 1 30.12.2013 00:12
Тексел и Пиксель? VintProg Свободное общение 3 21.05.2011 13:07
С .в матрице, строку где все числа четные, расположить в обратном порядке. daimonTM Помощь студентам 1 22.12.2010 10:02
Пиксель арт MaRKer.nsk Фриланс 2 17.08.2010 13:37
Вывести пиксель egoreus Общие вопросы C/C++ 1 16.01.2010 14:50