Page 1 of 1

WBrowse Hernan 17 FTDN Agosto

PostPosted: Fri Sep 08, 2006 9:31 pm
by mag071
Saludos,

Soy usuario de FTDN con la ultima version ya pude compilar y ejecutar pero como no pude generar de nuevo la lib del wbrowse y como uso verce lo que hice fue añadir los PRG y el wbrwline.c al proyecto y todo comenzo bien, ahora cuando estoy intentando mostrar un archivo de texto via browse con oLbx:SetTXT( cArchivo ) alli me revienta la aplicacion generandome el siguiente error
Error description: Error BASE/1092 Argument error: MIN
Args:
[ 1] = N 1
[ 2] = U

Stack Calls
===========
Called from: => MIN(0)
Called from: => TWBROWSE:DEFAULT(1820)

si alguien pudo crear la LIB con esta version se lo agradeceria
esto es cuando intento ver un archivo de texto por el browse ya que con registros dbf y arreglos todo ok.

uso Harbour Compiler Alpha build 46.2 (Flex)
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
Ftdn Agosto

Gracias.

PostPosted: Fri Sep 08, 2006 11:16 pm
by Antonio Linares
Mario,

Que código hay en la línea 1820 ?

PostPosted: Sat Sep 09, 2006 1:39 am
by mag071
Antonio,

En la linea 1820
if lAnd( GetWindowLong( ::hWnd, GWL_STYLE ), WS_VSCROLL ) .or. ;
GetClassName( ::hWnd ) == "ListBox"

::nLen := Eval( ::bLogicLen )
If ::bLogicPos == Nil // CeSoTech
DEFINE SCROLLBAR ::oVScroll VERTICAL OF Self ;
RANGE Min(1, ::nLen), ::nLen
Else
DEFINE SCROLLBAR ::oVScroll VERTICAL OF Self RANGE 1, If(::nLen==0,0,100)
EndIf
::oVScroll:SetPage( Min( ::nRowCount(), ::nLen - 1 ) )

endif

este wbrowse lo baje desde la direccion
http://hyperupload.com/download/026cd92 ... r.exe.html
en la seccion utilidades de este foro con el titulo de Hernan Browse - files.

Gracias

PostPosted: Sat Sep 09, 2006 7:37 am
by Antonio Linares
Mario,

Inserta este MsgInfo() para comprobar el valor de ::nLen
Code: Select all  Expand view
If ::bLogicPos == Nil // CeSoTech
   MsgInfo( ::nLen )
   DEFINE SCROLLBAR ::oVScroll VERTICAL OF Self ;
      RANGE Min(1, ::nLen), ::nLen

y dinos que valor te aparece. Gracias

PostPosted: Sat Sep 09, 2006 2:29 pm
by mag071
Antonio ,

MsgInfo( ::nLen )
me retorna NIL

Gracias.

PostPosted: Sat Sep 09, 2006 10:56 pm
by Antonio Linares
Mario,

Eso quiere decir que ::bLogicLen no está bien definido, ya que debería retornar el número de registros. De ahí el error al hacer el Min()

PostPosted: Sat Sep 09, 2006 11:23 pm
by mag071
::bLogicLen cuando entro a un browse en la misma aplicacion por ejemplo en browse dentro de folder si me retorna el numero de registros solo me pasa cuando lo hago con oLbx:SetTXT( Archivo.TXT )

PostPosted: Sat Sep 09, 2006 11:45 pm
by mag071
aqui se nota que si esta definida ::bLogicLen
METHOD SetTXT( uTXT ) CLASS TWBrowse
LOCAL cType, oTXT

DEFAULT uTXT:= ""
cType:= Valtype( uTXT )

If cType == "C"
If !File( uTXT )
uTXT:= cGetFile( "*.txt", "Text Files" )
If !File( uTXT )
return .F.
EndIf
EndIf
::oTXT:= oTXT:= TTxtFile():New( uTXT, 0 )
ElseIf cType == "O"
oTXT:= uTXT
Else
return .F.
EndIf

::lDrawHeaders := .F.
::aHeaders := { "" }
::aJustify := { .F. }
::aColSizes := { 2000 }
::nLineStyle := 0
::cAlias := "_TXT_"
::bLine := { |cLine| cLine:= oTXT:ReadLine(),;
If( IsOem( cLine ), cLine:= OemToAnsi( cLine ),),;
{ SubStr( cLine, ::nTXTFrom ) } }
::bLogicLen := { || ::nLen := oTXT:RecCount() }
::bLogicPos := nil
::bGoLogicPos := nil
::bGoTop := { || oTXT:GoTop() }
::bGoBottom := { || oTXT:GoBottom() }
::bSkip := { | nSkip, nOld | nOld:= oTXT:RecNo(), ;
oTXT:Skip( nSkip ), ;
oTXT:RecNo() - nOld }
return nil

lo que pasa es que estoy observando otro comportamiento extraño con archivos de textos dentro de mi aplicacion.
que es cuando hago un copy file

COPY FILE "\LOTERV32\RC\VACIA.TXT" TO &(cFile)
por primera vez me lo ejecuta sin problemas cuando lo hago en la segunda me genera el siguiente error :
Application
===========
Path and name: H:\LOTERV32\VENDELOT.Exe (32 bits)
Size: 625,152 bytes
Time from start: 0 hours 0 mins 19 secs
Error occurred at: 09/09/2006, 19:43:15
Error description: (DOS Error 32) BASE/2012 Create error: \loterV32\UltTik.txt

Stack Calls
===========
Called from: => __COPYFILE(0)
Called from: => TVENTAS:IMPRIMIRT4(6940)
Called from: => TVENTAS:HACERTICKET(5438)

pero cuando pasa por la linea la segunda vez la primera vez lo crea sin problema.

la otra que otras opciones tengo para mostrar un archivo de texto en un dialogo y que de otras maneras puedo hacer un copy file

Gracias.

PostPosted: Sun Sep 10, 2006 12:07 am
by Antonio Linares
Mario,

oTXT:RecCount() debe estar devolviendo nil. Quizá el fichero no se ha podido abrir y ese es el problema.

DOS error 32 es error de compartición. Tu aplicación tiene el fichero abierto aún y por eso no puedes sobreescribirlo. Ciérralo antes.

PostPosted: Sun Sep 10, 2006 3:26 am
by mag071
lo extraño es que es una aplicacion que ya estaba funcionando sin ninguna modificacion con el FTDN Junio del año pasado sin estos problemas
y lo que pasa es que ya no puedo hechar atras porque ya le meti a los dialogos brush transparente y funciones de los ultimos FTDN se que debe haber algo ahora con los TXT pero como no soy un experto en esto no se que decirte ahora que otra forma puedo crear un archivo de texto yo usaba hasta ahora tdosprn y disculpa la pregunta ando como bruto hoy :-) algun ejemplo en fwh/samples
Muchas Gracias Antonio.

PostPosted: Sun Sep 10, 2006 6:48 am
by Antonio Linares
Mario,

Que tamaño tiene el fichero de texto que vas a mostrar ?

PostPosted: Sun Sep 10, 2006 1:39 pm
by mag071
Son Archivos pequeños. que van entre 1Kb. hasta 40Kb

PostPosted: Sun Sep 10, 2006 1:55 pm
by Antonio Linares
Mario,

Entonces podrías usar un GET multilínea ó un RichEdit si quieres que el texto tenga distintos colores y fonts.

PostPosted: Sun Sep 10, 2006 3:09 pm
by mag071
Antonio,

Muy agradecido por tus comentarios me funciono un get multilinea
todo ok.

Gracias.