![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Предустановка свойств нового компанента...... [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.