Que tal expertos: ¿Cómo hago para pasar por parámetro: una bandera o una variable cualquiera de un formulario normal, a un showmodal? Gracias
1 Respuesta
Respuesta de antipauli
1
1
antipauli, Analista/Programador de Sistemas Oracle
Puedes crearte properties en la parte public del form modal. Entonces, antes de mostrarlo, llenas esas properties y trabajas con esos valores. Si necesitas devolverlos, puedes usar las mismas properties. Acto seguido de cerrar el dialogo y antes de eliminarlo, lees sus valores accediendo de la forma habitual (param1 := form2. Param1). Ej. form2.param1 := 'param1'; form2.param2 := 'param2'; form2.param3 := 'param3'; form2.showmodal;
Ok, ¿quiere decir que tengo que crear un registro? Type xxx { param1:=1; }of record
No, cuando pongo: form2.param1 := 'param1'; form2.param2 := 'param2'; form2.param3 := 'param3'; form2.showmodal; Me refiero que en la parte public del form2 (el modal) habrás creado esas properties o variables y en este punto les estas asignando valores. Ej. Del form2: unit Unit2; Interface Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type Tform2 = class(TForm) procedure FormCreate(Sender: TObject); private Fparam3: String; Fparam1: String; Fparam2: String; procedure Setparam1(const Value: String); procedure Setparam2(const Value: String); procedure Setparam3(const Value: String); { Private declarations } public { Public declarations } property param1 : String read Fparam1 write Setparam1; property param2 : String read Fparam2 write Setparam2; property param3 : String read Fparam3 write Setparam3; end; var form2: Tform2; implementation {$R *.dfm} procedure Tform2.FormCreate(Sender: TObject); begin end; procedure Tform2.Setparam1(const Value: String); begin Fparam1 := Value; end; procedure Tform2.Setparam2(const Value: String); begin Fparam2 := Value; end; procedure Tform2.Setparam3(const Value: String); begin Fparam3 := Value; end; end.