PDA

Ver la Versión Completa : formulario que devuelve record


oscarac
12-05-2022, 05:33:34
buenas noches... tengo una inquietud...

como devolver un record desde un formulario

si fuera una funcion, seria facil, solo invoco a la funcion y listo

_rx esta declarado como record

_rx := vc(_Cuenta);
dato1 := _rx.variable1;
dato2 := _rx.variable2;
..
..


function vc(_cuenta : string);
result.variable1 := 'valor';
result.variable2 := 'otro valor';


tengo un formulario donde necesito devolver un registro, pero no esta en ninguna funcion... no se si me he dejado entender


pienso que podria pasarlo como parametro al formulario y devolverlo (como ??)

alguna otra idea?

Neftali [Germán.Estévez]
12-05-2022, 09:27:24
Tal vez no he entendido bien la pregunta, pero puedes usar una propiedad del Tipo del "record".
Como si fuera de cualquier otro tipo.

type
TRegistro = record
Valor1:string;
Valor2:string;
end;

TForm5 = class(TForm)
...
private
FRegistro: TRegistro;
public
property Registro:TRegistro read FRegistro write FRegistro;
end;

Y trabajar con ella como con cualquier otra.

oscarac
12-05-2022, 20:34:26
si, lo sé, la pregunta es como devuelvo ese récord desde ub formulario... sin usar funciones

movorack
12-05-2022, 21:28:53
Hola oscarac. Lamantablemente, tampoco he logrado comprender la solución que buscas o el problema en sí.

En la respuesta de Neftalí se muestra como puedes exponer un record en un objeto de formulario.

;546841']
type
TRegistro = record
Valor1:string;
Valor2:string;
end;

TForm5 = class(TForm)
...
private
FRegistro: TRegistro;
public
property Registro:TRegistro read FRegistro write FRegistro;
end;


Una vez expuesta esta propiedad puedes usarla en otro formulario.


procedure FrmMain.AbrirRegistro(Sender: TObject);
begin
Form5.Registro.Valor1 := 1;

if Form5.ShowModal = mrOk then
ShowMessage(IntToStr(Form5.Registro.Valor2));
end;

oscarac
13-05-2022, 06:25:54
Hola oscarac. Lamantablemente, tampoco he logrado comprender la solución que buscas o el problema en sí.

En la respuesta de Neftalí se muestra como puedes exponer un record en un objeto de formulario.



Una vez expuesta esta propiedad puedes usarla en otro formulario.


procedure FrmMain.AbrirRegistro(Sender: TObject);
begin
Form5.Registro.Valor1 := 1;

if Form5.ShowModal = mrOk then
ShowMessage(IntToStr(Form5.Registro.Valor2));
end;



me funciona bien.... muchas gracias