Como actualizar los controles de un dialogo.

Como actualizar los controles de un dialogo.

Postby Salvador » Sun Aug 19, 2007 6:50 pm

Hola a todos.

En FW con oDlg:Update() se actualizaban todos los controles de un dialogo.
En FWPPC parece no existir esa función en la clase. Hay alguna alternativa que no sea recorrer con un bucle, oDlg:Acontrols[x]:Refresh(), ya que esta es lenta y muestra un feo efecto en pantalla.

Gracias.
Salvador
 
Posts: 144
Joined: Sun Dec 18, 2005 3:18 pm
Location: España

Postby Antonio Linares » Sun Aug 19, 2007 6:52 pm

Salvador,

Prueba con oDlg:Refresh()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42078
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Salvador » Mon Aug 20, 2007 11:11 am

Seguramente hay algo que no acabo de entender por mi inexperiencia con FWPPC.
Pero el siguiente codigo, no refresca los controles si no cogen el foco, el get numérico aparece centrado, y el spinner no se ven los botones.

Que hago mal ?.

Gracias.

Code: Select all  Expand view
#include "FWCE.ch"
STATIC oWnd, oDlg ,cTexto, nNumero, nNumero2

Function Main()

    DEFINE WINDOW oWnd ;

    DEFINE DIALOG oDlg RESOURCE "DlgTest";
    STYLE WS_CHILD OF oWnd


    REDEFINE GET oGet VAR cTexto ID 200 OF oDlg UPDATE;
    PICTURE "@x"

    REDEFINE GET oGet VAR nNumero  ID 201 OF oDlg UPDATE;
    PICTURE "9999999";


    REDEFINE GET oGet VAR nNumero2 ID 202 OF Odlg UPDATE;
    PICTURE "999";
    SPINNER MIN 0 MAX 255;

    ACTIVATE DIALOG oDlg NOWAIT;
    ON INIT (MoveWindow( oDlg:hWnd, 0, 0), UpdateVars(), oDlg:Refresh());
    VALID .f.

   ACTIVATE WINDOW oWnd ;
   ON INIT oDlg:SetFocus();
   VALID (oDlg:End(), .t. )


return nil


Function UpdateVars()
  cTexto   := "Mi texto"
  nNumero  := 9
  nNumero2 := 10
  oDlg:Refresh()
return .t.


// el RC

#ifdef _CE

#include "c:\vce\include\arm\windows.h"
#include "c:\vce\include\arm\commctrl.h"


#define I_IMAGENONE             (-2)
#define IDS_HELP      104

102 RCDATA
BEGIN
  102, 2,
  I_IMAGENONE, 202, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, 202, 0, 0,
  I_IMAGENONE, 203, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, 203, 0, 1,
END
#endif


DLGTEST DIALOG 48, 28, 166, 180
STYLE 0x4L | WS_CHILD
FONT 8, "system"
{
EDITTEXT 200, 34, 8, 42, 11, ES_RIGHT | WS_BORDER | WS_TABSTOP
EDITTEXT 201, 35, 26, 42, 11, ES_RIGHT | WS_BORDER | WS_TABSTOP
EDITTEXT 202, 36, 45, 34, 11, ES_RIGHT | WS_BORDER | WS_VSCROLL | WS_TABSTOP
RTEXT "Texto", -1, 2, 10, 28, 10
RTEXT "Número", -1, 6, 28, 28, 10
RTEXT "Spinner", -1, 4, 45, 28, 10
}
Salvador
 
Posts: 144
Joined: Sun Dec 18, 2005 3:18 pm
Location: España

Postby Antonio Linares » Mon Aug 20, 2007 2:43 pm

Salvador,

Hemos implementado el método Update() para FWPPC.

Te enviamos por email la LIB modificada. Ahora tu ejemplo funciona bien.

Los números no es que aparezcan centrados, sino que debes modificar su ancho ó variar su PICTURE.

La claúsula SPINNER parece que no la acepta Windows Mobile.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42078
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Pocket PC

Who is online

Users browsing this forum: No registered users and 23 guests