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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2011, 00:11   #1
pastuhdima
Немного нуб
Пользователь
 
Аватар для pastuhdima
 
Регистрация: 01.10.2011
Сообщений: 41
Вопрос Как сделать чтобы при нажатии на кнопку точки двигались?

Есть код, у него должны двигаться точки с каждым нажатием на кнопку все дальше и дальше от центра... то есть менять свои координаты... точек много... Если кто знает как помочь, очень благодарен буду
Код:
unit BBT;

interface

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

type
  TForm1 = class(TForm)
    PaintBox1: TPaintBox;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure PaintBox1Paint(Sender: TObject);
type
  TMove = class
  virtx:integer;
  virty:integer;
  realx:real;
  realy:real;
  m:integer;
  procedure creating;
  procedure math;
  procedure draw;
  end;

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  j1:integer;
implementation

{$R *.dfm}
procedure TForm1.N1Click(Sender: TObject);
const n=1; m=100;
var obj,clone:array[n..m] of Tmove;
    i:integer;
begin
paintbox1.canvas.Brush.Color:=clBlack;
paintbox1.canvas.FillRect(paintbox1 .canvas.ClipRect);
for i := n to m do
if j1<>10 then begin
obj[i]:=tmove.Create;
obj[i].creating;
obj[i].virtx:=round(clientwidth/2+obj[i].realx);
obj[i].virty:=round(clientheight/2+obj[i].realy);
paintbox1.Canvas.Pixels[obj[i].virtx,obj[i].virty]:=clWhite;

j1:=10;
end;
for i := n to m do begin
clone[i]:=tmove.create;
obj[i]:=tmove.create;
clone[i].realx:=obj[i].realx;
clone[i].realy:=obj[i].realy;
end;
for i := n to m do begin
obj[i].realx:=clone[i].realx+1;
obj[i].realy:=clone[i].realy+1;
obj[i].virtx:=round(clientwidth/2+obj[i].realx);
obj[i].virty:=round(clientheight/2+obj[i].realy);
paintbox1.Canvas.Pixels[obj[i].virtx,obj[i].virty]:=clWhite;
obj[i].free;
clone[i].free;
end;


end;

procedure TForm1.N2Click(Sender: TObject);
begin
close;
end;

procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
paintbox1.canvas.Brush.Color:=clBlack;
paintbox1.canvas.FillRect(paintbox1 .canvas.ClipRect);
end;

{ TForm1.TMove }

procedure TForm1.TMove.creating;
begin
realx:=0;
realy:=0;
end;

procedure TForm1.TMove.draw;
begin

end;

procedure TForm1.TMove.math;
begin
realx:=realx+1;
realy:=realy+1;
end;

end.
pastuhdima вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать чтоб при нажатии на кнопку Label.Text значение +1? quarty Помощь студентам 2 19.02.2011 13:04
Как реализовать, чтобы при нажатии на кнопку, сворачивалась активная дочерняя форма ActiveMDIChild? Иванесс Помощь студентам 2 01.03.2009 14:11
Как сделать так,чтобы при нажатии на кнопку выполнялась процедура? Bolgarin Общие вопросы Delphi 10 03.06.2008 23:48
Как изменить текст сообщения при нажатии на кнопку? motaro Помощь студентам 2 14.07.2007 13:15
что нужно сделать, чтобы при нажатии кнопки запускалась процедура mager Общие вопросы Delphi 15 19.11.2006 15:02