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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2010, 21:34   #1
kpik2008
Новичок
Джуниор
 
Регистрация: 17.05.2010
Сообщений: 12
Злость Фрактал Жулия делфи 7

Здравствуйте, есть пример постороения фрактала Жулия в Delphi 7, но выдает ошибку вот код:

Код:
unit Unit1;

interface

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

type
  TMain = class(TForm)
    imPict: TImage;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Main: TMain;

implementation

{$R *.dfm}

function Julia(x0, y0: real): DWORD;
var
	a, b, x, y, x2, y2, xy: real;
	r : real;
	k :  integer;       
begin
  r := 0;
  a := -0.37; b := -0.37; 						
	x := x0; y := y0;
	k := 100;
	while (k>0)and(r<4) do
	begin
		x2 := x*x;
		y2 := y*y;
		xy := x*y;
		x := x2-y2-a;    					//Итерации, вычисление
		y := 2*xy-b;     					//f(x+1) як f(x)
		r := x2+y2;
		dec(k)
	end;

	k := round((k/100)*255);
  result := RGB(k,k,k);                            		 // Определение цвета отдельной точки

end;




procedure TMain.FormCreate(Sender: TObject);
var
	x_min, y_min, x_max, y_max, hx, hy, x, y: real;
	i, j, n: integer;
begin
x_min := -1.5; x_max := 2;	// Сплющення готового // изображения осями
	y_min := -1.5; y_max := 1.5;			//координат

	n:=500; 						// Текущее значение масштаба
// большие значения - лучшее качество / / и медленнее воспроизведения

y:=y_min;							
hx := (x_max-x_min)/n;
hy := (y_max-y_min)/n;

  for j := 0 to n do 					// обход всех точек поверхности вывода
	begin
		x := x_min;
		for I := 0 to n do
		begin
      		impict.Canvas.Pixels[i,j] := Julia(x, y); 
   
// закраска точки на экране цветом
		x := x+hx;
		end;
		y := y+hy;
	end;
end;
end.
Пишет что Declaration of class class is missing or incorrect, вроде все перепробовал, может поможете?
kpik2008 вне форума Ответить с цитированием
Старый 17.05.2010, 21:44   #2
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Ошибка вылезает здесь:
Код:
impict.Canvas.Pixels[i,j] := Julia(x, y);
?
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 17.05.2010, 21:49   #3
kpik2008
Новичок
Джуниор
 
Регистрация: 17.05.2010
Сообщений: 12
По умолчанию

Изначально выдает ошибку:

Код:
Error in module Unit1: Declaration of class TForm is missing or incorect.

Код:
The compiler is unable to locate the form's class declaration in the interface sectionThis is probably because
the type declaration containing the class has been deleted, commented out, or incorrectly modified.
This error occurs if there is no class declaration equivalent to the following:

type

...
	TForm1 = class(TForm)
	...

Use UNDO to reverse your edits, or correct the declaration manually. For more information about Delphi class declaration syntax, see Class Types.
а если заменяю:

Код:
TMain = class(TForm)
на

Код:
TForm1 = class(TForm)


то пишет


Код:
[Error] Unit1.pas(19): Undeclared identifier: 'TMain'
[Error] Unit1.pas(54): Identifier redeclared: 'TMain'
[Error] Unit1.pas(74): Undeclared identifier: 'impict'
[Error] Unit1.pas(74): Missing operator or semicolon
[Error] Unit1.pas(11): Unsatisfied forward or external declaration: 'TForm1.FormCreate'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
в строках:

Код:
Main: TMain;
procedure TMain.FormCreate(Sender: TObject);
impict.Canvas.Pixels[i,j] := Julia(x, y); 
procedure FormCreate(Sender: TObject);

Последний раз редактировалось kpik2008; 17.05.2010 в 21:59. Причина: дополнение к ответу
kpik2008 вне форума Ответить с цитированием
Старый 17.05.2010, 22:08   #4
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

