Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Предустановка свойств нового компанента...... [D6, D7, 2000, XP]


Chelovek ©   (2007-02-02 08:37:00) 

При написании нового компонента (наследние от TStringGrid) необходимо выставить некоторые параметры. Это количество колонок, текст (заголовки колонок) размер по высоте-ширине. Реализовал это так:

constructor TMyGrid.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);

 Self.Options := [goFixedVertLine,
                 goFixedHorzLine,
                 goVertLine,
                 goHorzLine,
                 goRowSizing,
                 goRowSelect];
 Self.DefaultRowHeight := 17;

 Self.RowCount := 1;
 Self.ColCount := 3;
 Self.FixedCols := 0;
 Self.Cells[0, 0] := 'Номер 1';
 Self.Cells[1, 0] := 'Номер 2';
 Self.Cells[2, 0] := 'Номер 3';

 Self.ColWidths[0] := 150;
 Self.ColWidths[1] := 150;
 Self.ColWidths[2] := 150;
 end;
end;


При добавлении этого компонента на форму проекта выходит сообщение: "Control "" has not parent windows."и компонент не добавляется на форму.
Если запретить выполнять этот код ( if (not (csLoading in ComponentState)) then begin ... end;), то компонент добавляется, но такой же как дефолтный TStringGrid.
Ворос в том как реализовать установку нужных мне свойств во время дизайна проекта?


Комбинатор   (2007-02-02 11:16:00) [1]

Ничего не менял. Всё работает (D6). Никакой ошибки.

unit OwnStringGrid;

interface

uses
 Windows, Messages, SysUtils, Classes, Controls, Grids;

type
 TOwnStringGrid = class(TStringGrid)
 private
   { Private declarations }
 protected
   { Protected declarations }
 public
   constructor Create(AOwner: TComponent); override;
 published
   { Published declarations }
 end;

procedure Register;

implementation

procedure Register;
begin
 RegisterComponents('Samples', [TOwnStringGrid]);
end;

constructor TOwnStringGrid.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);

Self.Options := [goFixedVertLine,
                goFixedHorzLine,
                goVertLine,
                goHorzLine,
                goRowSizing,
                goRowSelect];
Self.DefaultRowHeight := 17;

Self.RowCount := 1;
Self.ColCount := 3;
Self.FixedCols := 0;
Self.Cells[0, 0] := 'Íîìåð 1';
Self.Cells[1, 0] := 'Íîìåð 2';
Self.Cells[2, 0] := 'Íîìåð 3';

Self.ColWidths[0] := 150;
Self.ColWidths[1] := 150;
Self.ColWidths[2] := 150;
end;

end.


Наверх

Титульная страница Поиск, карта сайта Написать письмо