Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.08.24;
Скачать: CL | DM;

Вниз

Сделать кучу форм   Найти похожие ветки 

 
Vinum   (2008-03-18 20:39) [0]

Здравствуйте. На форме кнопка. Подскажите пожалуйста, как мне сделать так, чтоб по нажатию этой кнопки появлялась точно такая же форма с такой же кнопкой, чтоб при нажатии этой кнопки появилась опять еще одна такая же форма с кнопкой....и чтоб все формы были рабочие и их можно было закрыть в любой момент


 
Compiler ©   (2008-03-18 22:09) [1]

На вскидку
Кинуть на форму Applet и

var
 CloneForm:PForm1;
begin
NewForm1(CloneForm,Applet);
CloneForm.Form.Show;
end;


Работоспособность не гарантирую, не проверял :)


 
Vinum   (2008-03-18 22:16) [2]

Работает прекрасно :) только на таскбаре не показываются новые окна и если закрываешь самую первую форму, то закрываются все остальные.Это лечится? :)


 
Compiler ©   (2008-03-18 22:22) [3]

> только на таскбаре не показываются

Заменить Applet на nil?

> закрываешь самую первую форму, то закрываются все

Первая-главная.

> Это лечится

Наверное нет.

P.S. И вообще, правильно ли это?


 
Vinum   (2008-03-18 22:32) [4]

>Заменить Applet на nil?
спасибо, заработало.
>Наверное нет.
очень жаль.
>И вообще, правильно ли это?
не понял :)


 
Compiler ©   (2008-03-18 23:46) [5]

> >И вообще, правильно ли это?

Формы без родителя (Aparent=nil), Free для форм не вызывается. Наверное будет утечка памяти


 
Vinum   (2008-03-20 16:00) [6]

а вот такое решение правильное?
shellexecute(form.Handle,nil,"forms.exe",nil,nil,sw_normal)


 
Compiler ©   (2008-03-20 22:34) [7]

> Vinum   (20.03.08 16:00) [6]

Это уже будет куча запущенных экземпляров приложения


 
RusSun ©   (2009-09-13 13:28) [8]

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.



Страницы: 1 вся ветка

Текущий архив: 2014.08.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.006 c
3-1300339224
Alex_1025bit
2011-03-17 08:20
2014.08.24
dbExpress и MySQL определение автоинкрементного индекса


2-1380524569
Вася
2013-09-30 11:02
2014.08.24
Помогите с арифметикой


11-1251010071
Dy1
2009-08-23 10:47
2014.08.24
базы данных


15-1390656072
Jimmy
2014-01-25 17:21
2014.08.24
Карточные игры


11-1252421746
varag
2009-09-08 18:55
2014.08.24
Работа с ListView