Newsgroup: it.comp.lang.delphi
Titolo: [Delphi 5] Passaggio di dati tra due form

Scusate se abuso ancora della vostra pazienza ma devo venire a capo di 
una cosa. Ho la seguente situazione:
------------------------------------
//Unit 1
unit unit1
interface
uses
...
type
	TForm1 = class(...)
	edtProva: Tedit;
	....
	procedure BitBtn1Click(Sender: TObject);
	....
end;
var
	form1: TfrmCauProd;
implementation
uses
	...,unitCerca;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  with TfrmCerca.Create(Self) do
  try
    ShowModal;
  finally
    Free;
  end;
end;
....
end.
//unitCerca
unit unitCerca
interface
uses
	.....;
type
	TfrmCerca = class(Tform)
	procedure DblClick(Sender: TObject);
end;
var
	frmCerca: TfrmCerca;
implementation
uses
	....,unitModulo;
procedure TfrmCerca.DblClick(Sender: TObject);
var MioModulo: Tmodulo;
begin
	MioModulo := Tmodulo.Create(nil);
	MioModulo.setDescrizione
(grigliaCauProd.DataSource.DataSet.FieldByName('Reason').AsString);
end;
//Modulo
unit unitModulo;
interface
uses
    forms,windows,Dialogs,S3Plugin, unit1;
type
    Tmodulo=class(...)
        procedure setDescrizione(valore:string);
    end;
implementation
procedure Tmodulo.setDescrizione(valore:string);
//var myForm:TfrmCauProd;
begin
	form1.edtCodice.Text := valore;
end;
end.
--------------------------------------------
In pratica ho una form (form1) con un campo edit (edtCodice), quando 
clicco su un pulsante viene creata un seconda form (frmCerca), che ha 
una griglia dalla quale prendo un volore che voglio passare nel Tedit di 
form1 (edtCodice). Facendo doppio click sulla griglia, però, ho un 
errore di lettura della memoria (tipico di quando si richiama qualcosa 
che in memoria non c'è).
Sono certo che ci sono una miriade di errori, ma se uno ha una esigenza 
come la mia come fa a risolvere il problema? In tutto ciò io utilizzo 
Delphi 5.
Grazie anticipatamente.
www.inambiente.it
 - il portale degli studenti di ingegneria
--- posted by geoForum on 
http://www.delphiedintorni.it

 --- posted by geoForum onhttp://
www.delphiedintorni.it
Nessun consiglio?

> Nessun consiglio?
Piuttosto che cercare di far funzionare il codice che hai postato
(senza capire la logica che c'è dietro...) hai pensato di
riscriverlo ?
Qui sotto ti metto la soluzione per passare un parametro tra due form,
la logica per applicarlo con una DBGrid te la scrivi da solo.
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text := ShowForm2;
end;
end.
//-------------------------------------------------------------
unit Unit2;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
  Dialogs, StdCtrls;
type
  TForm2 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  function ShowForm2: string;
implementation
{$R *.dfm}
function ShowForm2: string;
var
  Form2: TForm2;
begin
  Form2 := TForm2.Create(nil);
  try
    Form2.ShowModal;
    Result := Form2.Memo1.Text;
  finally
    Form2.Free;
  end;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
  Close;
end;
end.
Max


Grazie mille Max, sei stato davvero gentile. Davvero grazie.