Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: bak - Gennaio 07, 2013, 12:09:07 am

Titolo: Apertura form
Inserito da: bak - Gennaio 07, 2013, 12:09:07 am
Buona sera.

Ho iniziato da poco a programmare su Delphi e/o Pascal quindi abbiate pietà e non mi insulate subito.  :-[

Ho creato abbastanza agevolmente un form con vari gadget e bottoni in esso. Premendo un bottone vorrei che il form corrente venisse chiuso e si aprisse un altro form con altri bottoni ecc. In pratica non capisco come collegare due form e a farli interagire tra loro.

Non capisco come fare...

Vi ringrazio in anticipo.

Luca
 
Titolo: Re:Apertura form
Inserito da: nomorelogic - Gennaio 07, 2013, 12:39:47 am
ciao Luca
come già sai, solitamente ogni form ha la definizione della sua classe in una unit.

Ad esempio, creando una nuova applicazione abbiamo anche in automatico un form a disposizione. Come vedi nella sezione "implementation" ho usato la clausola uses per poter vedere la classe TfmSecForm contenuta in "usecondaryform.pas".
Ho anche aggiunto un bottone e nell'evento onclick mostro la seconda form.

Codice: [Seleziona]
unit umain;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TfmMain }

  TfmMain = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  fmMain: TfmMain;

implementation

{$R *.lfm}

uses usecondaryform;

{ TfmMain }

procedure TfmMain.Button1Click(Sender: TObject);
begin
   fmSecForm.Show;
end;

end.


La seconda form ha questa definizione:
Codice: [Seleziona]
unit usecondaryform;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs;

type
  TfmSecForm = class(TForm)
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  fmSecForm: TfmSecForm;

implementation

{$R *.lfm}

end.

Ora bisogna fare qualche considerazione:

Spero di essere stato chiaro e vista l'ora non è affatto scontato ;)
Titolo: Re:Apertura form
Inserito da: Stilgar - Gennaio 07, 2013, 09:50:33 am
bak,
  allora, aggiungerei un'altra considerazione a quelle di nomore.
Visto che la prima form (MainForm) è quella che decreta se l'applicazione deve essere terminata o meno, non puntare alla chiusura, ma nascondila.
Altrimenti otterresti un effetto indesiderato di chiusura dell'intera applicazione. ;)

in altre parole, nell'onclick del bottone, metti un "Hide;" e non "Close;" ;)
Titolo: Re:Apertura form
Inserito da: bak - Gennaio 07, 2013, 10:46:05 pm
@Stilgar @nomorelogic

Vi ringrazio molto per le dritte...adesso provo.

Grazie

Luca