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

Вниз

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

 
Михель   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.011 c
5-1097084089
TRyaSS
2004-10-06 21:34
2005.09.11
Компонент влияющий на форму


3-1122560693
PAI
2005-07-28 18:24
2005.09.11
Как русифицировать Database?


14-1124180776
Esu
2005-08-16 12:26
2005.09.11
Во блин кратер отгрохали :)


8-1115220389
Gear
2005-05-04 19:26
2005.09.11
Как осуществить запись звука с микрофона средствами DirectSound?


9-1115981864
Ландграф Павел
2005-05-13 14:57
2005.09.11
Ищу девочек и мальчиков для рисования вставок на flash`е





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский