Конференция "KOL" » Сделать кучу форм
 
  • Vinum (18.03.08 20:39) [0]
    Здравствуйте. На форме кнопка. Подскажите пожалуйста, как мне сделать так, чтоб по нажатию этой кнопки появлялась точно такая же форма с такой же кнопкой, чтоб при нажатии этой кнопки появилась опять еще одна такая же форма с кнопкой....и чтоб все формы были рабочие и их можно было закрыть в любой момент
  • Compiler © (18.03.08 22:09) [1]
    На вскидку
    Кинуть на форму Applet и

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



    Работоспособность не гарантирую, не проверял :)
  • Vinum (18.03.08 22:16) [2]
    Работает прекрасно :) только на таскбаре не показываются новые окна и если закрываешь самую первую форму, то закрываются все остальные.Это лечится? :)
  • Compiler © (18.03.08 22:22) [3]
    > только на таскбаре не показываются

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

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

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

    > Это лечится

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

    P.S. И вообще, правильно ли это?
  • Vinum (18.03.08 22:32) [4]
    >Заменить Applet на nil?
    спасибо, заработало.
    >Наверное нет.
    очень жаль.
    >И вообще, правильно ли это?
    не понял :)
  • Compiler © (18.03.08 23:46) [5]
    > >И вообще, правильно ли это?

    Формы без родителя (Aparent=nil), Free для форм не вызывается. Наверное будет утечка памяти
  • Vinum (20.03.08 16:00) [6]
    а вот такое решение правильное?
    shellexecute(form.Handle,nil,'forms.exe',nil,nil,sw_normal)
  • Compiler © (20.03.08 22:34) [7]
    > Vinum   (20.03.08 16:00) [6]

    Это уже будет куча запущенных экземпляров приложения
  • RusSun © (13.09.09 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.
 
Конференция "KOL" » Сделать кучу форм
Есть новые Нет новых   [134431   +10][b:0][p:0.001]