Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.11;
Скачать: CL | DM;

Вниз

Составной компонент типа TLabeledEdit   Найти похожие ветки 

 
sergvc   (2004-07-13 11:43) [0]

Уважаемые, вопрос - я сделал составной компонент но поле 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.


 
sergvc   (2004-07-13 12:04) [1]

Можно переформулировать вопрос - как объеденить несколько  визуальных компонентов в одном, чтобы они все были видимыми?


 
Юрий Зотов ©   (2004-07-13 12:38) [2]

FEdit.Name := "EditLabel"; - лишнее.
FEdit.Show; - не поможет.

FEdit.Parent := Self.Parent; - а вот это сделает Edit видимым.

Только при наследовании от TLabel кривоватый компонент получится. Очень советую разобраться, в чем принципиальная разница между классами TWinControl и TGraphicControl. А заодно и с тем, что такое дочерние окна и как строятся визуальные компоненты-контейнеры. Пример есть в Delphi (TSpinEdit).


 
Tormoz   (2004-07-13 12:47) [3]

Попробуй:

constructor TCSEditGrid.Create(AOwner:TComponent);
begin
inherited Create(AOwner);
FEdit := TEdit.Create(Self);
fEdit.Parent:=Self;
FEdit.Name := "EditLabel";
FEdit.Show;  
FEdit.SetSubComponent(true);
end;
» Юрий Зотов:» fEdit.Parent:=Self; - выдаст ошибку
(TGraphicControl не может быть Parent"ом)

FEdit.Name := "EditLabel"; - лишнее

FEdit.Show; - лишнее

FEdit.SetSubComponent(true); - к сабжу не относится


 
Mim1 ©   (2004-07-13 13:25) [4]

Можно для автоматизации перекрыть SetParent.


 
sergvc   (2004-07-13 14:14) [5]

Спасибо, получилось


 
Tormoz   (2004-07-13 14:57) [6]

To » Юрий Зотов:
» fEdit.Parent:=Self; - выдаст ошибку
(TGraphicControl не может быть Parent"ом)

Извиняйте, у меня

type
TCSEditGrid = class( не TLabel а TPanel)



Страницы: 1 вся ветка

Текущий архив: 2005.07.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.048 c
11-1102687499
uuzh
2004-12-10 17:04
2005.07.11
Проблема с MCK в Delphi6


6-1111961987
Змей
2005-03-28 02:19
2005.07.11
Socket Connect в домашних условиях :)


14-1118331206
Андрей Жук
2005-06-09 19:33
2005.07.11
Разрешается ли вам распивать спиртные напитки на рабочем месте?


14-1118232701
msguns
2005-06-08 16:11
2005.07.11
Установка Win XP на голый комп


4-1116172367
seregka
2005-05-15 19:52
2005.07.11
Добавление программы в popup меню Windows