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

Вниз

Как в runtime создать класс, унаследованный от панели и вывести..   Найти похожие ветки 

 
serg128   (2004-10-09 12:07) [0]

Как в runtime создать класс, унаследованный от TPanel и вывести Caption в левом верхнем углу?


 
VMcL ©   (2004-10-09 12:12) [1]

Никак. В runtime можно создать экземпляр класса aka объект.


 
serg128   (2004-10-09 12:19) [2]

Я что, класс унаследовать не могу? Могу! А вот с выводом кэпшина в левый угол у меня проблемы. Так, что, Вы не правы, батенька! :)


 
serg128   (2004-10-09 13:18) [3]

Ну что, никто не знает?


 
Defunct ©   (2004-10-09 13:28) [4]

> Я что, класс унаследовать не могу? Могу!

Мне тоже интересно, приведите код того как вы унаследываете класс в RunTime.


 
serg128   (2004-10-09 14:27) [5]

...
type

TMyPanel = class(TCustomPanel)
public
 Caption : TCaption;
 constructor Create; override;
 destructor Destroy; override;
end;

...


 
Семен Сорокин ©   (2004-10-09 14:39) [6]

serg128   (09.10.04 14:27) [5]

constructor Create; override;
н-да, хоть бы в предка заглянул.

А что по твоему есть runtime?


 
serg128   (2004-10-09 14:43) [7]

во время выполнения, а конструктор там с параметром, просто лень писать, хочется суть увидеть.

А когда на кнопку кликаешь, динамически создать панель, и на ней кепшин слева вывести.


 
Семен Сорокин ©   (2004-10-09 14:49) [8]

serg128   (09.10.04 14:43) [7]
ладно вопрос по другому что по вашему есть класс и что экземпляр класса?
Если знаете то переформулируйте вопрос правильно, а так, извините, только бред какой-то.


 
serg128   (2004-10-09 14:52) [9]

Давайте не вдаваться в теорию!

Как наследовать клас - понятно. А как кэпшин слева вывести? Вот как бы Вы решили такую задачу?


 
Семен Сорокин ©   (2004-10-09 15:01) [10]


> serg128   (09.10.04 14:52) [9]
> Давайте не вдаваться в теорию!


Вот из-за этого и был разведен весь флейм, если бы вопрос был сформулирован верно, то, возможно, ответ Вы получили сразу. :)

> А как кэпшин слева вывести?
> Вот как бы Вы решили такую задачу?

Сделал бы наследника где переопределил метод Paint.


 
Defunct ©   (2004-10-09 15:02) [11]

 TMyPanel = class(TPanel)
 Protected
   Procedure Paint;Override;
 End;

Procedure TMyPanel.Paint;
Begin
 if csDesigning in ComponentState then
 with inherited Canvas do
 begin
   Pen.Style := psDash;
   Brush.Style := bsClear;
   Rectangle( ClientRect );
 end;

 with inherited Canvas do
 Begin
   Brush.Color := Color;
   Rectangle( ClientRect );
   TextOut(2,2, Caption);
 end;
End;

// пример использования:

procedure TForm1.Button5Click(Sender: TObject);
begin
 with TMyPanel.Create( self ) Do
 Begin
   Visible := false;
   left := 0;
   top := 0;
   width := 100;
   height := 100;
   caption := "Test";
   Parent := self;
   visible := True;
 End;
end;


 
serg128   (2004-10-09 15:08) [12]

понял, спасибо, попробую



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

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

Наверх




Память: 0.49 MB
Время: 0.045 c
1-1097574502
Роман
2004-10-12 13:48
2004.10.24
Извлечение ресурсов из dll


14-1096955381
asafr
2004-10-05 09:49
2004.10.24
Разговор по телефону


4-1095617016
Dolphni1
2004-09-19 22:03
2004.10.24
desktop themes changes


1-1097147871
lightix
2004-10-07 15:17
2004.10.24
Убить все приложения текущего юзера


4-1095466580
Apl
2004-09-18 04:16
2004.10.24
Как отключить поддержку стиля Win XP в своей программе