Bug en 11.11 30/septiembre (SOLUCIONADO)

Re: Bug en 11.11 30/septiembre

Postby fgondi » Mon Dec 05, 2011 11:25 am

Antonio,

El tema del Valid. Solucionado.

El tema de pintado, casi, casi.
En recurso para dialogo que tengo se incluye folder. (Las imagenes las incluí antes)
Ahora no se ve el dibujo de los dialogos incluidos en el folder. Pero el diseño de la cabecera (parte superior "pedido, cliente, fecha hora, almacén, etc...") sigue viendose.
Caputando con "Impr Pant" lo que guarda es esto:
Image
Uploaded with ImageShack.us

Muchisimas gracias por tu ayuda.
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: Bug en 11.11 30/septiembre

Postby Antonio Linares » Mon Dec 05, 2011 11:38 am

Fernando,

Te refieres a que se ve esta parte ?

Image

Se ve asi, ya con colores, etc ?
regards, saludos

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

Re: Bug en 11.11 30/septiembre

Postby fgondi » Mon Dec 05, 2011 11:49 am

Antonio,

Lo que se ve es esto:
Image
Uploaded with ImageShack.us

También tenemos pendiente el porque no se puede escribir una vez activa la ventana. Perminte Intro, Tab, etc. pero no recoge los caracteres alfanumericos.
Cambiando a otro get y volviendo al primero ya permite.
Con el ejemplo inicial se puede probar.
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: Bug en 11.11 30/septiembre

Postby fgondi » Mon Dec 05, 2011 1:52 pm

Antonio,

Mas bugs:

1º - Incluimos en el ejemplo inicial un checkbox, DtPicker o TmPicker y forzamos a que nunca se cierre el dialogo
Code: Select all  Expand view  RUN
Redefine CheckBox oCheck Var lCheck Id 106 Update Of oDlg
ACTIVATE DIALOG oDlg NoWait On Init ps_Incrus( oChild, oDlg ) Valid .F.

Cuando el foco esta en esto campos y pulsamos escape se cierra el dialogo.
Con combobox y get lo he probado y funciona bien.

2º- Otra vez en el ejemplo inicial definimos uno de los get's el que sea a una longitud de 2 caracteres
Code: Select all  Expand view  RUN
aVar[1] := space(2)

ó
Code: Select all  Expand view  RUN
Redefine Get aGet[1] Var aVar[1] Id 102 Update Message 'Indique el código del usuario' Of oDlg Picture '99'

Al escribir sobre él unicamente permite la entrada de 2 carácteres o de 2 dídigos en el segundo caso.
Sin embargo si sobre el get pulsamos CTRL+V, pega todo lo que hubiese en el clipboard, independientemente de la longitud y del picture.
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: Bug en 11.11 30/septiembre

Postby fgondi » Wed Dec 07, 2011 9:59 am

S.O.S. :wink:
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: Bug en 11.11 30/septiembre

Postby Antonio Linares » Wed Dec 07, 2011 10:37 am

Fernando,

En el ejemplo inicial que publicastes se puede escribir correctamente en el primer GET. Tienes otro ejemplo en el que se muestre el error que comentas ? gracias :-)

Por favor modifica este y usémoslo como punto de partida

fgondi.prg

Code: Select all  Expand view  RUN
#include "FiveWin.ch"

function Main()
local oWnd

Define Window oWnd Title "Principal" Mdi
oWnd:bInit     := {|| ps_Child(oWnd) }
Activate Window oWnd MAXIMIZED Valid MsgYesNo('Desea salir')
return nil


static proc ps_Child( oWnd )
local oChild
Define Window oChild MdiChild Title 'Child' of oWnd

Activate Window oChild On Init ps_Dialog(oChild) ON CLICK MsgInfo( "click" )
return


static proc ps_Dialog( oChild )
local oDlg, oBrush, aGet[4], aVar[4]

oBrush := tbrush():New(, nRgb(224, 236, 255) )
DEFINE DIALOG oDlg Resource "Dialogo" OF oChild TRANSPARENT Brush oBrush

aVar[1] := space(50)
Redefine Get aGet[1] Var aVar[1] Id 102 Update Message 'Indique el código del usuario' Of oDlg
aVar[2] := space(50)
Redefine Get aGet[2] Var aVar[2] Id 103 Update Message 'Indique el nombre del usuario' Of oDlg

aVar[3] := space(50)
Redefine Get aGet[3] Var aVar[3] Id 104 Update Message 'Indique el código de la empresa' Of oDlg
aVar[4] := space(50)
Redefine Get aGet[4] Var aVar[4] Id 105 Update Message 'Indique el nombre de la empresa' Of oDlg

ReDefine Button Id 2 Of oDlg Action oDlg:End()

ACTIVATE DIALOG oDlg NoWait On Init ps_Incrus( oChild, oDlg ) ;
   Valid If( MsgYesNo( "Want to end ?" ), oChild:End(), .F. )
return



static proc ps_Incrus(oChild, oDlg)
local nWidth, nHeight

oDlg:Move(0, 0,,, .T.)

nWidth  := oDlg:nWidth + 7
nHeight := oDlg:nHeight + 33
oChild:SetSize(nWidth, nHeight, .T.)
oChild:Center()
return
 


fgondi.rc
Code: Select all  Expand view  RUN
#include <windows.h>

DIALOGO DIALOG DISCARDABLE 0, 0, 305, 80
STYLE WS_CHILD|WS_VISIBLE
FONT 8, "MS Sans Serif"
{
  CONTROL "123", 102, "Edit", ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 86, 20, 39, 12
  CONTROL "123456", 103, "Edit", ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 133, 20, 146, 12
  CONTROL "12", 104, "Edit", WS_BORDER|WS_TABSTOP, 86, 48, 32, 12
  CONTROL "1", 105, "Edit", WS_BORDER|WS_TABSTOP, 133, 48, 105, 12
  CONTROL "Usuario:", -1, "Static", SS_CENTERIMAGE|WS_GROUP, 47, 22, 31, 12
  CONTROL "Empresa:", -1, "Static", SS_CENTERIMAGE|WS_GROUP, 47, 50, 31, 12
  CONTROL "Button", 2, "Button", WS_TABSTOP, 244, 48, 50, 14
}
 
regards, saludos

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

Re: Bug en 11.11 30/septiembre

Postby fgondi » Wed Dec 07, 2011 11:32 am

Antonio,

En el ejemplo funciona correctamente.
El problema lo tenía en un bitmap que muestro en el diálogo, y ya he dado con la solución.

Partiendo del ejemplo que indicas, incluimos un bitmap (da igual la imagen) en el dialogo:
Code: Select all  Expand view  RUN
DIALOGO DIALOG DISCARDABLE 0, 0, 361, 124
STYLE WS_CHILD|WS_VISIBLE
FONT 8, "MS Sans Serif"
{
  CONTROL "123", 102, "Edit", ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 86, 20, 39, 12
  CONTROL "123456", 103, "Edit", ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 133, 20, 146, 12
  CONTROL "12", 104, "Edit", WS_BORDER|WS_TABSTOP, 86, 48, 32, 12
  CONTROL "1", 105, "Edit", WS_BORDER|WS_TABSTOP, 133, 48, 105, 12
  CONTROL "Usuario:", -1, "Static", SS_CENTERIMAGE|WS_GROUP, 47, 22, 31, 12
  CONTROL "Empresa:", -1, "Static", SS_CENTERIMAGE|WS_GROUP, 47, 50, 31, 12
  CONTROL "Button", IDCANCEL, "Button", WS_TABSTOP, 244, 48, 50, 14
  CONTROL "", 106, "Static", SS_BITMAP|SS_CENTERIMAGE, 110, 68, 80, 43
}

login1 BITMAP "res1.bmp"
 


Ahora si redefinimos el bitmap antes que los get's no me permite escribir en el primer get
Code: Select all  Expand view  RUN
...
REDEFINE BITMAP oBmp ID 106 OF oDlg ResName 'login1' Adjust  

aVar[1] := space(2)
Redefine Get aGet[1] Var aVar[1] Id 102 Update Message 'Indique el código del usuario' Of oDlg
...
 


Sin embargo si el bitmap lo redefinimos después de los get's funciona correctamente.
Code: Select all  Expand view  RUN
...
aVar[4] := space(50)
Redefine Get aGet[4] Var aVar[4] Id 105 Update Message 'Indique el nombre de la empresa' Of oDlg

REDEFINE BITMAP oBmp ID 106 OF oDlg ResName 'login1' Adjust  
...
 
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: Bug en 11.11 30/septiembre

Postby fgondi » Wed Dec 07, 2011 11:51 am

Antonio,

No es sólo el bitmap.
en "tab index" (uso pelles como editor de recursos) indico que el primer get en el que se tiene que parar es el 102.

ahora en el código fuente los redifinimos cambiados, primero el id 103 y luego el id 102:
Code: Select all  Expand view  RUN
aVar[2] := space(50)
Redefine Get aGet[2] Var aVar[2] Id 103 Update Message 'Indique el nombre del usuario' Of oDlg
aVar[1] := space(2)
Redefine Get aGet[1] Var aVar[1] Id 102 Update Message 'Indique el código del usuario' Of oDlg
 


Al ejecutar la aplicación el cursor esta posicionado en el get con id 103 y no permite escribir.
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: Bug en 11.11 30/septiembre

Postby Antonio Linares » Wed Dec 07, 2011 11:56 am

Fernando,

Aqui deja escribir correctamente, modificando el ejemplo como tu indicas.

De todas formas, cuidado porque el control que se debe indicar en el RC para un bitmap no es ese:

CONTROL "", 106, "Static", SS_BITMAP|SS_CENTERIMAGE, 110, 68, 80, 43

sino:

CONTROL "", 106, "TBitmap", 0 | WS_CHILD | WS_VISIBLE, 110, 68, 80, 43
regards, saludos

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

Re: Bug en 11.11 30/septiembre

Postby Antonio Linares » Wed Dec 07, 2011 11:58 am

Fernando,

Aqui permite escribir perfectamente. Te envio las librerias más recientes para xHarbour
regards, saludos

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

Re: Bug en 11.11 30/septiembre

Postby fgondi » Wed Dec 07, 2011 12:34 pm

Antonio,

Con las nuevas librerías funciona perfectamente.

Gracias por la correción a la hora de definir un bitmap.


Con esto ya sólo me quedan 3 problemillas:
1.- El dibujo inicial del dialogo.

2.- pulsar esc teniendo el foco un campo CheckBox, DtPiker, TmPicker, RadMenu y no se si hay mas (Ademas he probado get y combobox y va bien)
Code: Select all  Expand view  RUN
#include "FiveWin.ch"

function Main()
local oWnd

Define Window oWnd Title "Principal" Mdi
oWnd:bInit     := {|| ps_Child(oWnd) }
Activate Window oWnd MAXIMIZED Valid MsgYesNo('Desea salir')
return nil


static proc ps_Child( oWnd )
local oChild
Define Window oChild MdiChild Title 'Child' of oWnd

Activate Window oChild On Init ps_Dialog(oChild)
return


static proc ps_Dialog( oChild )
local oDlg, oBrush, aGet[4], aVar[4]
local oCheck, lCheck

oBrush := tbrush():New(, nRgb(224, 236, 255) )
DEFINE DIALOG oDlg Resource "Dialogo" OF oChild TRANSPARENT Brush oBrush

Redefine CheckBox oCheck Var lCheck Id 106 Update Of oDlg

aVar[1] := space(2)
Redefine Get aGet[1] Var aVar[1] Id 102 Update Message 'Indique el código del usuario' Of oDlg
aVar[2] := space(50)
Redefine Get aGet[2] Var aVar[2] Id 103 Update Message 'Indique el nombre del usuario' Of oDlg

aVar[3] := space(50)
Redefine Get aGet[3] Var aVar[3] Id 104 Update Message 'Indique el código de la empresa' Of oDlg
aVar[4] := space(50)
Redefine Get aGet[4] Var aVar[4] Id 105 Update Message 'Indique el nombre de la empresa' Of oDlg

ReDefine Button Id 2 Of oDlg Action oDlg:End()

ACTIVATE DIALOG oDlg NoWait On Init ps_Incrus( oChild, oDlg ) Valid .F.
return



static proc ps_Incrus(oChild, oDlg)
local nWidth, nHeight

oDlg:Move(0, 0,,, .T.)

nWidth  := oDlg:nWidth + 7
nHeight := oDlg:nHeight + 33
oChild:SetSize(nWidth, nHeight, .T.)
oChild:Center()
return


Code: Select all  Expand view  RUN
DIALOGO DIALOG DISCARDABLE 0, 0, 305, 80
STYLE WS_CHILD|WS_VISIBLE
FONT 8, "MS Sans Serif"
{
  CONTROL "123", 102, "Edit", ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 86, 20, 39, 12
  CONTROL "123456", 103, "Edit", ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 133, 20, 146, 12
  CONTROL "12", 104, "Edit", WS_BORDER|WS_TABSTOP, 86, 48, 32, 12
  CONTROL "1", 105, "Edit", WS_BORDER|WS_TABSTOP, 133, 48, 105, 12
  CONTROL "Usuario:", -1, "Static", SS_CENTERIMAGE|WS_GROUP, 47, 22, 31, 12
  CONTROL "Empresa:", -1, "Static", SS_CENTERIMAGE|WS_GROUP, 47, 50, 31, 12
  CONTROL "Check-box", 106, "Button", BS_AUTOCHECKBOX|WS_TABSTOP, 100, 65, 48, 10
}
 


3.- CTRL+V sobre el campo aget[1] (102) que esta definido a 2 caracteres. avar[1] := space(2)
Copiamos al clipboar la palabra hola y la pegamos en el get[1] definido a space(2).
El resultado del get[1] es "hola " (hola + los 2 espacios iniciales)
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: Bug en 11.11 30/septiembre

Postby fgondi » Wed Dec 07, 2011 12:57 pm

Antonio,

Otro problemilla mas:
Ya me ha aparecido varias veces el siguiente error:
descripción detallada del error
-------------------------------
Error BASE/1070 Error de argumento: ==
Parameter :
[ 1] = O TBUTTON
[ 2] = N 0

Lista de la pila
----------------
llamado por TWINDOW:DESTROY(2059)
llamado por (b)TDIALOG:TDIALOG(83)
llamado por TDIALOG:DESTROY(0)
llamado por TLINDAT:EJECUTAR(709)
llamado por (b)TLINDAT:ENABLE(605)
llamado por (b)TLINDAT:EDIT(546)
llamado por TCONTROL:GOTFOCUS(1192)
llamado por TBUTTON:GOTFOCUS(211)
llamado por TWINDOW:HANDLEEVENT(0)
llamado por TBUTTON:HANDLEEVENT(1711)
llamado por _FWH(3159)
llamado por SETFOCUS(0)
llamado por TDIALOG:GONEXTCTRL(2673)
llamado por TGGET:KEYCHAR(1094)
llamado por TWINDOW:HANDLEEVENT(0)
llamado por TCONTROL:HANDLEEVENT(1711)
llamado por TGGET:HANDLEEVENT(580)
llamado por _FWH(3159)
llamado por WINRUN(0)
llamado por TMDIFRAME:ACTIVATE(989)
llamado por MAIN(62)
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

Re: Bug en 11.11 30/septiembre

Postby Antonio Linares » Wed Dec 07, 2011 1:09 pm

Fernando,

1. Solucionado (a falta de que lo confirmes), te envio nuevas librerias, gracias! :-)
regards, saludos

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

Re: Bug en 11.11 30/septiembre

Postby Antonio Linares » Wed Dec 07, 2011 1:15 pm

Fernando,

El error que comentas (en el error.log) puede deberse a que se le esté pasando un tipo de valor incorrecto al Método End() del diálogo, en vez de un valor numérico.

Hemos modificado la clase para proteger ese posible error, te envio nuevamente las librerias, gracias! :-)
regards, saludos

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

Re: Bug en 11.11 30/septiembre

Postby fgondi » Wed Dec 07, 2011 4:20 pm

Antonio,

Sigue mas o menos igual.

1.- Dibujo de pantalla
Sigue apareciendo la pantalla de recurso antes de redefinirse.

2.- Esc en CheckBox, etc.
Si es cierto que ahora al pulsar Esc no se cierra sólo el dialogo.
Ahora se cierra tanto el dialogo como el mdi.
Pero se cierra siempre, aunque el valid del dialogo sea .F.

3.-CTRL+V en campo get
Sigo igual

4.- Error en TWINDOW:DESTROY(2059)
Sigo teniendo el error.
Lo que hacía antes y sigo haciendo ahora es :
oDlg:End()
oDlg:Destroy()

y el error salta en la llamada al Destroy:
Error BASE/1070 Error de argumento: ==
Parameter :
[ 1] = O TBUTTON
[ 2] = N 0

Lista de la pila
----------------
llamado por TWINDOW:DESTROY(2059)
llamado por (b)TDIALOG:TDIALOG(83)
llamado por TDIALOG:DESTROY(0)
...
Un saludo
Fernando González Diez
ALSIS Sistemas Informáticos
User avatar
fgondi
 
Posts: 694
Joined: Fri Oct 07, 2005 6:58 am
Location: Palencia, España

PreviousNext

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 48 guests