Antonio, error en FWH 12.06

Antonio, error en FWH 12.06

Postby Cgallegoa » Mon Jul 16, 2012 7:52 pm

Hola Antonio,

En el siguiente código, si se pone la cláusula TRANSPARENT en el Diálogo genera error:
Code: Select all  Expand view
#include "FiveWin.ch"

Function Inicio()
   LOCAL oDlg, nRow:=10, i
   LOCAL aDatos[5]
   aDatos[1] := "Say uno"
   aDatos[2] := "Say dos"
   aDatos[3] := "Say tres"
   aDatos[4] := "Say cuatro"
   aDatos[5] := "Say cinco"
   DEFINE DIALOG oDlg FROM 0,0 TO 400, 300 PIXEL TRANSPARENT
      For i:=1 TO Len(aDatos)
          @ nRow, 10 SAY VAR aDatos[i] OF oDlg PIXEL
          nRow+=10
      next
   ACTIVATE DIALOG oDlg CENTERED
Return(NIL)

El error que presenta es:
[.\errsysw.prg->ERRORDIALOG] (78) Called from:
.\errsysw.prg->(b)ERRORSYS(49)
.\PRUEBA1.prg->(b)INICIO(17)
.\source\classes\SAY.PRG->(b)TSAY:TSAY(50)
->TSAY:REFRESH(0)
.\source\classes\WINDOW.PRG->(b)TWINDOW:TWINDOW(562)
->TSAY:SETBRUSH(0)
.\source\classes\CONTROL.PRG->TCONTROL:INITIATE(393)
.\source\classes\SAY.PRG->TSAY:INITIATE(190)
->__OBJSENDMSG(0)
->HB_EXECFROMARRAY(0)
.\source\function\HARBOUR.PRG->OSEND(219)
->HB_EXECFROMARRAY(0)
.\source\function\HARBOUR.PRG->ASEND(197)
DIALOG.PRG->TDIALOG:INITIATE(630)
DIALOG.PRG->TDIALOG:HANDLEEVENT(875)
->DIALOGBOXINDIRECT(0)
DIALOG.PRG->TDIALOG:ACTIVATE(270)
.\PRUEBA1.prg->INICIO(22)
Type: C >>>array access<<<
Type: C >>>Bound error<<<
Type: N >>> 17<<<

Hasta la versión FWH 10.10 funcionaba perfecto. Cómo puedo resolverlo ?

Gracias por tu ayuda,

Carlos Gallego
Saludos,

Carlos Gallego

*** FWH-23.10, xHarbour 1.2.3 Build 20190603, Borland C++7.30, PellesC ***
Cgallegoa
 
Posts: 414
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: Antonio, error en FWH 12.06

Postby Antonio Linares » Tue Jul 17, 2012 8:54 am

Carlos,

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

Function Inicio()
   LOCAL oDlg, nRow:=10, i
   LOCAL aDatos[5], cDato
   aDatos[1] := "Say uno"
   aDatos[2] := "Say dos"
   aDatos[3] := "Say tres"
   aDatos[4] := "Say cuatro"
   aDatos[5] := "Say cinco"
   DEFINE DIALOG oDlg FROM 0,0 TO 400, 300 PIXEL TRANSPARENT
      For i:=1 TO Len(aDatos)
          @ nRow, 10 SAY Space( 20 ) OF oDlg PIXEL
          ATail( oDlg:aControls ):VarPut( aDatos[ i ] )
          nRow+=10
      next
   ACTIVATE DIALOG oDlg CENTERED
Return(NIL)
 


El problema es que se cambió la clase SAY para poder mostrar el texto de una variable que pueda cambiar de valor, y eso crea un conflicto al referenciar un elemento de un array por un indice variable tambien, debido a que se crea un codeblock a partir de la expresion a mostrar.
regards, saludos

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

Re: Antonio, error en FWH 12.06

Postby Cgallegoa » Tue Jul 17, 2012 9:18 pm

Antonio gracias por tu ayuda.

Revisando la clase Say lo resolví de otra manera, pues como tu me sugieres funciona bien pero me toca hacer muchos cambios. El código es super largo :-(

Code: Select all  Expand view
Function Inicio()
  LOCAL oDlg, nRow:=10, i, oFallaFWH, oBrush
  LOCAL aDatos[5]
  aDatos[1] := "Say uno"
  aDatos[2] := "Say dos"
  aDatos[3] := "Say tres"
  aDatos[4] := "Say cuatro"
  aDatos[5] := "Say cinco"
  DEFINE BRUSH oBrush STYLE TILED
  DEFINE DIALOG oDlg FROM 0,0 TO 400, 300 PIXEL TRANSPARENT
     oDlg:oBrush := oBrush
     For i:=1 TO Len(aDatos)
         @ nRow, 10 SAY oSay VAR aDatos[i] OF oDlg PIXEL
         nRow+=10
         oSay:bGet := NIL    // ***** Con esto me funciona bien *****
     next
  ACTIVATE DIALOG oDlg CENTERED
Return(NIL)
 

Te parece bien mi solución, no causará conflictos ?

Gracias y saludos,

Carlos Gallego
Saludos,

Carlos Gallego

*** FWH-23.10, xHarbour 1.2.3 Build 20190603, Borland C++7.30, PellesC ***
Cgallegoa
 
Posts: 414
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador

Re: Antonio, error en FWH 12.06

Postby Antonio Linares » Tue Jul 17, 2012 10:22 pm

Carlos,

Muy bien y muy simple, gracias :-)
regards, saludos

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 84 guests