Buenos días y Feliz 2013 a todo el mundo. Este es un tema recurrente, y aunque he probado la solución que se ha dado en otras consultas (crear una variable pública) hay algo que no he debido entender, por lo que os pido perdón.
Para visualizar mi problema me he creado dos formas:
Triangulo_MainForm
Código Delphi
[-]
unit Triangulo_MainUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Triangulo_InputData;
type
TTriangulo_MainForm = class(TForm)
Input: TButton;
Output: TBitBtn;
Results: TMemo;
procedure InputClick(Sender: TObject);
procedure OutputClick(Sender: TObject);
private
public
end;
var
Triangulo_MainForm: TTriangulo_MainForm;
implementation
{$R *.DFM}
procedure TTriangulo_MainForm.InputClick(Sender: TObject);
begin
InputDataForm.ShowModal() end;
procedure TTriangulo_MainForm.OutputClick(Sender: TObject);
begin
with myData do begin
Results.Lines.Add(' '); Results.Lines.Add(valor1); Results.Lines.Add(valor2);
Results.Lines.Add(valor3);
end;
end;
end.
que, al pulsar el botón
Input, llama a otra forma llamada
Triangulo_InputData
Código Delphi
[-]
unit Triangulo_InputData;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TData = record
valor1 : string;
valor2 : string;
valor3 : string;
end;
TInputDataForm = class(TForm)
SendData: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
procedure SendDataClick(Sender: TObject);
private
public
myData : TData;
end;
var
InputDataForm: TInputDataForm;
implementation
{$R *.DFM}
procedure TInputDataForm.SendDataClick(Sender: TObject);
begin
with myData do
begin
valor1 := Edit1.text;
valor2 := Edit2.text;
valor3 := Edit3.text;
end;
Close;
end;
end.
En esta form se introducen tres datos, en principio es texto, La idea es que al pulsar el botón
Send Data estos tres datos combinen en un registro (record) llamado
myData que pueda ser accesible desde la primera unidad (
Triangulo_MainForm). En esta unidad al pulsar el botón
Output, los datos contenidos en myData aparecían en una ventana tipo Memo.
Por lo que he entendido de otras consultas similares, si no iguales, la solución pasaría por
1. Declarar en la cláusula
uses de la unit Triangulo_MainUnit, la segunda unidad (Triangulo_InputData). (hecho)
2, Declarar en la segunda unidad (Triangulo_InputData)
myData como variable pública. (hecho)
La cosa es que haciéndolo así no me funciona, por lo que deduzco que se me he perdido algo en el camino.
También he probado a declarar
myData como variable pública en la primera unidad y la cosa tampoco funciona.
Gracias por vuestra ayuda y que los Reyes Magos sean generosos con todos.