Page 1 of 1

Problem with MODAL window

Posted: Tue Sep 20, 2016 3:53 am
by dragancesu

Code: Select all

FUNCTION lov_kal_cen()

PRIVATE _RetVal

   if IsWindowActive( Lov_Form_kc )
       DoMethod( 'Lov_Form_kc', "RELEASE" )
   endif

   DEFINE WINDOW Lov_Form_kc ; 
      AT 0,0 ; 
      WIDTH 500 ; 
      HEIGHT 300 ; 
      TITLE "Kalkulacije i cene " ; 
      MODAL

   @ 20, 20 BROWSE Lov_grid_kc ;
      WIDTH 450 ;
      HEIGHT 250 ;
      FONT "Arial" ; 
      SIZE 10 ;
      HEADERS { "Kalkulacija","Kolicina","Prod.cena","Nab.cena" } ;
      WIDTHS { 100,100,100,100 } ;
      WORKAREA KAL_CEN ;
      FIELDS { "KALK","KOL","CENA1","CENA2" } ;
      ON DBLCLICK sel_row_kc() ; 
      JUSTIFY { 1, 1, 1, 1 }  
		 
   END WINDOW 

   Lov_Form_kc.Lov_Grid_kc.SetFocus 

   CENTER WINDOW Lov_Form_kc

   ACTIVATE WINDOW Lov_Form_kc

RETURN _Retval 
*----------------------------------------------------------
FUNCTION sel_row_kc()

   _Retval := Lov_Form_kc.Lov_Grid_kc.Value
   Lov_Form_kc.Release

RETURN val(_RetVal) 
This should be a simple function that starts up when you need to choose something from the offered value (BROWSE and GRID) or not

message is

HMG 3.4.1 / HMG 3.4.3 Stable (32 bits)

Not debug mode
Window: Lov_Form_kc already defined. Program Terminated

in debug mode
Non top modal windows can't be released. Program Terminated

Question: how open and close modal window, and used later again?

Re: Problem with MODAL window

Posted: Tue Sep 20, 2016 5:05 am
by KDJ
dragancesu

Try this code:

Code: Select all

FUNCTION lov_kal_cen()

LOCAL lMainWndFirst := HMG_ActivateMainWindowFirst(.F.)
PRIVATE _RetVal

   if IsWindowActive( Lov_Form_kc )
       DoMethod( 'Lov_Form_kc', "RELEASE" )
   endif

   DEFINE WINDOW Lov_Form_kc ;
      AT 0,0 ;
      WIDTH 500 ;
      HEIGHT 300 ;
      TITLE "Kalkulacije i cene " ;
      MODAL

//   @ 20, 20 BROWSE Lov_grid_kc ;
//      WIDTH 450 ;
//      HEIGHT 250 ;
//      FONT "Arial" ;
//      SIZE 10 ;
//      HEADERS { "Kalkulacija","Kolicina","Prod.cena","Nab.cena" } ;
//      WIDTHS { 100,100,100,100 } ;
//      WORKAREA KAL_CEN ;
//      FIELDS { "KALK","KOL","CENA1","CENA2" } ;
//      ON DBLCLICK sel_row_kc() ;
//      JUSTIFY { 1, 1, 1, 1 } 
      
   END WINDOW

//   Lov_Form_kc.Lov_Grid_kc.SetFocus

   CENTER WINDOW Lov_Form_kc

   ACTIVATE WINDOW Lov_Form_kc

   HMG_ActivateMainWindowFirst(lMainWndFirst)

RETURN _Retval
*----------------------------------------------------------
FUNCTION sel_row_kc()

   _Retval := Lov_Form_kc.Lov_Grid_kc.Value
   Lov_Form_kc.Release

RETURN val(_RetVal)

Re: Problem with MODAL window

Posted: Tue Sep 20, 2016 10:05 pm
by dragancesu
Thank you but it's not solution, program crash

Re: Problem with MODAL window

Posted: Tue Sep 20, 2016 10:45 pm
by andyglezl
Hola dragancesu

Según lo veo, no puedes dar un RELEASE a la ventana porque estas todavía dentro de la
función que ejecuta el Grid "ON DBLCLICK sel_row_kc()"
------------------------------------------------------------------------------------------------------------
Hello dragancesu

As I see it, you can not give one release to the window because these still within the
function that runs the Grid "ON DBLCLICK sel_row_kc ()"


FUNCTION sel_row_kc()

_Retval := Lov_Form_kc.Lov_Grid_kc.Value
Lov_Form_kc.Release <==================

RETURN val(_RetVal)


Maybe...
@ 20, 20 BROWSE Lov_grid_kc ;
.......
ON DBLCLICK ( sel_row_kc(), Lov_Form_kc.Release ) ; <=====================