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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2016, 16:58   #1
masha_vf
Новичок
Джуниор
 
Регистрация: 26.05.2016
Сообщений: 1
По умолчанию Рисование фигур в делфи

Ка сделать так, что фигуры поворачиваливались при рисовании?




Код:
unit Ellipse;

interface

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

type
  TForm1 = class(TForm)
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);
    procedure drawCoolRectangle(canvas: TCanvas);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Center, Radius: TPoint;
Circle: Boolean;
bmp : TBitmap;
cl:integer;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
bmp := TBitmap.Create;
bmp.SetSize(form1.Width, form1.Height);

Center.X := -1;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
begin
Randomize;
cl:=1+random(8);
Center.X := X;
Center.Y := Y;
end;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if Center.X <> -1 then
begin
form1.Caption:=Format ('Координаты: x=%d, y=%d ' , [X, Y]);;
Radius.X := abs(Center.X-X);
Radius.Y := abs (center.Y-Y);
form1.Canvas.Draw(0, 0, bmp);
drawCoolRectangle(form1.Canvas);
end;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
drawCoolRectangle(bmp.Canvas);
form1.Canvas.Draw(0, 0, bmp);
Center.X := -1;
end;

procedure TForm1.drawCoolRectangle(canvas: TCanvas);
begin
if cl=1 then canvas.Brush.Color:=clred;
if cl=2 then canvas.Brush.Color:=clblue;
if cl=3 then canvas.Brush.Color:=claqua;
if cl=4 then canvas.Brush.Color:=clgreen;
if cl=5 then canvas.Brush.Color:=clblack;
if cl=6 then canvas.Brush.Color:=clyellow;
if cl=7 then canvas.Brush.Color:=clsilver;
if cl=8 then canvas.Brush.Color:=clpurple;
canvas.Rectangle(Center.X-Radius.X, Center.Y-Radius.Y, Center.
X+Radius.X, Center.Y+Radius.Y);
end;
end.

Последний раз редактировалось Аватар; 26.05.2016 в 17:49.
masha_vf вне форума Ответить с цитированием
Старый 27.05.2016, 09:06   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
поворачиваливались при рисовании?
это вот так штоль?

Вложения
Тип файла: 7z pf_287492.7z (558.0 Кб, 14 просмотров)
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 27.05.2016 в 09:10.
min@y™ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисование фигур Юрий Ханас C# (си шарп) 1 03.06.2013 09:54
Рисование фигур super-php PHP 1 27.03.2013 02:13
с# рисование фигур luser-user Помощь студентам 10 16.02.2013 22:29
Рисование фигур(На Дельфи) Nach Помощь студентам 2 16.11.2011 13:14
Рисование фигур Nach Общие вопросы Delphi 0 16.11.2011 08:56