FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Diálogo NOMODAL y variable PRIVATE
Posts: 610
Joined: Wed Oct 19, 2005 08:20 PM
Diálogo NOMODAL y variable PRIVATE
Posted: Fri Oct 19, 2007 04:50 PM
En un diálogo MODAL tengo un BROWSE que se va filtrando según voy tecleando letras; para ello uso una variable PRIVATE y todo va perfectamente. Al convertir el dialogo a NOMODAL me salta el error de que la variable cKey no existe. ¿Por qué?

PRIVATE cKey
cKey=""
//
  DEFINE DIALOG oDlg RESOURCE "AGENDA" TITLE cTitulo FONT oFont1
   oDlg:lHelpIcon:=.F.

     REDEFINE LISTBOX oLbx ;
            FIELDS IIF(EMPTY(AGENDA->Ubicado)," ",aLevel[ 5 ] ),;
            +" "+AGENDA->Texto+" ";
            FIELDSIZES 16,300;
            HEADERS "A", "       Texto";
            ID 200;
            OF oDlg

     oLbx:bkeydown:={|nKey|DOKEYCHECK(nKey,oLbx,oDlg,oSay)}
Un saludo,

Manuel



xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Diálogo NOMODAL y variable PRIVATE
Posted: Fri Oct 19, 2007 06:30 PM

MEMVAR cKey
PRIVATE cKey

cKey := ""

Repita en las otras funciones, si usas la variable en las otras funciones.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 610
Joined: Wed Oct 19, 2005 08:20 PM
Diálogo NOMODAL y variable PRIVATE
Posted: Fri Oct 19, 2007 06:55 PM

Gracias karinha, pero persiste el error. La variable cKey se usa en la función DOKEYCHECK(nKey,oLbx,oDlg,oSay), y como ya dije, cuando el diálogo es MODAL no hay problema.

Un saludo,
Manuel

Un saludo,

Manuel



xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Diálogo NOMODAL y variable PRIVATE
Posted: Fri Oct 19, 2007 07:12 PM
#include "FiveWin.ch"

//----------------------------------------------------------------//
function Main()

LOCAL oLbx, oDlg, oSay, nKey := VK_RETURN

MEMVAR  cKey
PRIVATE cKey

cKey := "teste de cKey, Manuel Aranda"

? ckey

  DEFINE DIALOG oDlg RESOURCE "AGENDA" TITLE cTitulo FONT oFont1 

   oDlg:lHelpIcon:=.F. 

  REDEFINE LISTBOX oLbx ;
           FIELDS IIF(EMPTY(AGENDA->Ubicado)," ",aLevel[ 5 ] ),;
           +" "+AGENDA->Texto+" ";
           FIELDSIZES 16,300;
           HEADERS "A", "       Texto";
           ID 200;
           OF oDlg

     oLbx:bkeydown:={|nKey|DOKEYCHECK(nKey,oLbx,oDlg,oSay)}

   ACTIVATE DIALOG oDlg CENTERED


    DOKEYCHECK(nKey,oLbx,oDlg,oSay)

RETURN NIL

STATIC FUNCTION DOKEYCHECK(nKey,oLbx,oDlg,oSay)

    MEMVAR  cKey

    ? cKey

RETURN( .T. )
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 610
Joined: Wed Oct 19, 2005 08:20 PM
Diálogo NOMODAL y variable PRIVATE
Posted: Fri Oct 19, 2007 07:23 PM
Así si funciona, pero si haces el diálogo NOMODAL es cuando se produce el error

ACTIVATE DIALOG oDlg CENTERED NOMODAL
Un saludo,

Manuel



xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Diálogo NOMODAL y variable PRIVATE
Posted: Fri Oct 19, 2007 07:35 PM

ACTIVATE DIALOG oDlg CENTERED NOMODAL

SI USAS RECURSOS, DESHABILITE EN EL RECURSO DEL WORKSHOP.EXE LA CLAUSULA MODAL FRAME SOLAMENTE.

CREO, QUE SEA APENAS ESTO.

Regards, saludos.

QUE INTENTAS HACER???

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 114
Joined: Fri Nov 24, 2006 09:03 PM
Diálogo NOMODAL y variable PRIVATE
Posted: Fri Oct 19, 2007 08:49 PM

pues declara como Publica y listo

Public cKey

Posts: 610
Joined: Wed Oct 19, 2005 08:20 PM
Diálogo NOMODAL y variable PRIVATE
Posted: Sat Oct 20, 2007 10:24 AM

karinha, sigue el mismo error independientemente de que la ventana sea modal o no modal en el recurso.

jacgsoft, gracias. Haciendo pública la variable ya funciona correctamente.
Pero me intriga saber por qué no funciona como private si hago el diálogo NOMODAL. En fín, como tantas otras cosas. Correremos un tupido velo y aplicaremos la máxima "si funciona no lo toques".

Un saludo,
Manuel

Un saludo,

Manuel



xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
Diálogo NOMODAL y variable PRIVATE
Posted: Sat Oct 20, 2007 06:20 PM

Miguel, prueba a pasarla como referencia a ver si funciona DOKEYCHECK(nKey,oLbx,oDlg,oSay,@cKey)

STATIC FUNCTION DOKEYCHECK(nKey,oLbx,oDlg,oSay,cKey)
salu2
Paco

____________________

Paco
Posts: 610
Joined: Wed Oct 19, 2005 08:20 PM
Diálogo NOMODAL y variable PRIVATE
Posted: Sat Oct 20, 2007 06:32 PM
Gracias Francisco, pero tampoco funciona así.

Un saludo,
Manuel

Francisco Horta wrote:Miguel, prueba a pasarla como referencia a ver si funciona DOKEYCHECK(nKey,oLbx,oDlg,oSay,@cKey)

STATIC FUNCTION DOKEYCHECK(nKey,oLbx,oDlg,oSay,cKey)
salu2
Paco
Un saludo,

Manuel



xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
Diálogo NOMODAL y variable PRIVATE
Posted: Sun Oct 21, 2007 01:08 AM

Migeul, probaste a declararla STATIC y probaste tambien como LOCAL ? preba pasandola como refer aver si funciona. sino lo mas facil es declararla PUBLIC
salu2
paco

____________________

Paco
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Diálogo NOMODAL y variable PRIVATE
Posted: Sun Oct 21, 2007 01:34 AM

Manuel
me parece que cuando es nomodal el dialogo, la funcion donde declaras private a la variable ya termino de ejecutarse y solo queda activado el dialogo, porque la ejecucion del programa no se detiene, y por eso ya no existe esa variable, mejor la trabajas como local, porque igual si la declaras public el contenido de la misma variaria si acceden al mismo dialogo varias veces

bueno espero te ayude

Saludos

Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 610
Joined: Wed Oct 19, 2005 08:20 PM
Diálogo NOMODAL y variable PRIVATE
Posted: Sun Oct 21, 2007 09:36 AM

Gracias a todos, especialmente a Francisco Horta. Pasándola como referencia funciona si se define como LOCAL o STATIC pero no como PRIVATE que es como la tenía cuando el diálogo era MODAL. De todas formas prefiero esta solución a declararla PUBLICA.

Un saludo,
Manuel

Un saludo,

Manuel



xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Diálogo NOMODAL y variable PRIVATE
Posted: Sun Oct 21, 2007 09:42 AM

Manuel,

Como te indica Wilson, la ejecución no se detiene y entonces sales del ámbito en donde la variable private fué creada y la maquina virtual de Harbour la destruye

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion