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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2011, 16:09   #1
Natasha190989
Пользователь
 
Регистрация: 02.05.2009
Сообщений: 10
Стрелка Графика в делфи

Помогите исправить программу. НЕобходимо, чтобы было 4 кнопки, с помощью которых можно было бы управлять фигурой

Код:
unit Unit78;

interface

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

type
  TForm1 = class(TForm)
    ButShow: TBitBtn;
    ButHide: TBitBtn;
    ButMove: TBitBtn;
    ButClose:TBitBtn;

    NewX: TEdit;
    NewY: TEdit;


    procedure ButShowClick(Sender: TObject);
    procedure ButHideClick(Sender: TObject);
    procedure ButMoveClick(Sender: TObject);
    procedure ButCloseClick(Sender: TObject);

    procedure FormCreate(Sender: TObject);
    procedure NewXClick(Sender: TObject);
    procedure NewYCLick(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;
 TMyPoint=Class
  X, Y:Integer;
  constructor Create(NewX,NewY:integer);
  destructor Destroy;virtual;
  procedure Show;virtual;
  procedure Hide;virtual;
  procedure MoveTo(NewX,NewY:integer);virtual;
  end;

  TMyFigure=Class(TMyPoint)
  r,a:integer;
  fcol:Tcolor;
  constructor Create(NewX,NewY,NewR,NewA:integer);
  procedure Show;override;
  procedure Hide;override;
  end;

var
  Form1: TForm1;
  Figure:TMyFigure;

implementation

{$R *.dfm}
 constructor TMyPoint.Create(NewX,NewY:integer);
  begin
   InHerited Create;
    x:=NewX;
    y:=NewY;
  end;

 destructor TMyPoint.Destroy;
   begin
    Figure.Free;
    Inherited;
   end;


 procedure TMyPoint.Hide;
  begin
   Form1.Canvas.Pixels[X,Y]:=clNavy;
  end;

 procedure TMyPoint.Show;
   begin
    Form1.Canvas.Pixels[X,Y]:=clWhite;
  end;

 procedure TMyPoint.MoveTo(NewX,NewY:integer);
 begin
   Hide;
   x:=NewX;
   y:=NewY;
   Show;
 end;

constructor TMyFigure.Create(NewX,NewY,NewR,NewA:integer);
begin
 Inherited Create(NewX,NewY);
 r:=NewR;
 a:=NewA;
end;

procedure TMyFigure.Show;
const
 x=200;
 y=200;
 a=50;
 r=133;
begin
 With Form1.Canvas do
 begin
  Pen.Width:=5;
  Pen.Color:=fcol;
  Ellipse(trunc(x-R), trunc (y-r), trunc (x+r),trunc( y+r));
  lineTo(x-r,a div 2 +y);
  lineTo (x-r, y-a div 2);
  lineTo(x-r,y-a div 2);
  lineTo (x + round(sqrt (sqr(3*r)+ sqr(a) div 4)), y);
  lineTo(x-r,a div 2 +y);
  lineTo (x + round(sqrt (sqr(3*r)+ sqr(a) div 4)), y);
 end;
 end;

Procedure TMyFigure.Hide;
 var
  concol:TColor;
 begin
  concol:=fcol;
  Fcol:=clNavy;
  show;
  fcol:=concol;
 end;



procedure TForm1.ButShowClick(Sender: TObject);
begin
  ButShow.Enabled:=False;
  Figure.show;
  ButHide.Enabled:=True;
end;

procedure TForm1.ButHideClick(Sender: TObject);
begin
  ButHide.Enabled:=False;
  Figure.Hide;
  ButShow.Enabled:=True;
end;

procedure TForm1.ButMoveClick(Sender: TObject);
var
   MoveX, MoveY:integer;
  begin
   ButShow.Enabled:=False;
   ButHide.Enabled:=False;
   try
    MoveX:=Strtoint(NewX.text);
   except
    on Exception:EConvertError do
    ShowMessage ('ââåäèòå íîâûå êîîðäèíàòû');
   end;
   try
    MoveY:=Strtoint(NewY.text);
   except
    on Exception:EConvertError do
    ShowMessage ('ââåäèòå íîâûå êîîðäèíàòû');
end;
end;
   
Procedure TForm1.ButCloseClick(Sender:TObject);
begin
 Close;
end;



procedure TForm1.FormCreate(Sender: TObject);
begin
 Figure:=TMyFigure.Create(100,100,50,133);
 Figure.fcol:=clWhite;
 ButHide.Enabled:=False;
end;


procedure TForm1.NewX(Sender: TObject);
begin
  NewY.Clear;
end;

procedure TForm1.NewY(Sender: TObject);
begin
 NewY.Clear;
end;

end.

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.
Вложения
Тип файла: rar Unit78.rar (1.1 Кб, 8 просмотров)

Последний раз редактировалось Serge_Bliznykov; 15.05.2011 в 21:38.
Natasha190989 вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графика Делфи Vova777 Общие вопросы Delphi 8 04.01.2011 16:19
графика в делфи Lena neznayka Помощь студентам 15 16.06.2010 10:08
графика в Делфи. pionerka Помощь студентам 5 28.04.2010 16:38
Графика в Делфи R_A_M_I_L7777777 Помощь студентам 14 27.03.2009 15:21
Графика в Делфи Killbrum Мультимедиа в Delphi 19 17.09.2008 22:29