PDA

Ver la Versión Completa : Enviar datos a un IWForm desde mi IWMenu [IWFrame]


Capo
15-08-2006, 00:58:20
Btardes compañeros.
Uso D7 + IW 7.2.41 + ADO [MSSQL]
Tengo un Mainmenu dentro de un IWFrame, para llamar los IWForm tengo una procedure para llamarlas al estilo del ejemplo Features de las demo:


procedure TIWFrame1.Show_Form(AFormClass: TIWAppFormClass);
begin
TIWAppForm(WebApplication.ActiveForm).Release;
AFormClass.Create(WebApplication).Show;
end;


y en cada Menuitem llamo a dicho procedure y le mando la clase del IWForm:

Show_Form(Tregistro_nave_esp);


Tengo un IWform en el cual edito y adiciono informacion y quiero llamar al mismo form para editar o insertar, es decir; en el menu hay dos opciones [1. Editar, 2. Insertar] pero ambas llegan al mismo formulario, he intentado enviarle datos a ese IWform a fin de ke me muestre un IWlabel indicando si esta editando o estas insertando pero no aplica como en la Aplicaciones de escritorio; la pregunta es como le paso datos o params a ese form desde mis diferentes opciones de mi mainmenu??

Gracias++

geovany
15-08-2006, 01:09:58
aqui te va un ejemplito

public
varible_string_publica,
dos : string;
constructor Crear(AOwner: TComponent; Forma:TIWFox; variable:string);



constructor TIWFoy.Crear(AOwner: TComponent; Forma:TIWFox);
begin
inherited Create(AOwner);
//hago esto o aquello
End;


saludos espero y te sirva

Capo
15-08-2006, 15:36:35
Hola Compadre...saludos y gracias de cora por tu valiosa ayuda.
Pana: disculpa pero no entiendo mucho este codigo y es mi intencion conocerlo para aplicarlo:
1. crear un constructor con tres parametros:

constructor Crear(AOwner: TComponent; Forma:TIWFox; variable:string);


pero al llamarlo le mandas solo dos:

constructor TIWFoy.Crear(AOwner: TComponent; Forma:TIWFox);
begin
inherited Create(AOwner);
//hago esto o aquello
End;


Entiendo que este constructor debe ir en mi IWFrame, el cual me permite tener un metodo "crear" en el cual debo inicializar los IWform a los que quiero enviar datos?? cuando escribes: "//hago esto o aquello" te refieres a crear/llamar los IWForms??

El parametro del constructor "Forma" es de tipo: TIWAppForm??

Capo
15-08-2006, 18:46:49
Geovany, consegui y probe esto en mi IWFrame y anda bien:

public
{ Public declarations }
registro_nave_esp : Tregistro_nave_esp;
constructor Create(AOwner: TComponent); override;


y


constructor TIWFrame1.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
registro_nave_esp := Tregistro_nave_esp.Create(WebApplication);
End;


Pero debí quitar el IWFrame de mi IWForm "registro_nave_esp" pues me generaba un error "[Fatal Error] Crear_Nave.pas(17): Circular unit reference to 'Crear_Nave'"

Como Puedo continuar utilizando mis IWFrame en todos mis formularios y poder hacer referencia a ellos desde mi IWFrame??

geovany
15-08-2006, 18:52:48
Hola Compadre...saludos y gracias de cora por tu valiosa ayuda.
Pana: disculpa pero no entiendo mucho este codigo y es mi intencion conocerlo para aplicarlo:
1. crear un constructor con tres parametros:
Código Delphi [-] (http://www.clubdelphi.com/foros/#)constructor Crear(AOwner: TComponent; Forma:TIWFox; variable:string);


pero al llamarlo le mandas solo dos:
Código Delphi [-] (http://www.clubdelphi.com/foros/#)<div align="left">constructor TIWFoy.Crear(AOwner: TComponent; Forma:TIWFox); begin inherited Create(AOwner); //hago esto o aquello End;div>


Entiendo que este constructor debe ir en mi IWFrame, el cual me permite tener un metodo "crear" en el cual debo inicializar los IWform a los que quiero enviar datos?? cuando escribes: "//hago esto o aquello" te refieres a crear/llamar los IWForms??

El parametro del constructor "Forma" es de tipo: TIWAppForm??

Mira lo del numero de parametros fue un error de dedo, y este contructor yo te lo di con la intencion de que este en el formulario que vas a llamar y en el frame vas a poner la llamada con los parametros adecuados

Capo
15-08-2006, 20:11:41
Una vez mas gracias, compadre.
No es mi intencion abordarte con esto, y sé que lo haces con la mejor intencion y te lo agradezco. Pero ahora si me perdí, pues el contructor lo pongo en el Iwform que voy a llamar, pero como lo llamo desde mi IWframe?

geovany
15-08-2006, 20:34:40
Una vez mas gracias, compadre.
No es mi intencion abordarte con esto, y sé que lo haces con la mejor intencion y te lo agradezco. Pero ahora si me perdí, pues el contructor lo pongo en el Iwform que voy a llamar, pero como lo llamo desde mi IWframe?

pues se supone que cuando entras a cierta opcion creas el form que vas a mostrar ahi vas a utiliar el constructor que acabas de hacer

Capo
15-08-2006, 21:12:55
Ready profe, ahora si entendí tu explicacion.
desde mi IWFrame lo llamo asi:


with Tregistro_nave_esp.Crear(Self) do begin
IWLabel1.Caption := 'Viva Sinaloa, Mexico';
IWButton1.Caption := 'Guardar Nueva';
TIWAppForm(WebApplication.ActiveForm).Release;
Show;
end;


Puedo usar el menu en cada IWform y todo en orden.
Pana mio...una vez mas mil gracias.

geovany
15-08-2006, 23:06:44
Código Delphi [-] (http://www.clubdelphi.com/foros/#) with Tregistro_nave_esp.Crear(Self) do begin IWLabel1.Caption := 'Viva Sinaloa, Mexico'; IWButton1.Caption := 'Guardar Nueva'; TIWAppForm(WebApplication.ActiveForm).Release; Show; end;


Puedo usar el menu en cada IWform y todo en orden.
Pana mio...una vez mas mil gracias.

creo k esa no era la manera que te habia dicho peor tambien es otra solucion factible, ademas de que con esa no tienes que tener un nuevo contructor

saludos y estamos pendientes