![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в runtime создать класс, унаследованный от панели и вывести.. [D7, Win2k]
serg128 © (2004-10-09 12:07:00)Как в runtime создать класс, унаследованный от TPanel и вывести Caption в левом верхнем углу?
serg128 (2004-10-09 15:08:00) [1]понял, спасибо, попробую
Defunct (2004-10-09 15:02:00) [2]
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;
Семен Сорокин (2004-10-09 15:01:00) [3]
> serg128 (09.10.04 14:52) [9]
> Давайте не вдаваться в теорию!
Вот из-за этого и был разведен весь флейм, если бы вопрос был сформулирован верно, то, возможно, ответ Вы получили сразу. :)
> А как кэпшин слева вывести?
> Вот как бы Вы решили такую задачу?
Сделал бы наследника где переопределил метод Paint.
serg128 (2004-10-09 14:52:00) [4]Давайте не вдаваться в теорию!
Как наследовать клас - понятно. А как кэпшин слева вывести? Вот как бы Вы решили такую задачу?
Семен Сорокин (2004-10-09 14:49:00) [5]serg128 (09.10.04 14:43) [7]
ладно вопрос по другому что по вашему есть класс и что экземпляр класса?
Если знаете то переформулируйте вопрос правильно, а так, извините, только бред какой-то.
serg128 (2004-10-09 14:43:00) [6]во время выполнения, а конструктор там с параметром, просто лень писать, хочется суть увидеть.
А когда на кнопку кликаешь, динамически создать панель, и на ней кепшин слева вывести.
Семен Сорокин (2004-10-09 14:39:00) [7]serg128 (09.10.04 14:27) [5]
constructor Create; override;
н-да, хоть бы в предка заглянул.
А что по твоему есть runtime?
serg128 (2004-10-09 14:27:00) [8]...
type
TMyPanel = class(TCustomPanel)
public
Caption : TCaption;
constructor Create; override;
destructor Destroy; override;
end;
...
Defunct (2004-10-09 13:28:00) [9]> Я что, класс унаследовать не могу? Могу!
Мне тоже интересно, приведите код того как вы унаследываете класс в RunTime.
serg128 (2004-10-09 13:18:00) [10]Ну что, никто не знает?
serg128 (2004-10-09 12:19:00) [11]Я что, класс унаследовать не могу? Могу! А вот с выводом кэпшина в левый угол у меня проблемы. Так, что, Вы не правы, батенька! :)
VMcL (2004-10-09 12:12:00) [12]Никак. В runtime можно создать экземпляркласса aka объект.