Главная страница
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.025 c
3-1096400500
Вадим
2004-09-28 23:41
2004.10.24
Сохранность данных


1-1097165752
DIS
2004-10-07 20:15
2004.10.24
RichEdit клавишей Enter мы делаем конец строки


3-1095950908
AlexXn
2004-09-23 18:48
2004.10.24
Неверно выводятся даты под Оракл


1-1097392068
lid
2004-10-10 11:07
2004.10.24
MDI


1-1097086759
maxz
2004-10-06 22:19
2004.10.24
Проверка нажатых клавиш при автозагрузке программы