![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Составной компонент типа TLabeledEdit [D6]
sergvc © (2004-07-13 11:43:00)Уважаемые, вопрос - я сделал составной компонент но поле TEdit не отображается при переносе компонента на форму. Как сделать его видимым?
unit CSEditGrid;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, StdCtrls;
type
TCSEditGrid = class(TLabel)
private
{ Private declarations }
FEdit:TEdit;
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner:TComponent);override;
published
{ Published declarations }
property Edit:TEdit read FEdit;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('MyCom', [TCSEditGrid]);
end;
constructor TCSEditGrid.Create(AOwner:TComponent);
begin
inherited Create(AOwner);
FEdit := TEdit.Create(Self);
FEdit.Name := 'EditLabel';
FEdit.Show;
FEdit.SetSubComponent(true);
end;
end.
Tormoz (2004-07-13 14:57:00) [1]To » Юрий Зотов:
» fEdit.Parent:=Self; - выдаст ошибку
(TGraphicControl не может быть Parent'ом)
Извиняйте, у меня
type
TCSEditGrid = class( не TLabel а TPanel)
sergvc (2004-07-13 14:14:00) [2]Спасибо, получилось
Mim1 (2004-07-13 13:25:00) [3]Можно для автоматизации перекрыть SetParent.
Tormoz (2004-07-13 12:47:00) [4]Попробуй:
constructor TCSEditGrid.Create(AOwner:TComponent);» Юрий Зотов: » fEdit.Parent:=Self; - выдаст ошибку
begin
inherited Create(AOwner);
FEdit := TEdit.Create(Self);
fEdit.Parent:=Self;
FEdit.Name := 'EditLabel';
FEdit.Show;
FEdit.SetSubComponent(true);
end;
(TGraphicControl не может быть Parent'ом)
FEdit.Name := 'EditLabel'; - лишнее
FEdit.Show; - лишнее
FEdit.SetSubComponent(true); - к сабжу не относится
Юрий Зотов (2004-07-13 12:38:00) [5]FEdit.Name := 'EditLabel'; - лишнее.
FEdit.Show; - не поможет.
FEdit.Parent := Self.Parent; - а вот это сделает Edit видимым.
Только при наследовании от TLabel кривоватый компонент получится. Очень советую разобраться, в чем принципиальная разница между классами TWinControl и TGraphicControl. А заодно и с тем, что такое дочерние окна и как строятся визуальные компоненты-контейнеры. Пример есть в Delphi (TSpinEdit).
sergvc (2004-07-13 12:04:00) [6]Можно переформулировать вопрос - как объеденить несколько визуальных компонентов в одном, чтобы они все были видимыми?