А как вы делали? У меня все работает.

Только нужно событие не OnCreate а OnPaint.

Собственно, скриншот:
Изображения
Тип файла: jpg Screenshot.jpg (41.8 Кб, 94 просмотров)
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab

Последний раз редактировалось ex.cluz; 17.05.2010 в 22:18.
ex.cluz вне форума Ответить с цитированием
Старый 17.05.2010, 22:10   #5
kpik2008
Новичок
Джуниор
 
Регистрация: 17.05.2010
Сообщений: 12
По умолчанию

вы бы не могли бы кинуть исходники в электронном варианте? буду весьма благодарен

хм, а вы какой файл создавали? апликейшен или ?? и что-то не могу разобраться где вы взяли OnCreate вижу только FormCreate. Я новичок просьба сильно не бить

Последний раз редактировалось kpik2008; 17.05.2010 в 22:22.
kpik2008 вне форума Ответить с цитированием
Старый 17.05.2010, 22:19   #6
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Переправьте все TMain на TForm1.

У меня такое подозрение, что вы этот код целиком откуда-то скопировали...
Копировать нужно с умом.

Создавал VCL Forms Application - Delphi for Win32 (у меня 2007 delphi)
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab

Последний раз редактировалось ex.cluz; 17.05.2010 в 22:27.
ex.cluz вне форума Ответить с цитированием
Старый 17.05.2010, 22:32   #7
kpik2008
Новичок
Джуниор
 
Регистрация: 17.05.2010
Сообщений: 12
По умолчанию

файл действительно выдернут из текста ....

все сделал как вы и сказали теперь ошибка на

Код:
impict.Canvas.Pixels[i,j] := Julia(x, y);
может вы датите все таки в электронном виде и я попытаюсь разобраться а то что-то туго

Последний раз редактировалось kpik2008; 17.05.2010 в 22:43.
kpik2008 вне форума Ответить с цитированием
Старый 17.05.2010, 22:43   #8
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Цитата:
файл действительно выдернут из текста ....
Это понятно. Если интересно, могу сказать откуда я это понял.

Цитата:
просьба сильно не бить
Как я заметил не любят тут либо наглых, либо любителей халявы, особенно, когда один человек совмещает в себе и то и другое.
Ко всем остальным тут по возможности дружественное отношение.

Ладно, вернемся к кодингу.
Теперь все просто.
У вас на форме должен находиться TImage. Он там есть?
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab

Последний раз редактировалось ex.cluz; 17.05.2010 в 22:46.
ex.cluz вне форума Ответить с цитированием
Старый 17.05.2010, 22:48   #9
kpik2008
Новичок
Джуниор
 
Регистрация: 17.05.2010
Сообщений: 12
По умолчанию

Цитата:
Сообщение от ex.cluz Посмотреть сообщение


Как я заметил не любят тут либо наглых, либо любителей халявы, либо и то и другое.
Ко всем остальным тут по возможности дружественное отношение.


TImage ... нет

как его создать?

Последний раз редактировалось kpik2008; 17.05.2010 в 22:51.
kpik2008 вне форума Ответить с цитированием
Старый 17.05.2010, 22:51   #10
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Отлично!
А где же будет происходить рисование?
Срочно кидайте компонент TImage на форму.

Теперь строчку
Код:
impict.Canvas.Pixels[i,j] := Julia(x, y);
Меняйте на
Код:
Image1.Canvas.Pixels[i,j] := Julia(x, y);
Попробуйте запустить.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab

Последний раз редактировалось ex.cluz; 17.05.2010 в 22:56.
ex.cluz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фрактал в виде папоротника Arigato Мультимедиа в Delphi 5 29.03.2011 06:33
фрактал по центру image Сергей089 Помощь студентам 0 04.05.2009 21:59
Фрактал на PHP Alter PHP 5 29.10.2008 15:24