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

Вниз

Подскажите, как создать компонент из двух компонентов...   Найти похожие ветки 

 
Михель   (2004-10-15 22:41) [0]

Подскажите, как создать компонент из двух компонентов: TImage и TLabel?

На базе TPanel я создаю свой компонент TMyPanel, на которой размещаю TImage и TLabel.
Инсталлирую компонент.
Проблема: при запуске формы, на которую установлен мой компонент, на моей панели отображается только TImage, TLabel не видима.
Может быть, дело в том, что не установлено свойство Parent компонента TLabel? (Не знаю, как правильно его установить)

Свой пример я сделал на базе примера с компонентами TEdit и TButton, но у TLabel другой вид контрола: TWidgetControl, а не TWinControl, и не получается, в общем...

Текст моего компонента такой:

unit MyPanel;

interface

uses
 Windows, Messages, SysUtils, Classes, Controls, ExtCtrls,
 QStdCtrls;

type
 TMyPanel = class(TPanel)
 private
   { Private declarations }
   NewImage:TImage;
   NewLabel:TLabel;

 protected
   { Protected declarations }
 public
   { Public declarations }
   constructor Create( AOwner: TComponent ); override;
   destructor Destroy;override;

 published
   { Published declarations }
 end;

procedure Register;

implementation

procedure Register;
begin
 RegisterComponents("Standard", [TMyPanel]);
end;

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

Width:=200;
Height:=200;

NewLabel := TLabel.Create( AOwner );
//NewLabel.Parent := self;
NewLabel.Height :=13;
NewLabel.Width := 190;
NewLabel.Left := 5 ;
NewLabel.top := 180 ;
NewLabel.Visible := true;
NewLabel.Caption:="dlsfkjgkfg";

NewImage := TImage.Create( self );
NewImage.Parent := self;
NewImage.Height :=150;
NewImage.Width := 190;
NewImage.Left := Left+5 ;
NewImage.top := Top+5 ;
NewImage.Visible := true;
NewImage.Picture.LoadFromFile(
"C:\Documents and Settings\Michael\Рабочий стол\1.bmp");

end;

destructor TMyPanel.destroy;
begin
   NewImage.Free;
   NewLabel.free;
inherited destroy;
end;

end.


 
GuAV ©   (2004-10-15 23:18) [1]

А может посмотреть TLabeledEdit ?


 
Михель   (2004-10-15 23:34) [2]

Отлично! Спасибо, GuAV!
Работает!
Но хоть и можно привести TLabeledEdit к внешнему виду TLabel, все-таки замена на TLabeledEdit - это полумера в каком-то смысле... То есть, работать-то все стало, но ошибки я так и не понял.

Подскажите, в чем все-таки моя ошибка? Могу ли я сделать свой вариант рабочим?

Еще раз спасибо!


 
GuAV ©   (2004-10-15 23:50) [3]

Я имел ввиду не использвать TLabeledEdit вместо Label, а посмотреть как там этот Label вставляется в форму.

Если речь идёт о достойной замене TLabel то это TStaticText


 
Михель   (2004-10-16 01:05) [4]

Да, в самом деле, TStaticText - то, что и было нужно!
Спасибо!
Посмотреть, как сделано в TLabeledEdit, не смог: компонент находится в файле ExtCtrls.dcu, не получается посмотреть его устройство.

Все-таки вопрос по совместному использованию компонентов с разным типом контролов остается, попробую спросить в новом вопросе. Я не силен, но, возможно, можно переопределить проперти Parent родительского компонента на возврат контрола не типа TWinControl, а TWidgetControl...
Хотя, пока все устраивает, не буду никого беспокоить :)


 
GuAV ©   (2004-10-16 02:28) [5]

мда....
ExtCtrls.pas есть, если выбрано ставить VCL sources при усановке D.
Не ставить их - это как не ставить хэлп.
Если они есть, то TLabeledEdit + Ctrl-Click

(Задавать новый вопрос не советую - это может быть расцененно как спам и оба будут удалены.)


 
Михель   (2004-10-16 11:35) [6]

Да... Век живи - век учись!
Добавил исходники VCL, и файл нашелся, конечно :)
Спасибо большое, не буду здесь больше мусорить!



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

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

Наверх




Память: 0.48 MB
Время: 0.025 c
1-1124360634
isasa
2005-08-18 14:23
2005.09.11
Как провести линию на форме?


11-1106839707
thaddy
2005-01-27 18:28
2005.09.11
mastak unreachable from netherlands and austria


3-1121670371
passs
2005-07-18 11:06
2005.09.11
сохранение изменённых данных в БД


14-1124216995
rts111
2005-08-16 22:29
2005.09.11
Test


2-1123502285
M@rlin
2005-08-08 15:58
2005.09.11
запрос к БД из Дельфи