IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Запар с графикой, Нужна помощь
сообщение
Сообщение #1


Гость






Всем ЗДРАВСТВУЙТЕ!!! Написал прогу для построения фигуры с конструктором и деструктором, но что-то не получилось. Помогите, кто может. 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;
TPic = class
InX,InY:integer;
constructor Create(InX,InY:integer);
procedure Draw; virtual;
end;
TDuga = class(TPic)
InXR,InYR:integer;
constructor Create(InX,InY:integer;InXR,InYR:integer);
procedure Draw; override;
end;
var
Form1: TForm1;
Duga:TDuga;
x0,y0,xr,yr:integer;

implementation

{$R *.dfm}
Constructor TPic.Create(InX,InY:integer);
begin
x0:=InX;
y0:=InY;
end;

Constructor TDuga.Create(InX,InY,InXR,InYR:integer);
begin
//x0:=InX; y0:=InY;
inherited create(InX,InY);
xr:=InXR;
yr:=InYR;
end;

Procedure TPic.Draw;
begin
Form1.Canvas.Arc(x0-xr,y0-yr,x0+xr,y0+yr,x0+xr,y0,x0,y0-yr);
end;

Procedure TDuga.Draw;
begin
Form1.Canvas.Arc(x0-xr,y0-yr,x0+xr,y0+yr,x0+xr,y0,x0,y0-yr);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Duga.Create(200,200,100,50);
Duga.Draw;
end;

end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Не надо хранить переменные объекта (класса) как глобальные!
Переделал:
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;

TPic = class
X,Y:integer;
constructor Create(InX,InY:integer);
procedure Draw; virtual;
end;

TDuga = class(TPic)
XR,YR:integer;
constructor Create(InX,InY,InXR,InYR:integer);
procedure Draw; override;
end;

var
Form1: TForm1;
Duga:TDuga;

implementation

{$R *.dfm}

Constructor TPic.Create(InX,InY:integer);
begin
x:=InX;
y:=InY;
end;

Constructor TDuga.Create(InX,InY,InXR,InYR:integer);
begin
inherited create(InX,InY);
xr:=InXR;
yr:=InYR;
end;

Procedure TPic.Draw;
begin
Form1.Canvas.Pixels[x,y]:=Form1.Canvas.Pen.Color;
end;

Procedure TDuga.Draw;
begin
Form1.Canvas.Arc(x-xr,y-yr,x+xr,y+yr,x+xr,y,x,y-yr);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Duga:=TDuga.Create(200,200,100,50);
Duga.Draw;
end;

end.



--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Огромное тебе СПАСИБО, hiv!!! Век не забуду
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.09.2020 3:13
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name