Главная страница
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.027 c
3-1096297927
Павел
2004-09-27 19:12
2004.10.24
D5 + FireBird


3-1096354227
jenya_d
2004-09-28 10:50
2004.10.24
Помогите с TDBCtrlGrid


3-1096098478
Amid
2004-09-25 11:47
2004.10.24
Firebird 1.5.0


14-1096646698
asdqwer
2004-10-01 20:04
2004.10.24
Темы


11-1079435066
klim.r.mad
2004-03-16 14:04
2004.10.24
крывые ссылки на сайте