![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Создаю форму динамически:
Код:
type TFrmOutPut = class(TForm) lblLink: TLabel; private //---------------------------- public constructor CreateMy(AOwner: TComponent); //---------------------------- end; можно, наверное, наследовать от TLabel (или правильнее от TCustomLabel) и перегрузить нужную процедуру, но создавать ради этого новый класс как-то не то. Есть какие-нибудь варианты? |
|
#2
|
||||
|
||||
|
Код:
lblLink.OnClick := OnLblClick |
| Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
Помидоркин (29.04.2015)
| ||
|
#3
|
||||
|
||||
|
для абсолютно динамической формы (не из dfm):
Код:
type
TMyForm = class(TForm)
private
FLabel: TLabel;
procedure LabelClick(Sender: TObject);
public
constructor CreateNew(AOwner: TComponent; Dummy: Integer = 0); override;
end;
{ TMyForm }
constructor TMyForm.CreateNew(AOwner: TComponent; Dummy: Integer);
begin
inherited CreateNew(AOwner, Dummy);
Position:=poScreenCenter;
Caption:='MyForm';
Width:=400;
Height:=200;
FLabel:=TLabel.Create(Self);
FLabel.Parent:=Self;
FLabel.Caption:='Label';
FLabel.Left:=10;
FLabel.Top:=10;
FLabel.OnClick:=LabelClick;
FLabel.Visible:=True;
end;
procedure TMyForm.LabelClick(Sender: TObject);
begin
ShowMessage('Ok');
end;use: Код:
with TMyForm.CreateNew(Application) do Show; |
| Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Помидоркин (29.04.2015)
| ||
|
#4
|
||||
|
||||
|
Цитата:
Ага ![]() Цитата:
по сути это ни чем не отличается от назначения обработчика компоненту созданному из главной формы или из любой другой с dfm Как-то, даже немного обидно, что сам не сообразил ![]() |