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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2013, 17:14   #1
soso1
 
Регистрация: 26.03.2013
Сообщений: 4
По умолчанию Помогите плиз реализовать в Lasarus! Изобразить удаляющийся квадрат, определенных размеров, размещенный в центре экрана.

Изобразить удаляющийся квадрат, определенных размеров, размещенный в центре экрана. начало у меня есть, но он у меня из середины увеличивается, т.е. нужно наоборот, как дальше не знаю((((


Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ExtCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);

    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;
 x, y: longint;
    n,i:integer;

implementation

{$R *.lfm}

{ TForm1 }


procedure TForm1.Button1Click(Sender: TObject);
begin
   Timer1.Enabled:= not Timer1.Enabled;
 end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   n:=1;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  i:=i+1;
   Image1.Canvas.Pen.Color:=clWhite;
     Image1.Canvas.Pen.Color:=clBlack;
     x:=(Image1.Width div 2);
 y:=(Image1.Height div 2) ;
 Image1.Canvas.Rectangle(x+i,y+i, x-i,y-i);
end;

end.


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

Модератор.

Последний раз редактировалось Serge_Bliznykov; 16.10.2013 в 09:46.
soso1 вне форума Ответить с цитированием
Старый 15.10.2013, 18:45   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Image1.Canvas.Pen.Color:=clWhite;
  Image1.Canvas.Rectangle(x+i,y+i, x-i,y-i);
  i:=i-1;
  Image1.Canvas.Pen.Color:=clBlack;
  x:=(Image1.Width div 2);
  y:=(Image1.Height div 2) ;
  Image1.Canvas.Rectangle(x+i,y+i, x-i,y-i);
end;
а в FormCreate не n инициализировать, а i - это будет половина длинны стороны квадрата, то бишь должно быть примерно Image1.Width div 2 или Image1.Height div 2, смотря что меньше.
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нарисовать фрактал в центре экрана alik98 Помощь студентам 18 14.03.2013 23:42
В центре экрана нарисовать квадрат и выполнить его диагональную штриховку в виде двух треугольников, расположенных еа од zzz6 Помощь студентам 1 06.07.2011 14:26
создать timage определенных размеров varelik Общие вопросы Delphi 6 12.02.2010 15:07
Попал какой то вирус adsubscribe вылетает каждые 10 минут в центре экрана реклама leonidka Операционные системы общие вопросы 8 16.07.2009 20:33