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

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

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 10.11.2009, 16:57   #1
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
Вопрос Метод TWinControl отвечающий за "удочерение"

Собственно сабж.
Вот новый компонент.

Код:
unit ApexView;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Apex;


type
  TApexView = class(TWinControl)
  private
    procedure Paint(var Message: TWMPaint); message WM_PAINT;
  protected

  public
    constructor Create(AOwner: TComponent);override;
    procedure AddApex;
  published
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Jango', [TApexView]);
end;

constructor TApexView.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
end;

procedure TApexView.Paint(var Message: TWMPaint);
var
  DC: THandle;
  PS: TPaintStruct;
begin
  if Message.DC = 0 then
    DC := BeginPaint(Handle, PS) else
      DC := Message.DC;
end;

procedure TApexView.AddApex;
var temp:TApex;//Класс унаследованный от TGraphicControl
begin
  temp:=TApex.Create(Self);
  temp.Parent:=Self;
  temp.Visible:=true;
  Temp.Show;
end;
end.
В общем, сторонние компонеты не удочеряются, не в design-time не в run-time. Как быть?
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума
Старый 10.11.2009, 16:59   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
сторонние компонеты не удочеряются
Пардон, как это "удочеряться"?
I'm learning to live...
Stilet вне форума
Старый 10.11.2009, 17:02   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

может через InsertControl() ?

...делаем компонент, на него chart, в нем панели
Код:
unit pgl;

interface

uses MMSystem,Windows,SysUtils,Messages,Classes,Graphics,ExtCtrls,controls,
     OpenGL,chart,series,TeEngine;

type
  Tpgl=class(TPanel)

  private
    ftimer     : Ttimer;
    FActive    : Boolean;
    FInterval  : Integer;
    Fgor,Fver  : Integer;
    fabout     : string;

    DC  : THandle;
    hrc : HGLRC;
    FViewGrid    : Boolean;
    FViewSectors : Boolean;
    FViewMetka   : Boolean;
    FViewTest    : boolean;
    FViewMas3D   : Boolean;
    FViewPlace3D : Boolean;
    FTestPlace3D : Boolean;
    FViewChart   : Boolean;
   
    function DoSelect(x,y: GLint): GLint;
    procedure SetProjection(Sender: TObject);
    procedure scrool(k: smallint; p: boolean);
    procedure BmpTexture;
    procedure texto(x,y: glfloat; t: string);
    procedure paintSectors;
    procedure SetViewSectors(const Value: Boolean);
    procedure paintGrid;
    procedure SetViewGrid(const Value: Boolean);
    procedure SetViewMetka(const Value: Boolean);    //дин объект
    procedure paintTXT;
    procedure SetViewAxisText(const Value: Boolean); //---
    procedure SetViewTest(const Value: Boolean);     //---
    procedure paintMas3D;
    procedure SetViewMas3D(const Value: Boolean);
    procedure paintPlace3D;
    procedure test_sinxx(const Value: Boolean);
    procedure SetViewPlace3D(const Value: Boolean);

    procedure SetViewChart(const Value: Boolean);
  protected
    procedure CreateDC;
   
    procedure WMKeyUp(var msg:TWMKeyUp);message WM_KEYUP;
    procedure WMKeyDown(var msg:TWMKeyDown);message WM_KEYDOWN;
    procedure WMPaint(var msg:TWMPaint);message WM_Paint;
    procedure WMSize(var msg:TWMSIZE);message WM_SIZE;
    procedure WMMouseWheel(var msg:TWMMouseWheel);message WM_MOUSEWHEEL;
    procedure WMMouseMove(var msg:TWMMouseMove);message WM_MouseMove;
    procedure WMMouseRDown(var msg:TWMLButtonDown);message WM_RButtonDown;
    procedure WMMouseRUp(var msg:TWMLButtonDown);message WM_RButtonUp;
    procedure WMMouseLUp(var msg:TWMLButtonUp);message WM_LButtonUp;
    procedure WMMouseLDown(var msg:TWMLButtonDown);message WM_LButtonDown;
  
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published

    property About             : string read Fabout write setabout;
    property OGL_Active        : boolean read FActive write setactive default False;
    property OGL_Timer_Interval: integer read FInterval write SetInterval default 100;

    property OGL_ViewGrid      : boolean read FViewGrid write SetViewGrid;
    property OGL_ViewSectors   : boolean read FViewSectors write SetViewSectors;
    property OGL_ViewMetka     : boolean read FViewMetka write SetViewMetka;
    property OGL_ViewAxisText  : boolean read FViewAxisText write SetViewAxisText;
    property OGL_ViewTest      : boolean read FViewTest write SetViewTest;
    property OGL_ViewMas3D     : boolean read FViewMas3D write SetViewMas3D;

  end;

 procedure Register; 

 var b: array of Tchart;
      prz: array of array of Tpanel;
implementation
{$R pgl.RES}

// МОДУЛЬ ---------------------------------------------------------------------
constructor Tpgl.Create(AOwner: TComponent);
var i   : integer;
    strm: TResourceStream;
begin
 inherited Create(aowner);
 //
 DoubleBuffered:= true;
 ...
 бла-бла-бла
 FViewChart:= true;
 setviewchart(FViewChart)
end;


procedure tpgl.SetViewChart(const value: boolean);
var i,z:integer;
begin
 FViewChart:= Value;
 if value then begin
  life:= false;

  for i:= low(b) to high(b) do try
   b[i].Destroy;
   for z:=0 to 33 do prz[z,i].Destroy;
   for z:=0 to 5 do prz_[z,i].Destroy
  except end;
  //
  setlength(b,fver*fgor);
  setlength(prz,34,fver*fgor);
  setlength(prz_,6,fver*fgor);
  for i:= low(b) to high(b) do try
   b[i]:= Tchart.Create(nil);

   //серии
   for z:=b[i].SeriesCount-1 downto 0 do
    begin b[i].Series[z].Destroy end;
   SuN:= TbarSeries.Create(self);
   b[i].AddSeries(SuN);

   //события
   with b[i] do begin
    бла-бла-бла
    //
    parent:= self;

    // FORMULAR ===============================================================
    for z:=0 to 33 do begin //индикаторы признаков-
     prz[z,i]:= Tpanel.Create(b[i]);
     бла-бла
     ...
     b[i].InsertControl(prz[z,i])
    end;
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 10.11.2009 в 17:22.
raxp вне форума
Старый 10.11.2009, 17:09   #4
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Может;
Код:
windows.SetParent();
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума
Старый 10.11.2009, 21:55   #5
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

Все, я подумал что фтопку TWinControl и унаследовал от TCustomControl. Всем спасибо за внимание.
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body tabikA HTML и CSS 5 24.02.2009 21:50
Под прикрытием "кризиса" наши доблестные "управители" хотят утопить нас в радиоактивных отходах mihali4 Свободное общение 1 17.01.2009 01:43
Метод перебора для нахождения решения "Судоку" ДЖО Помощь студентам 23 04.06.2008 22:29
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51