Page 1 of 1

:end()

Posted: Mon Jun 12, 2006 4:01 pm
by josevalle
Hojeando el foro he visto que hay que hacer :end() de los objetos al salir
de una funcion, incluso de los objetos Locales.

¿Es así?

En el ejemplo de Carles hay cuatro objetos, oBmp, oDlg, oSay, oFont

¿por que solo con 2 de ellos se hace :end()?

oBmp:End()
oFont:End()

¿Hay alguna forma de ver que objetos hay en memoria?


*----------------------
STATIC FUNCTION About()
*----------------------
LOCAL oBmp, oDlg, oSay, oFont
LOCAL cText := 'Ejemplo de uso de FWPPC' + CRLF + CRLF + ;
'(c) Carles Aubia'

DEFINE FONT oFont NAME 'Arial' SIZE 0, -10

DEFINE DIALOG oDlg RESOURCE "About"

REDEFINE BITMAP oBmp NAME 'FWPPC' ID 200 OF oDlg

REDEFINE SAY oSay PROMPT cText ID 210 OF oDlg ;
FONT oFont COLOR CLR_BLACK, CLR_WHITE

oDlg:blClicked := {|| oDlg:End() }
oBmp:blClicked := {|| oDlg:End() }

ACTIVATE DIALOG oDlg CENTERED

oBmp:End()
oFont:End()

RETU NIL

Posted: Tue Jun 13, 2006 11:22 am
by Carles
Hola Jose,

Realmente solo se tendria de aplicar el metodo End() al objeto oFont. oBmp ya lo destruye oDlg. Seguramente se quedo asi de las muchas pruebas q realize.

Posted: Tue Jun 13, 2006 2:35 pm
by josevalle
Ahora ya lo entiendo.

Nunca había usado fivewin pero con vuestra ayuda es muy fácil de utilizar.

Posted: Tue Jun 13, 2006 3:32 pm
by Antonio Linares
Jose,

El método End() lo usamos para destruir determinados valores (handles) de Windows que precisan ser liberados, ó se consumen recursos del sistema, tales como handles de ventanas, recursos GDI (fonts, bitmaps, pens,etc), timers, etc.