![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Компоненты в run-time [D6, D7, WinME, WinXP]
pOLyMOrpH © (2005-08-04 02:03:00)доброго времени суток! ситуация следующая: в run-time нужно создать TPanel и TButton (родитель - созданный TPanel). По нажатию на созданный TButton оба компонента должны уничтожиться.
Жду ваших предложений.
pOLyMOrpH (2005-08-04 04:22:00) [21]у меня еще один вопрос к уважаемым мастерам:
пример
...
type
Tmyclass1 = class(TcustomControl)
private
...
public
constructor Create(AOwner: TComponent); override;
...
end;
Tmyclass2 = class(TcustomControl)
private
...
public
constructor Create(AOwner: TComponent); override;
...
end;
...
{ можно ли сделать так: ?}
constructor Tmyclass1.Create(AOwner: TComponent);
var
my:Tmyclass2;
begin
inherited Create(AOwner);
...
my := Tmyclass2.Create(nil);
with my do
begin
...
...
Parent := ... тоже не знаю как сделать чтоб родителем был создаваемый
компонент класса Tmyclass1 ...
end;
end;
Если написанный выше код не является полнейшим бредом (я не силен в ооп) то мне необходимы ваши советы по его реализации.
pOLyMOrpH (2005-08-04 04:05:00) [22]огромнейшее спасибо.
Джо (2005-08-04 02:39:00) [23]
> pOLyMOrpH © (04.08.05 02:03)
Пустая форма с кодом:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
const
WM_DESTROY_CONTROLS = WM_USER + 2005;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
FBtn: TButton;
FPanel: TPanel;
procedure OnBtnClick(Sender: TObject);
procedure CreateControls;
procedure WmDestroyControls (var Message: TMessage);
message WM_DESTROY_CONTROLS;
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.CreateControls;
begin
FPanel := TPanel.Create (Self);
FPanel.Parent := Self;
FBtn := TButton.Create(FPanel);
FBtn.Parent := FPanel;
FBtn.OnClick := OnBtnClick;
end;
procedure TForm1.OnBtnClick(Sender: TObject);
begin
PostMessage (Handle,WM_DESTROY_CONTROLS,0,0)
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
CreateControls
end;
procedure TForm1.WmDestroyControls(var Message: TMessage);
begin
if Assigned(FPanel) then
FreeAndNil (FPanel)
end;
end.
> Жду ваших предложений.
Не майся ерундой.