Como traigo un valor de un vector a un formulario con campos
Publicado por LUIS EDUARDO (1 intervención) el 06/02/2021 03:50:38
HOLA TENGO UN GRAN INCOVENIENTE RESULTA QUE MANEJO HACE POCO DELPHI , Y ESTABA HACIENDO UNA PRUEBA CON UN VECTOR DE TIPO RECORD O REGISTRO, Y EN UN FORMULARIO PRINCIPAL GRABO 2 CAMPOS LOS CUALES SE GUARDAN EN LA PRIMERA POSICION DEL VECTOR CON SUS DOS COMPONENTES EN ESTE CASO EJEMPLO NOMBRE Y CODIGO Y LOS AGREGO POR MEDIO DE UN BUTON Y LOS AGREGA BIEN.
EL HECHO ES QUE QUIERO QUE ESOS DATOS SE PUEDAN TOMAR EN OTRO FORMULARIO, Y LO ESTOY HACIENDO POR MEDIO DE OTRO BOTON EN EL FORMULARIO 2 Y NO ME APARECE, NO SE PORQUE LLEGAN VACIOS.
ACONTINUACION ENVIO LOS CODIGOS
FORMULARIO 1
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var nom,ape:String;
begin
nom:=Edit1.Text;
ape:=Edit2.Text;
llenar(nom,ape);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form3.Show;
end;
end.
AQUI ESTA EL FORMULARIO 2
unit Unit3;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm3 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
uses Unit2;
var arr: empl;
procedure TForm3.Button1Click(Sender: TObject);
begin
Label1.Caption:= arr.Nombre;
Label2.Caption:=arr.Codig;
end;
end.
Y AQUI ESTA LA UNIDAD DONDE ESTA EL VECTOR CON UN PROCEDIMIENTO DE CARGA
unit Unit2;
interface
uses Vcl.Dialogs;
type
empl =record
Nombre:String;
Codig:String;
end;
Temp= array [1..10] of empl;
procedure llenar(nom,cod:String);
implementation
var arr: Temp;
procedure llenar(nom,cod:String);
begin
arr[1].Nombre:=nom;
arr[1].Codig:=cod;
ShowMessage(arr[1].Nombre);
ShowMessage(arr[1].Codig);
end;
end.
LES AGRADEZCO LA AYUDA
EL HECHO ES QUE QUIERO QUE ESOS DATOS SE PUEDAN TOMAR EN OTRO FORMULARIO, Y LO ESTOY HACIENDO POR MEDIO DE OTRO BOTON EN EL FORMULARIO 2 Y NO ME APARECE, NO SE PORQUE LLEGAN VACIOS.
ACONTINUACION ENVIO LOS CODIGOS
FORMULARIO 1
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var nom,ape:String;
begin
nom:=Edit1.Text;
ape:=Edit2.Text;
llenar(nom,ape);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form3.Show;
end;
end.
AQUI ESTA EL FORMULARIO 2
unit Unit3;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm3 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
uses Unit2;
var arr: empl;
procedure TForm3.Button1Click(Sender: TObject);
begin
Label1.Caption:= arr.Nombre;
Label2.Caption:=arr.Codig;
end;
end.
Y AQUI ESTA LA UNIDAD DONDE ESTA EL VECTOR CON UN PROCEDIMIENTO DE CARGA
unit Unit2;
interface
uses Vcl.Dialogs;
type
empl =record
Nombre:String;
Codig:String;
end;
Temp= array [1..10] of empl;
procedure llenar(nom,cod:String);
implementation
var arr: Temp;
procedure llenar(nom,cod:String);
begin
arr[1].Nombre:=nom;
arr[1].Codig:=cod;
ShowMessage(arr[1].Nombre);
ShowMessage(arr[1].Codig);
end;
end.
LES AGRADEZCO LA AYUDA
Valora esta pregunta


0