Главная страница
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.029 c
3-1096469759
Ivan_
2004-09-29 18:55
2004.10.24
Обновление информации у всех пользователей


14-1097150551
Lool
2004-10-07 16:02
2004.10.24
Еще одна задача


9-1087820889
Zak3D[@Tm]
2004-06-21 16:28
2004.10.24
OpenGL на Делфи и на С.


3-1096009540
Леха
2004-09-24 11:05
2004.10.24
Как изменить значение всех строк с пом. sql


4-1095686418
Lord de Mon
2004-09-20 17:20
2004.10.24
Проверка на Stand By