Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Свой объект наследник TControl


Автор: Aehn 10.9.2008, 08:37
Создаю разные динамические объекты в памяти типа TImage, TFrame , но они не удовлетворяют меня по некоторым причинам.
Может кто-нибудь дать небольшой пример объекта типа TControl, который отрисовывал бы себя на форме/панели/ неважно чем?

Автор: Poseidon 10.9.2008, 08:42
Если не удавлетворяет только по некоторым причинам, то создавай потомка на базе того же TImage и переделывай/добавляй то, чем не удавлетворяет родитель.

Автор: Frees 10.9.2008, 09:07
вот простой пример, правда наследуемся от TGraphicControl который потомок TControl так проще рисовать
Код

unit Unit2;

interface

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

type
  TmyControl = class(TGraphicControl)
      procedure Paint;Override;
  end;

  TForm2 = class(TForm)
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    myControl: TmyControl;
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

uses Types;

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);
begin
  myControl := TmyControl.Create(Self);
  with myControl do begin
    Parent := Self;
    top := 10;
    left := 10;
    height := 250;
    Width := 200;
  end;
end;

{ TmyControl }


{ TmyControl }

procedure TmyControl.Paint;
begin
  inherited;
  Canvas.TextOut(0, 0, 'Рисуем контрол сами');
end;

end.

Автор: Aehn 10.9.2008, 10:30
Это то, что мне нужно!

Автор: Frees 10.9.2008, 10:45
Цитата(Aehn @  10.9.2008,  10:30 Найти цитируемый пост)
Это то, что мне нужно!

с тя +1

Автор: Poseidon 11.9.2008, 10:22
Я вот только не пойму, чем код Freesа принципиально отличается от 
Код

procedure TForm1.FormCreate(Sender: TObject);
begin
  Image1.Canvas.TextOut(0,0, 'Рисуем на контроле');
end;
 зачем велосипед изобрели?

Автор: Frees 11.9.2008, 10:56
Poseidon, ты прав конечно, но это же просто пример, кто знает какой логики в такого потомака накидает автор,
а отдельный класс наверно нужен что бы несколько таких контролов можно было создать, 


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)