Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: Nicola - Giugno 30, 2015, 10:46:59 am

Titolo: Passare Valore da Form1 a Form2
Inserito da: Nicola - Giugno 30, 2015, 10:46:59 am
Vorrei far si che una volta inserito un testo nella casella di Edit e assegnato alla variabile Testo, il contenuto
della variabile Testo potesse essere trasmesso alla Form2 e assegnato alla Caption di Label2, ho creato il codice
piu' sotto, ma mi fermo all'invocazione della Form2 perchè non so come poter passare alla Form2 la variabile Testo;
vi allego il codice
Codice: [Seleziona]
unit Unit1;
.
.
interface

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

type

  { TForm1 }

  TForm1 = class(TForm)
    BtMostra: TButton;
    ETesto: TEdit;
    procedure BtMostraClick(Sender: TObject);
    procedure ETestoEditingDone(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;
  Testo:string;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.ETestoEditingDone(Sender: TObject);
begin
testo:=ETesto.Text;
end;

procedure TForm1.BtMostraClick(Sender: TObject);
var
Frm: TForm2;
begin
Application.CreateForm(TForm2,Frm);
try
Frm.ShowModal;

finally
Frm.Free;
end;
end;

end.
e Form2
Codice: [Seleziona]
unit Unit2;

{$mode objfpc}{$H+}

interface

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

type

  { TForm2 }

  TForm2 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.lfm}

end.
grazie per l'aiuto.
Titolo: Re:Passare Valore da Form1 a Form2
Inserito da: nomorelogic - Giugno 30, 2015, 03:09:26 pm
basta assegnare la proprietà Caption di Label2 prima dello ShowModal
(e non hai bisogno della variabile Testo, puoi usare direttamente il controllo ETesto)

Codice: [Seleziona]
   ...
   try
      Label2.Caption:=ETesto.Text;
      Frm.ShowModal;
   finally
      Frm.Free;
   end;
   ...
end.
Titolo: Re:Passare Valore da Form1 a Form2
Inserito da: Nicola - Giugno 30, 2015, 06:24:06 pm
Avevo provato ma non mi riconosce Label2; pensavo che dichiarando fra "uses" Unit2, la trovasse;
"Compila il progetto, Destinazione: project1.exe: Codice di uscita 1, Errori: 1
unit1.pas(46,1) Error: Identifier not found "Label2"
Titolo: Re:Passare Valore da Form1 a Form2
Inserito da: schumi - Giugno 30, 2015, 06:48:20 pm
dovrebbe essere
Frm.Label2.Caption :=

oppure nella sezione Public della form2 una variabile e la assegni allo stesso modo dopo il create:
Frm.Nome_variabile :=
Titolo: Re:Passare Valore da Form1 a Form2
Inserito da: Nicola - Giugno 30, 2015, 07:11:53 pm
E' proprio cosi'. Grazie mille!!!