Página 1 de 1

Cerrar un Dataset desde un formulario ajeno al objeto.

Publicado: Jue Jul 12, 2007 3:09 pm
por Angel
Saludos!
Me explico: mi intención es cerrar un Dataset desde un formulario que no
lo contiene. He intentado cerrarlo via WITH OBJECT NombreDeLaClase()
pero así­ no he podido acceder a las propiedades de dicho formulario.
Si he conseguido cerrarlo de esta manera:
Application:aForms[x]:oDataset:lOpen:=.F. pero creo que no es la más
óptima porque los formularios los tengo que identificar gracias a un
número y no siempre es el mismo, pues depende del usuario. Si en vez de
abrir el modulo X, abre el modulo Y, el número de Application:aForms[],
cambia si no me equivoco. Pregunta aparte: ¿Es posible identificar los
formularios por Application:aforms["Nombredelformulario"] o solo es
posible via 1,2,3,4,5... etc.
Mediante WITH OBJECT NombreDeLaClase():CreateForm(Self), me permite
acceder a los objetos del formulario, pero en este caso no puedo usarlo
¡porque ese formulario ya esta creado!
¿Teneis alguna sugerencia? Gracias por adelantado.

Cerrar un Dataset desde un formulario ajeno al objeto.

Publicado: Jue Jul 12, 2007 4:48 pm
por ignacio
Ángel,
Existe un método en la clase TDataSource:GetDataSet() para encontrar
cualquier TDataset en base a su propiedad cName (utiliza operador $), pero
lo más recomendable es que sencillamente guarde en una variable o en una
DATA dentro del formulario principal el formulario:
Desde el formulario principal:
CLASS TForm1
DATA oFrmCli
.........................
ENDCLASS
METHOD Clientes() OF TForm1
WITH OBJECT ::oFrmCli := TFrmCli():New( Self )
.........
END WITH
Saludos,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Ángel Fernández" <angel@agelso.com> escribió en el mensaje
news:4696280c$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Saludos!
>
> Me explico: mi intención es cerrar un Dataset desde un formulario que no
> lo contiene. He intentado cerrarlo via WITH OBJECT NombreDeLaClase() pero
> así no he podido acceder a las propiedades de dicho formulario.
>
> Si he conseguido cerrarlo de esta manera:
> Application:aForms[x]:oDataset:lOpen:=.F. pero creo que no es la más
> óptima porque los formularios los tengo que identificar gracias a un
> número y no siempre es el mismo, pues depende del usuario. Si en vez de
> abrir el modulo X, abre el modulo Y, el número de Application:aForms[],
> cambia si no me equivoco. Pregunta aparte: ¿Es posible identificar los
> formularios por Application:aforms["Nombredelformulario"] o solo es
> posible via 1,2,3,4,5... etc.
>
> Mediante WITH OBJECT NombreDeLaClase():CreateForm(Self), me permite
> acceder a los objetos del formulario, pero en este caso no puedo usarlo
> ¡porque ese formulario ya esta creado!
>
> ¿Teneis alguna sugerencia? Gracias por adelantado.
>

Cerrar un Dataset desde un formulario ajeno al objeto.

Publicado: Jue Jul 12, 2007 5:37 pm
por zeasoftware
A ver si te entendi, yo hago algo como esto:
En la clase padre es donde tienes el oDataSet y quieres usarlo en el Hijo?
Class Padre
Component oDataSet
::::::
EndClass
Method Padre_Llama Class Padre
With Object Hijo():New( Self )
:oDataClone := ::oDataSet //aqui paso como parametro el dataset de padre a hijo
:Listado()
End
Return ( Nil )
Class Hijo
Component oDataClone //este no lo defines como Dataset, solo lo escribes parecido a un Data.
:::
EndClass
Method Listado() Class Hijo
With Object ::oDataClone
:Open()
While !:Eof()
:Skip(1)
End
:Close()
End
Return ( Nil )
Espero te sirva.
Saludos,
--
Ramon Zea
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoftware/
--