-
Здравствуйте. На форме кнопка. Подскажите пожалуйста, как мне сделать так, чтоб по нажатию этой кнопки появлялась точно такая же форма с такой же кнопкой, чтоб при нажатии этой кнопки появилась опять еще одна такая же форма с кнопкой....и чтоб все формы были рабочие и их можно было закрыть в любой момент
-
На вскидку Кинуть на форму Applet и
var
CloneForm:PForm1;
begin
NewForm1(CloneForm,Applet);
CloneForm.Form.Show;
end; Работоспособность не гарантирую, не проверял :)
-
Работает прекрасно :) только на таскбаре не показываются новые окна и если закрываешь самую первую форму, то закрываются все остальные.Это лечится? :)
-
> только на таскбаре не показываются
Заменить Applet на nil?
> закрываешь самую первую форму, то закрываются все
Первая-главная.
> Это лечится
Наверное нет.
P.S. И вообще, правильно ли это?
-
>Заменить Applet на nil? спасибо, заработало. >Наверное нет. очень жаль. >И вообще, правильно ли это? не понял :)
-
> >И вообще, правильно ли это?
Формы без родителя (Aparent=nil), Free для форм не вызывается. Наверное будет утечка памяти
-
а вот такое решение правильное? shellexecute(form.Handle,nil,'forms.exe',nil,nil,sw_normal)
-
> Vinum (20.03.08 16:00) [6]
Это уже будет куча запущенных экземпляров приложения
-
program Project1;
uses kol; //{$DEFINE SMALLEST_CODE} {$R *.res} var form,form2,Button1,CheckBox1:PControl;
//область для процедур procedure clickbutton1(Sender:PControl; var mouse:TMouseEventData); begin if not Assigned( Form2 ) then NewForm( Applet ,'Form2'); Form2.Show; end; procedure Close_form2(DummySelf,Sender: PControl; var Accept: Boolean); begin if CheckBox1.Checked then begin Accept := FALSE; Form2.Hide;button1.Focused:=true; end; if Assigned( Form2 ) then begin accept:=false; form2.Hide;button1.Focused:=true; end else accept:=true; end; Begin form:=NewForm(Applet,'Form1').SetPosition( 246, 107 ).SetClientSize( 205, 138 ); Button1 := NewButton( form, 'Form2.Show' ).SetPosition( 32, 64 ).SetSize( 137, 0 );
Button1.OnClick:=TonEvent(MakeMethod(nil,@clickbutton1));
Form2:= NewForm( Applet,'Form2').SetPosition( 245, 272 ).SetClientSize( 206, 152 ); CheckBox1 := NewCheckBox( Form2, 'Just Hide, not Close' ).SetPosition( 16, 16 ).SetSize( 177, 0 ); form2.OnClose:=TOnEventAccept(MakeMethod(nil,@Close_form2)); Run(form); end.
|