Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];

Вниз

Составной компонент типа 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.034 c
1-1118325530
Sicilla
2005-06-09 17:58
2005.07.11
Запуск таймера до создания формы


14-1118488068
Иксик
2005-06-11 15:07
2005.07.11
Ваше отношение к домашней школе?


1-1118908486
<Lelik>
2005-06-16 11:54
2005.07.11
Про Count


1-1118433780
Antol
2005-06-11 00:03
2005.07.11
игра


14-1117995289
Cerberus
2005-06-05 22:14
2005.07.11
У кого есть фотка салюта.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский