Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.09.2009, 22:17
crossmark crossmark вне форума
Прохожий
 
Регистрация: 07.09.2009
Сообщения: 7
Репутация: 10
По умолчанию Мое начало в ООП

Привет всем. мой вопрос такой... Пытаюсь разобраться а ООП, вот придумал себе задание.
Создается динамически некая фигура (тело). Тело начинает движение пока светофор зеленый, в противном случае оно стоит.

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Shape1: TShape;
    Timer1: TTimer;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
type TTelo=class
     private
     fig:TShape;
     fposX:integer;
     fposY:integer;
     fstop:boolean;
    procedure PColor(const Value: Tcolor);
    function GetY: integer;
    procedure SetY(const Value: integer);

     public
     constructor Create; 
     Procedure Position;
     property Color:Tcolor write PColor;
     property y:integer read GetY write SetY;
end;
var
  Form1: TForm1;
  Telo:array[1..10] of TTelo;
  t:byte;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 t:=0;
 speedbutton1.Caption:='вкл. зеленый';
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
 if SpeedButton1.tag=0 then begin
                   speedbutton1.Caption:='вкл.зеленый';
                   shape1.Brush.Color:=clGreen;
                   speedbutton1.Tag:=1;
                   exit;
               end;

 if SpeedButton1.tag=1 then begin
                   speedbutton1.Caption:='тъы. ?хыхэ?щ';
                   shape1.Brush.Color:=clred;
                   speedbutton1.Tag:=0;
                   exit;
               end;
end;



{ TTelo }

constructor TTelo.Create;
var v:byte;
begin
   fig:=TShape.Create(nil);
   fig.Parent:=form1;
   Randomize;
   fig.Left:=Random(800);
   fig.Width:=40;
   fig.Height:=40;
   v:=Random(5);
   case v of
   0: fig.Brush.Color:=clMoneyGreen;
   1: fig.Brush.Color:=clGreen;
   2: fig.Brush.Color:=clblue;
   3: fig.Brush.Color:=clMaroon;
   4: fig.Brush.Color:=clYellow;
   5: fig.Brush.Color:=clteal;
   end;
end;

function TTelo.GetY: integer;
begin
   y:=fig.Top;
end;

procedure TTelo.PColor(const Value: Tcolor);
begin
   //
end;



procedure TTelo.Position;
begin
    telo[t].fposY:=y;

end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
   inc(t,1);
   if t=10 then exit;
   telo[t]:=TTelo.Create;
  // timer1.Enabled:=true;
end;

procedure TTelo.SetY(const Value: integer);
begin
    fig.Top:=y;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i:byte;
begin
   // for i:=1 to 10 do
  //  begin
        telo[t].Position;
  //  end;

end;

end.

lmikle: Пользуемся тегами!!!
1. вопрос в том, что более правильней все организовать.
2. если создаются динамически объекты, каким образом можно передать в процедуру один объект для его обработки

Последний раз редактировалось crossmark, 08.09.2009 в 22:25.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:01.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter