Cómo definir un Browse desde recursos

Cómo definir un Browse desde recursos

Postby Rafael Clemente » Tue Dec 13, 2005 7:19 pm

Estoy intentando abrir un diálogo con sólo un browse de una columna.

En mi RC:

LOOKUP1 DIALOG DISCARDABLE 43, 27, 91, 76 STYLE WS_POPUP|DS_MODALFRAME|WS_SYSMENU|WS_VISIBLE
FONT 8, "System"
BEGIN
CONTROL "Cancel", IDCANCEL, "Button", WS_TABSTOP, 44, 0, 45, 15
CONTROL "", 4001, "ListBox", WS_VSCROLL | WS_BORDER | WS_TABSTOP, 0, 16, 88, 52
END


Mi Programa:
//─────────────────────────────────────
STATIC FUNCTION LookUp()
LOCAL oDlg, oLbx

DEFINE DIALOG oDlg RESOURCE "LOOKUP1"
REDEFINE LISTBOX oLbx ID 4001;
ALIAS AFAB ;
FIELDS AFAB->NOMBRE ;
HEADERS "Nombre" ;
SIZES 100
ACTIVATE DIALOG oDlg
RETURN NIL


Lo he probado de mil maneras y siempre me da error al compilar:
a1.prg(222) Error E0022 Invalid lvalue: 'Numeric' - La linea 222 es el REDEFINE

Por favor, alguien me puede decir qué estoy haciendo mal? Mejor con un ejemplo. Gracias

Rafael
[/url]
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Postby Antonio Linares » Tue Dec 13, 2005 7:55 pm

Rafael,

Cambia "ListBox" por "TWBrowse" en el RC.

En el código prueba esto:

REDEFINE LISTBOX oLbx ID 4001 OF oDlg;
ALIAS AFAB ;
FIELDS AFAB->NOMBRE ;
HEADERS "Nombre" ;
SIZES 100
regards, saludos

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

Postby Rafael Clemente » Tue Dec 13, 2005 8:19 pm

No: Al compilar sigue dando este error:

a1.prg(222) Error E0022 Invalid lvalue: 'Numeric'

222 es la línea del REDEFINE. Esroy utilizando la última versión de FWPPC, recién descargada anteayer.

De la única manera que consigo compilar es :
REDEFINE LISTBOX oLbx ID 4001 OF oDlg y nada más.

Pero esto, claro, me da error al ejecutar (oLbx es NIL)

Rafael

Antonio: Yo utilizo Pelles C para crear mis .RC ¿Hay algún otro programa que permita generar archivos más compatibles con FWPPC, sin tener que retocar tanto a mano el RC?
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Postby Rafael Clemente » Wed Dec 14, 2005 10:57 am

Antonio:
EMpiezo a creen que el REDEFINE LISTBOX en diálogos no funciona. Sencillamente, da error y ni siquiera compila. Lo mejor que he conseguido es esto:

oLbx := TWBrowse():Redefine(4001,{|| {customer->first} }, oDlg,;
{"Nombre"},;
{200}, , , , , {|nRow,nCol,nFlags|MiFuncion()},;
, oFont , , , , , , "Customer", , , , )

que por lo menos se ve en su diálogo pero da error "ARGUMENT ERROR .TOT." en cuanto haces click en cualquier registro. Adjunto código completo de la prueba, a ver si puedes darme alguna idea de como solucionarlo:


Code: Select all  Expand view  RUN
#include "FWCE.ch"
#include "WinApi.ch"
//----------------------------------------------------------------------------/
FUNCTION Main()
LOCAL oWnd, oDlg, oLbx

USE (CurDir()+"\Customer") NEW             // La DBF de \SAMPLES
DEFINE WINDOW oWnd TITLE "Test"
ACTIVATE WINDOW oWnd ON INIT AbrirDlg()
RETURN NIL

STATIC FUNCTION AbrirDlg()

DEFINE DIALOG oDlg RESOURCE "LOOKUP1"
DEFINE FONT oFont NAME "Arial" SIZE 0, -12

oLbx := TWBrowse():Redefine(4001,{|| {customer->first} }, oDlg,;
                            {"Nombre"},;
                            {200}, , , , , {|nRow,nCol,nFlags|MiFuncion()},;
                            , oFont , , , , , , "Customer", ,  , , )

ACTIVATE DIALOG oDlg
RETURN NIL

FUNCTION MiFuncion()
MsgInfo("Hola")
RETURN NIL

// -----------------------------------------------------------------------
El fichero .RC:

#include <windows.h>
#include <commctrl.h>
#include <richedit.h>

LANGUAGE LANG_SPANISH,SUBLANG_SPANISH_MODERN

LOOKUP1 DIALOG DISCARDABLE 43, 27, 91, 76
STYLE WS_POPUP|DS_MODALFRAME|WS_SYSMENU|WS_VISIBLE
FONT 8, "System"
BEGIN
  CONTROL "Cancel", IDCANCEL, "Button", WS_TABSTOP, 0, 0, 45, 15
  CONTROL "", 4001, "TWBrowse", WS_VSCROLL|WS_BORDER|WS_TABSTOP, 0, 16, 88, 52
END




User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Postby Antonio Linares » Wed Dec 14, 2005 11:05 am

Rafael,

Tu ejemplo ha funcionado a la primera. Lo único que tienes que quitar es esta línea del RC:

#include <richedit.h>

ya que no existe, y entonces el RC no se compila.

De todas formas, una vez se visualiza, al hacer click en una línea del browse da un error. Vamos a ver de que se trata.
Last edited by Antonio Linares on Wed Dec 14, 2005 11:09 am, edited 1 time in total.
regards, saludos

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

Postby Rafael Clemente » Wed Dec 14, 2005 11:08 am

Sí, Antonio. Justo ése es el problema
Rafael
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Postby Antonio Linares » Wed Dec 14, 2005 11:15 am

Rafael,

Acabamos de publicar un nuevo build de FWPPC que soluciona el problema. Por favor descárgalo y prueba tu ejemplo de nuevo. Gracias.
regards, saludos

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

Funciona!

Postby Rafael Clemente » Wed Dec 14, 2005 11:40 am

Antonio: La nueva versión de FWPPC funciona perfectamente!

Respecto a lo del REDEFINE LISTBOX, acabo de descubrir que es dependiente del orden de los parámetros:

Este funciona bien:
REDEFINE LISTBOX oLbx FIELDS AFAB->NOMBRE ALIAS "AFAB" ID 4001 OF oDlg ON DBLCLICK MiFuncion()

Pero este da Error E0022 Invalid lvalue: 'String' al compilar:
REDEFINE LISTBOX oLbx ID 4001 OF oDlg ALIAS "AFAB" FIELDS AFAB->NOMBRE

Gracias!
Rafael
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain


Return to FiveWin para Pocket PC

Who is online

Users browsing this forum: No registered users and 2 guests