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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2012, 07:57   #1
phasha
Форумчанин
 
Регистрация: 24.03.2011
Сообщений: 130
Радость основы ООП

всем доброе утро! подскажите правильно ли я сделал инкапсуляцию и как сделать полиморфизм?))3_YNQ.rar
phasha вне форума Ответить с цитированием
Старый 26.01.2012, 12:22   #2
Inv1s
Форумчанин
 
Аватар для Inv1s
 
Регистрация: 06.11.2011
Сообщений: 214
По умолчанию

Скажу одно, умно скидывать уже скомпилированный проект.
Мы код должны как увидеть?
Помог, нажми на весы
html, js, php, С++, С#, OpenGl, DirectX, XNA, HLSL
Inv1s вне форума Ответить с цитированием
Старый 26.01.2012, 15:10   #3
phasha
Форумчанин
 
Регистрация: 24.03.2011
Сообщений: 130
По умолчанию

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls,unit2, ColorGrd, Spin;

type
  TForm1 = class (Tform)
    Button1: TButton;
    lbl1: TLabel;
    btn1: TButton;
    btn2: TButton;
    btn3: TButton;
    btn4: TButton;
    btn5: TButton;
    btn6: TButton;
    btn7: TButton;
    clrbx1: TColorBox;
    se1: TSpinEdit;

    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure formde(sender:tobject);
    procedure btn3Click(Sender: TObject);
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure btn4Click(Sender: TObject);
    procedure btn5Click(Sender: TObject);
    procedure btn6Click(Sender: TObject);
    procedure btn7Click(Sender: TObject);
    private
    public
    end;

var
  Form1: TForm1;
  Krug: TKrug;
  Rectangle: TRectangle;
  Line: TLine;
  col:TColor;
  razm:Integer;
  implementation


{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
begin
    Krug:=Tkrug.Create;
    Rectangle:=TRectangle.Create;
    Line:=TLine.Create;
    end;
procedure TForm1.Button1Click(Sender: TObject);
begin
  Line.color:=clrbx1.Selected;
  Line.razmer:=se1.Value;
  Line.risovanie(Form1.Canvas);
  lbl1.Caption:=lbl1.Caption+#13+'line';
end;

procedure TForm1.formde(sender: tobject);
begin
Krug.Destroy;
Line.Destroy;
Rectangle.Destroy;
end;

procedure TForm1.btn3Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.btn1Click(Sender: TObject);
begin
  Krug.color:=clrbx1.Selected;
  Krug.razmer:=se1.Value;
  Krug.risovanie(Form1.Canvas);
  lbl1.Caption:=lbl1.Caption+#13+'krugi';
end;

procedure TForm1.btn2Click(Sender: TObject);
begin
    Rectangle.color:=clrbx1.Selected;
    Rectangle.razmer:=se1.Value;
    Rectangle.risovanie(Form1.Canvas);
    lbl1.Caption:=lbl1.Caption+#13+'rectangle';
end;

procedure TForm1.btn4Click(Sender: TObject);
begin
  Rectangle.razmer:=4;
   Rectangle.Color:=clBtnFace;
   Rectangle.risovanie(Form1.Canvas);
end;

procedure TForm1.btn5Click(Sender: TObject);
begin
  Krug.razmer:=4;
  Krug.color:=clBtnFace;
   Krug.risovanie(Form1.Canvas);
end;

procedure TForm1.btn6Click(Sender: TObject);
begin
  Line.razmer:=4;
  line.color:=clBtnFace;
   Line.risovanie(Form1.Canvas);
end;

procedure TForm1.btn7Click(Sender: TObject);
begin

    lbl1.Caption:='';
end;

end.
Код:
unit Unit2;

interface

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

type

  TElement = class (TObject)
  fcolor:TColor;
  frazmer:Integer;
  function getrazmer:Integer;
  procedure setrazmer(newrazmer:integer);
    function getcolor:TColor;
    procedure setcolor(newcolor:tcolor);
    property razmer:integer  read getrazmer write setrazmer;
    property color:TColor read getcolor write setcolor;
    public
    procedure risovanie(canvas: Tcanvas); dynamic; abstract;
    end;

  TKrug = class(TElement)
    public
    procedure risovanie(canvas: Tcanvas); override;
    end;

  TLine = class (TElement)
    public
    procedure risovanie(canvas: Tcanvas); override;
    end;

  TRectangle = class (TElement)
    public
    procedure risovanie(canvas: Tcanvas); override;
    end;

implementation

procedure TKrug.risovanie(canvas: Tcanvas);
begin
inherited;
 canvas.Pen.width:=frazmer;
 canvas.Pen.Color:=fcolor;
 canvas.brush.style:=bsclear;
 canvas.Ellipse(170,160,190,180);
 canvas.Ellipse(200,160,220,180);
 canvas.Ellipse(230,160,250,180);
 canvas.Ellipse(260,160,280,180);
 end;

procedure TRectangle.risovanie(canvas: Tcanvas);
begin
inherited;
 canvas.Pen.width:=frazmer;
 canvas.Pen.Color:=fcolor;
 canvas.brush.style:=bsclear;
 Canvas.Rectangle(150,150,300,190);
 canvas.Rectangle(200,110,210,150);
 end;

procedure TLine.risovanie(canvas: Tcanvas);
begin
inherited;
 canvas.Pen.width:=frazmer;
 canvas.Pen.Color:=fcolor;
 canvas.brush.style:=bsclear;
 Canvas.MoveTo(110,190);
 canvas.LineTo(320,190);
 canvas.MoveTo(110,190);
 canvas.LineTo(140,220);
 canvas.moveto(140,220);
 canvas.lineto(300,220);
 Canvas.MoveTo(300,220);
 Canvas.LineTo(320,190);
 end;

{ TElement }

function TElement.getcolor: TColor;
begin
 Result:=fcolor;
end;

function TElement.getrazmer: Integer;
begin
       result:=frazmer;
end;

procedure TElement.setcolor(newcolor: tcolor);
begin
 fcolor:=newcolor;
end;

procedure TElement.setrazmer(newrazmer: integer);
begin
  frazmer:=newrazmer;
end;

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка основы класса. ООП Walker32 Фриланс 3 22.12.2011 11:45
Манипуляторы и манипулируемые + Основы ООП Izhic Свободное общение 9 13.06.2009 12:24
Паскаль ООП. Примеры программ с использованием ООП SeЯgey Помощь студентам 5 13.05.2009 21:55