Конференция "KOL" » при запуске открывает Form2 ??? [Lazarus, Windows]
 
  • Koss (04.12.07 02:35) [0]
    подскажите почему Form2  при запуске проги открывается ??

    =========================================================
    { KOL MCK } // Do not remove this line!
    {$DEFINE KOL_MCK}
    {$ifdef FPC} {$mode delphi} {$endif}
    unit Unit1;

    interface

    uses Windows, Messages, KOL {place your units here->}
    {$IFDEF LAZIDE_MCK}, Forms, mirror, Classes, Controls, mckCtrls, mckObjs, Graphics;
    {$ELSE} ; {$ENDIF}

    type

     { TForm1 }

     {$I MCKfakeClasses.inc}
     {$IFDEF KOLCLASSES} TForm1 = class; PForm1 = TForm1; {$ELSE OBJECTS} PForm1 = ^TForm1; {$ENDIF CLASSES/OBJECTS}
     TForm1 = {$IFDEF KOLCLASSES}class{$ELSE}object{$ENDIF}({$IFDEF LAZIDE_MCK}TForm{$ELSE}TObj{$ENDIF})
       Button1: TKOLButton;
       Button2: TKOLButton;
       Form: PControl;
       KOLForm1: TKOLForm;
       KOLProject1: TKOLProject;
       Memo1: TKOLMemo;
       procedure Button1Click(Sender: PObj);
       procedure Button2Click(Sender: PObj);
     private
       { private declarations }
     public
       { public declarations }
     end;

    var
     Form1 {$IFDEF KOL_MCK} : PForm1 {$ELSE} : TForm1 {$ENDIF} ;

    {$IFDEF KOL_MCK}
    procedure NewForm1( var Result: PForm1; AParent: PControl );
    {$ENDIF}

    implementation
      uses Unit2;
    {$IFDEF KOL_MCK}
    {$I unit1_1.inc}
    {$ENDIF}

    { TForm1 }

    procedure TForm1.Button1Click(Sender: PObj);
    begin
    form1.form.Close;
    end;

    procedure TForm1.Button2Click(Sender: PObj);
    begin
    NewForm2( Form2, Pointer( Form1.Form ) );
      form2.Form.Show;
    end;

    initialization
    {$IFNDEF KOL_MCK}  {$ENDIF}

    end.
                                             
    =========================================================
    { KOL MCK } // Do not remove this line!
    {$DEFINE KOL_MCK}
    {$ifdef FPC} {$mode delphi} {$endif}
    unit Unit2;

    interface

    uses Windows, Messages, KOL {place your units here->}
    {$IFDEF LAZIDE_MCK}, Forms, mirror, Classes, Controls, mckCtrls, mckObjs, Graphics;
    {$ELSE} ; {$ENDIF}

    type

     { TForm2 }

     {$I MCKfakeClasses.inc}
     {$IFDEF KOLCLASSES} TForm2 = class; PForm2 = TForm2; {$ELSE OBJECTS} PForm2 = ^TForm2; {$ENDIF CLASSES/OBJECTS}
     TForm2 = {$IFDEF KOLCLASSES}class{$ELSE}object{$ENDIF}({$IFDEF LAZIDE_MCK}TForm{$ELSE}TObj{$ENDIF})
       Button1: TKOLButton;
       Form: PControl;
       KOLForm1: TKOLForm;
       procedure Button1Click(Sender: PObj);
     private
       { private declarations }
     public
       { public declarations }
     end;

    var
     Form2 {$IFDEF KOL_MCK} : PForm2 {$ELSE} : TForm2 {$ENDIF} ;

    {$IFDEF KOL_MCK}
    procedure NewForm2( var Result: PForm2; AParent: PControl );
    {$ENDIF}

    implementation
        uses Unit1;
    {$IFDEF KOL_MCK}
    {$I unit2_1.inc}
    {$ENDIF}

    { TForm2 }

    procedure TForm2.Button1Click(Sender: PObj);
    begin
    NewForm1( Form1, Pointer( Form2.Form ) );
      form1.Form.Show;
    end;

    initialization
    {$IFNDEF KOL_MCK}  {$ENDIF}

    end.

    ==========================================================
    { KOL MCK } // Do not remove this line!
    {$DEFINE KOL_MCK}
    {$ifdef FPC} {$mode delphi} {$endif}
    program TercProg;

    uses
     KOL,
     Unit1, Unit2;

    begin // PROGRAM START HERE -- Please do not remove this comment

    {$IFNDEF LAZIDE_MCK} {$I TercProg_0.inc} {$ELSE}

     Application.Initialize;
     Application.CreateForm(TForm1, Form1);
    // Application.CreateForm(TForm2, Form2);
     Application.Run;

    {$ENDIF}

    end.
  • Danger © (04.12.07 05:06) [1]
    Переместите вашу Form2 из "Auto-create forms" в "Available forms" (Project->Options->Forms), выберите в "Main form" Form1.

    И еще: не надо делать так:
    procedure TForm2.Button1Click(Sender: PObj);
    begin
    NewForm1( Form1, Pointer( Form2.Form ) );
     form1.Form.Show;
    end;


    Чтобы скрыть/показать родительскую форму, пишите например,
    Form1.Form.Hide

    и
    Form1.Form.Show

    соответственно.
  • Koss (04.12.07 05:26) [2]
    Danger ©

    хороший совет с Hide  Show   но насчет Auto Create form2 и так удалён из списка автосоздания это видно  в коде см выше

    Application.Initialize;
    Application.CreateForm(TForm1, Form1);
    // Application.CreateForm(TForm2, Form2);
    Application.Run;
  • Vladimir Kladov © (04.12.07 06:28) [3]
    То, что относится к VCL (и свзано с Application), не имеет отношения к KOL+MCK, хоть и на Лазарусе.
  • Koss (04.12.07 13:43) [4]
    Люди а такой вопрос а как в текстовый файл записатm  данный из edita  имеется в виду именно работа с kol
  • Дмитрий К © (04.12.07 13:59) [5]
    StrSaveToFile

  • Danger © (05.12.07 05:20) [6]

    > Koss   (04.12.07 05:26) [2]
    > но насчет Auto Create form2 и так удалён из списка автосоздания это видно
    > в коде см выше
    > Application.Initialize;
    > Application.CreateForm(TForm1, Form1);
    > // Application.CreateForm(TForm2, Form2);
    > Application.Run;

    Не обращайте внимания на этот код, он не используется в KOL. Все, что вы напишете там, будет проигнорировано. Изменяйте параметры в свойствах проекта, если используете МСК.
 
Конференция "KOL" » при запуске открывает Form2 ??? [Lazarus, Windows]
Есть новые Нет новых   [134431   +10][b:0][p:0.001]