![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамическая форма [D6, WinXP]
Anatoliy P © (2002-12-30 17:47:00)Как создать динамически формы с кнопкой по которой формы можно закрывать(уничтожать)?
gsu (2002-12-30 18:40:00) [1]в смысле останентся, если закрыть не кнопью
gsu (2002-12-30 18:39:00) [2]что б OnClose не пропустить, лучше так, а то в памяти форма останется
можешь проверить по screen.formscount
MyForm.onclose:=FormsClose;
MyButton.onClick:=ButtonsClick;
procedure TForm1.ButtonsClick(Sender: TObject);
begin
if sender is TspeedButton
then
((sender as tspeedbutton).Owner as tForm).Close;
end;
procedure TForm1.FormsClose(Sender: TObject; var Action: TCloseAction);
begin
(Sender as Tform).Release;
end;
Anatoliy P (2002-12-30 18:36:00) [3]Это я про (30.12.02 18:19), Спасибо - работает!!!!
gsu (2002-12-30 18:30:00) [4]что как ?
Anatoliy P (2002-12-30 18:29:00) [5]Это как?
gsu (2002-12-30 18:23:00) [6]if sender is TSpeedButton
then ((sender as TSpeedButton).Owner as tForm).Release;
gsu (2002-12-30 18:19:00) [7]Destroy - Release
Anatoliy P (2002-12-30 18:16:00) [8]
MyForm:=TForm.Create(nil);
MyForm.Parent :=nil;
MyForm.Name :="MyForm"+IntToStr(i)+IntToStr(j);
MyForm.Caption :=.... MyForm.Height :=300;
MyForm.Width :=300;
MyButton:=TSpeedButton.Create(MyForm);
MyButton.Parent:= MyForm;
MyButton.Name:= "MyButton"+ IntToStr(i)+IntToStr(j);
MyButton.Caption:="Ok"; MyButton.Flat:=True;
MyButton.Left:=20; MyButton.Top:=150; MyButton.Height:=25; MyButton.Width:=94;
MyButton.OnClick:=Form1.Button2Click;
MyForm.Position :=poDesktopCenter;
MyForm.Show;
В онклик
try
(Sender as TSpeedButton).Parent.Destroy ;
Except ;
End;
Mike Kouzmine (2002-12-30 18:10:00) [9]Так опиши свой метод.
Anatoliy P (2002-12-30 18:05:00) [10]Поясню, С основной формой все как обычно, по результатам работы нужно создать десяток (примерно) динамических форм со своими кнопками "Закрыть". Мой способ иногда выдает AV
Mike Kouzmine (2002-12-30 18:00:00) [11]Создаешь форму в дизайне, в свойстах проекта делаешь ее не авто создаваемой и пишешь где надо
var
f : TTvojaForma
begin
f := TTvojaForma.Create(Self or Nil);
try
if F.ShowModal <> mrOk then
.....
finally
f.Free;
end;