Page 1 of 1

It's possible to use Scroll (like Clipper) in a Window

Posted: Mon May 24, 2010 6:43 pm
by jparada
Hi,

I wonder if I can use the following little code in a window.

Code: Select all

cSalida := 'Exit'
nLinea := 1
nCont  := 0

Do While .T.

  cVar := Space(6)
  @nLinea++, 0 Say 'Enter Item:' Get cVar Valid ChkItem( ) Color 'W+/N'
  Read

  If !Empty(cVar) .And. cVar # cSalida
    nCont++
      If nCont == 3
        //Reboot( )  
      Endif
  Endif
   
  If LastKey( ) == K_ESC
     ChkItem( )
  Endif

  If cVar == cSalida
    CLS
    Exit
  Endif

Enddo

Function ChkItem( )
    
   If nLinea > 24
      Scroll( 0, 0, 24, 20, 1 )
      nLinea--
   Endif

Return .T.
Any help or tip is welcome.

Thanks

Best Regards
Javier

Re: It's possible to use Scroll (like Clipper) in a Window

Posted: Tue May 25, 2010 8:30 pm
by srvet_claudio
Hola Javier,
aqui te dejo dos programas, el primero emula el código de la rutina que posteaste y el segundo hace uso de las facilidades de HMG, espero que te sirvan de ayuda.
Saludos,
Claudio Soto.

Code: Select all

#include "minigui.ch"

FUNCTION MAIN

#define MAX_LINEA 24
PRIVATE CONTROL_LABEL := {}
PRIVATE CONT := 0  

   DEFINE WINDOW Form1;
      AT 0,0 ;
      WIDTH 400 ;
      HEIGHT 600 ;
      TITLE "Scroll Windows" ;
      MAIN

      @ 520, 150 BUTTON Boton1 CAPTION "New Line" ACTION NUEVA_LINEA ()   
   END WINDOW

   Form1.CENTER 
   Form1.ACTIVATE 
RETURN

PROCEDURE NUEVA_LINEA
    IF cont < MAX_LINEA
       cont ++
       Nomb_Label := "Label_"+alltrim(str(cont))
       Text := "Hola Javier.         Linea: "+str(cont)
       @ cont*20,100 LABEL &Nomb_Label OF Form1 VALUE Text AUTOSIZE   
       AADD (CONTROL_LABEL,Nomb_Label)          
    ELSE          
       FOR i = 1 TO LEN (CONTROL_LABEL)-1
           valor := GetProperty ("Form1",CONTROL_LABEL [i+1] , "VALUE")
           SetProperty ("Form1",CONTROL_LABEL [i],"VALUE", Valor)  
       NEXT
       cont++
       Text := "Hola Javier.         Linea: "+str(cont)
       SetProperty ("Form1",CONTROL_LABEL [LEN(CONTROL_LABEL)],"VALUE", text)
    ENDIF    
RETURN


Code: Select all

#include "minigui.ch"

FUNCTION MAIN
   
   DEFINE WINDOW Form1;
      AT 0,0 ;
      WIDTH 400 ;
      HEIGHT 400 ;
      VIRTUAL WIDTH  800;
      VIRTUAL HEIGHT 2500;
      TITLE "Scroll Windows" ;
      MAIN
     
      FOR i = 1 TO 120
          Nomb_Label := "Label_"+alltrim(str(i))
          Text := "Hola Javier.         Linea: "+str(i)
          @ i*20,100 LABEL &Nomb_Label VALUE Text AUTOSIZE
      NEXT
         
   END WINDOW

   Form1.CENTER 
   Form1.ACTIVATE 
RETURN


Re: It's possible to use Scroll (like Clipper) in a Window

Posted: Wed May 26, 2010 8:53 pm
by jparada
Hola Claudio,

Gracias,

Tus aportaciones para mi han sido de mucha ayuda.

Muchas Gracias

Saludos
Javier

Re: It's possible to use Scroll (like Clipper) in a Window

Posted: Wed May 26, 2010 10:19 pm
by srvet_claudio
Hola Javier,
No tienes por que agradecer, es un placer poder colaborar.
Saludos,
Claudio.