FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour FWH 26.03 buscamos betatesters
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: FWH 26.03 buscamos betatesters
Posted: Wed Apr 01, 2026 07:31 PM
Application
===========
   Path and name: C:\FWH2603\samples\autolay.exe (32 bits)
   Size: 5,080,576 bytes
   Compiler version: xHarbour 1.3.2 Intl. (SimpLex) (Build 20260103)
   FiveWin version: FWH 26.03
   C compiler version: Borland/Embarcadero C++ 7.7 (32-bit)
   Windows 11 64 Bits, version: 6.2, Build 9200 

   Time from start: 13 sec
   Error occurred at: 04/01/26, 16:23:18
   Error description: Error FiveWin/3  Cannot create Dialog Box: 
                      Resource: Dbf2RC

Stack Calls
===========
   Called from: source\classes\dialog.prg => CREATEDLGERROR( 835 )
   Called from: source\classes\dialog.prg => TDIALOG:ACTIVATE( 340 )
   Called from: autolay.prg => LAY( 138 )
   Called from: autolay.prg => (b)BUILDMENU( 83 )
   Called from: source\classes\menu.prg => TMENU:COMMAND( 1621 )
   Called from: source\classes\window.prg => TWINDOW:COMMAND( 1246 )
   Called from: source\classes\mdiframe.prg => TMDIFRAME:COMMAND( 278 )
   Called from:  => TMDIFRAME:HANDLEEVENT( 0 )
   Called from: source\classes\window.prg => _FWH( 1076 )
   Called from:  => WINRUN( 0 )
   Called from: source\classes\window.prg => TMDIFRAME:ACTIVATE( 1205 )
   Called from: autolay.prg => MAIN( 63 )

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: FWH 26.03 buscamos betatesters
Posted: Wed Apr 01, 2026 07:41 PM

Arreglado, gracias! :)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: FWH 26.03 buscamos betatesters
Posted: Thu Apr 02, 2026 05:20 PM
Application
===========
   Path and name: C:\FWH2603\samples\fwbrow.exe (32 bits)
   Size: 5,049,344 bytes
   Compiler version: xHarbour 1.3.2 Intl. (SimpLex) (Build 20260103)
   FiveWin version: FWH 26.03
   C compiler version: Borland/Embarcadero C++ 7.7 (32-bit)
   Windows 11 64 Bits, version: 6.2, Build 9200 

   Time from start: 13 sec
   Error occurred at: 04/02/26, 14:16:30
   Error description: (DOS Error 2) DBFNTX/1002  Open error: C:\FWH2603\samples\scripts.fpt

Stack Calls
===========
   Called from:  => DBUSEAREA( 0 )
   Called from: fwbrow.prg => OPENDBF( 389 )
   Called from: fwbrow.prg => (b)MAIN( 27 )
   Called from: source\classes\btnbmp.prg => TBTNBMP:CLICK( 820 )
   Called from: source\classes\btnbmp.prg => TBTNBMP:LBUTTONUP( 1107 )
   Called from: source\classes\control.prg => TCONTROL:HANDLEEVENT( 1896 )
   Called from: source\classes\btnbmp.prg => TBTNBMP:HANDLEEVENT( 2150 )
   Called from: source\classes\window.prg => _FWH( 1076 )
   Called from:  => WINRUN( 0 )
   Called from: source\classes\window.prg => TWINDOW:ACTIVATE( 1205 )
   Called from: fwbrow.prg => MAIN( 46 )

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: FWH 26.03 buscamos betatesters
Posted: Thu Apr 02, 2026 06:11 PM

Maestro Antonio, ¿dónde están estos controles?

   oBrw:lAllowRowSizing := .F. // Disable row height resizing
   oBrw:lAllowColSwapping := .F. // Disable column swapping
   oBrw:lAllowColHiding := .F. // Disable hiding columns
   oBrw:lAllowSizing := .F. // Disable resizing column width

Gracias, tks.

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: FWH 26.03 buscamos betatesters
Posted: Wed Apr 08, 2026 12:11 PM

Antonio, tengo problemas con esta version con la clase TMultiget, los valores no se guardan en la variable luego de la edicion, siempre devuelve un valor en blanco. Lo estoy usando desde recurso. Hay algo que tenga que tener en cuenta?
El rc lo defino así:

CONTROL "Observaciones:", -1, "Static", SS_RIGHT|WS_GROUP, 248, 152, 60, 8
  CONTROL "", 123, "Edit", ES_MULTILINE|ES_AUTOHSCROLL|ES_AUTOVSCROLL|WS_BORDER|WS_TABSTOP, 312, 148, 220, 40

Y el prg asi:

REDEFINE GET oGet[14] VAR base:observa   ID 123 OF oForm MULTILINE

Pero siempre devuelve vacio.
Tampoco veo la clase en source
Espero tus comentarios

Posts: 132
Joined: Thu Mar 08, 2007 06:12 PM
Re: FWH 26.03 buscamos betatesters
Posted: Wed Apr 08, 2026 11:38 PM

Saludos,
Antonio, así como comenta Cesar me sucede igual con la TMultiGet, adjunto código y rc.
Hice las pruebas compilando con Bcc77 32 Bit y Msvc2022 64 Bit
Fivetest.prg

#include "Fivewin.ch"
#include "TTitle.ch"
#include "Common.ch"
*--
#define COLOR_WINDOW      5
#define COLOR_WINDOWTEXT  8
*--
#define COLOR_DESKTOP GETSYSCOLOR( COLOR_WINDOWTEXT ), GETSYSCOLOR( COLOR_WINDOW )
*--
MEMVAR oApp
STATIC oProve
*--
PROCEDURE Main()
*--

   PUBLIC oApp := TAplication():New()
   oApp:Run()

RETURN
*--
*
*--
CLASS TAplication
*--
   PROTECTED:
   *--
   DATA oMsgBar
   DATA oIconApp
   DATA oMenuApp
   *--
   DATA oFontApp AS OBJECT INIT TFont():New("Segoe UI", 0, -14)
   DATA oFontTit AS OBJECT INIT TFont():New("Verdana", 0, -16,,TRUE)
   *--
   METHOD MenuApp()
   *--
   EXPORTED:
   *--
   DATA oWndMain
   *--
   METHOD New()
   METHOD Run()
   METHOD End()
   *--
   METHOD GetIconSys() INLINE ::oIconApp
   METHOD GetFontTit() INLINE ::oFontTit
   METHOD GetFontApp() INLINE ::oFontApp
   *--
ENDCLASS
*--
*
*--
METHOD New() CLASS TAplication
*--

   DEFINE ICON ::oIconApp FILE "C:\Fwh\icons\fivetech.ico"
   *--

RETURN Self
*--
*
*--
METHOD Run() CLASS TAplication
*--

   DEFINE WINDOW ::oWndMain ;
      TITLE FWVERSION   ;
      ICON ::oIconApp   ;
      MENU ::MenuApp()  ;
      COLOR COLOR_DESKTOP MDI PIXEL
      *--
      ::oWndMain:SetFont( ::oFontApp )
      DEFINE MSGBAR ::oMsgBar OF ::oWndMain PROMPT FWDESCRIPTION + " " + HB_Compiler()  2010
      *--
      WITH OBJECT ::oWndMain
         *--
         :oMsgBar:KeybOn()
         :oMsgBar:DateOn()
         *--
         :bValid := {|| ::End() }
		END
      *--
	ACTIVATE WINDOW ::oWndMain MAXIMIZED

RETURN NIL
*--
*
*--
METHOD End() CLASS TAplication
*--

   IF ! MsgYesNo("¿Seguro de Salir?",FWVERSION)

  RETURN FALSE

   ENDIF
   *--
   ::oFontApp:End()
   *--
   RELEASE ALL
   HB_SYMBOL_UNUSED( oApp )
   *--
   FreeResources()
   Hb_GCall( TRUE )
   *--
   CLEAR MEMORY
   *--
   IF HB_FileExists("checkres.txt")
      FErase("checkres.txt")
   ENDIF
   *--
   CheckRes()

RETURN TRUE
*--
*
*--
METHOD MenuApp() CLASS TAplication
*--

   LOCAL oMenu
   *--
   Menu oMenu
      MenuItem "&Opciones"
      Menu
         MenuItem "Proveedores" ACTION Proveedores(Self)
         Separator
         MenuItem "Salir" ACTION ::oWndMain:End()
      EndMenu
   EndMenu

RETURN oMenu
*--
*
*--
PROCEDURE Proveedores(Self)
*--

   oProve := ProveedoresController():New( ProveedorDAO():Default(), ProveedorView():New(), Self )
   oProve:Run()

RETURN
*--
*
*--
CLASS ProveedoresController
*--

   PROTECTED:
   *--
   METHOD UpdateValues()
   *--
   EXPORTED:
   *--
   DATA oCtrl
   DATA oView
   DATA oModel
   DATA oParent
   DATA oModelDAO
   *--
   METHOD New()
   METHOD Run()
   *--
   METHOD Init()
   METHOD Find()
   METHOD Save()
   *--
   METHOD Delete()
   METHOD GetModel() INLINE ::oModel
   METHOD ValidaCodigo()

ENDCLASS
*--
*
*--
METHOD New(oModel, oView, oCtrl) CLASS ProveedoresController
*--

   ::oModel := oModel
   ::oView  := oView
   ::oCtrl  := oCtrl
   *--
   ::oParent := oCtrl
   ::oModelDAO := ProveedorDAO():New()

RETURN Self
*--
*
*--
METHOD Run() CLASS ProveedoresController
*--

   ::oView:SetController(Self)
   ::oView:Show()
   ::UpdateValues()

RETURN NIL
*--
*
*--
METHOD Init() CLASS ProveedoresController
*--

   ::oModel := ::oModelDAO:Default()
   ::UpdateValues()

RETURN NIL
*--
*
*--
METHOD Find() CLASS ProveedoresController
*--

   MsgInfo( "Aquí Muestra el buscador de datos",FWVERSION)

RETURN NIL
*--
*
*--
METHOD Save() CLASS ProveedoresController
*--

   MsgInfo( "Aquí graba los datos",FWVERSION)

RETURN NIL
*--
*
*--
METHOD Delete() CLASS ProveedoresController
*--

   MsgInfo( "Aquí eliina los datos",FWVERSION)

RETURN NIL
*--
*
*--
METHOD UpdateValues() CLASS ProveedoresController
*--

   LOCAL sRecord := ""
   *--
   IF ( Empty( sRecord ) )
      ::oView:SetTitle(" Proveeores - [ Archivo Vacio ]" )
   ELSE
      ::oView:SetTitle(" Proveedores - [ Ultimo " + sRecord + " ]")
	ENDIF
   *--
   ::oView:oGetCodigo:cText( ::oModel:GetCodigo() )
   ::oView:oGetNombre:cText( ::oModel:GetNombre() )
   *--
   ::oView:oGetRif:cText( ::oModel:GetRif() )
   ::oView:oGetNit:cText( ::oModel:GetNit() )
   *--
   ::oView:oGetRetiva:cText( ::oModel:GetRetencionIva() )
   ::oView:oGetRetIslr:cText( ::oModel:GetRetencionISLR() )
   *--
   ::oView:oGetDias:cText( ::oModel:GetDiasdeCredito() )
   ::oView:oGetLimite:cText( ::oModel:GetLimitedeCredito() )
   *--
   ::oView:oGetTelefonos:cText( ::oModel:GetTelefonos() )
   *--
   ::oView:oGetDireccion:cText( ::oModel:GetDireccion() )
   ::oView:oGetEmail:cText( ::oModel:GetEmail() )
   *--
   ::oView:oGetContacto:cText( ::oModel:GetContacto() )
   *--
   ::oView:oGetRetiva:cText( ::oModel:GetRetencionIva() )
   ::oView:oGetRetislr:cText( ::oModel:GetRetencionISLR() )
   *--
   ::oView:oGetDias:cText( ::oModel:GetDiasdecredito() )
   ::oView:oGetLimite:cText( ::oModel:GetLimitedecredito() )
   *--
   ::oView:oGetActivo:SetCheck( ::oModel:GetActivo() )
   *--
   ::oView:Refresh()
   *--
   IF ( ::oModel:GetId() == 0 .AND. Empty(::oView:oGetCodigo:GetText() ) )
      ::oView:oGetCodigo:SetFocus()
   ELSE
      ::oView:oGetNombre:SetFocus()
   ENDIF

RETURN NIL
*--
*
*--
METHOD ValidaCodigo() CLASS ProveedoresController
*--

RETURN TRUE
*--
*
*--
CLASS ProveedorDAO
*--

   DATA sTablename
   *--
   METHOD New()
   *--
   METHOD Create()
   METHOD Read()
   METHOD Update()
   METHOD Delete()
   *--
   METHOD Default()
   METHOD FindById()
   METHOD LastRecord(oController) INLINE ::Super:GetLastRecord(oController)

ENDCLASS
*--
*
*--
METHOD New() CLASS ProveedorDAO
*--

   ::sTableName := "proveedores"

RETURN Self
*--
*
*--
METHOD Create(oController,sCodigo) CLASS ProveedorDAO
*--

   LOCAL oModel := ::Read(oController,sCodigo)
   *--
   IF ( Empty(oModel) )
      *--
      oModel := ::Default()
      *--
      IF ( ! Empty(sCodigo) )
         oModel:SetCodigo(sCodigo)
		ENDIF
      *--
   ENDIF

RETURN oModel
*--
*
*--
METHOD Read(oController,sCodigo) CLASS ProveedorDAO
*--

   LOCAL oRs
   LOCAL oError
   LOCAL oModel := ""

RETURN oModel
*--
*
*--
METHOD Update(oController,oModel) CLASS ProveedorDAO
*--

   LOCAL sQuery, oError
   LOCAL lResult := TRUE
   *--

RETURN lResult
*--
*
*--
METHOD Delete(oController,oModel) CLASS ProveedorDAO
*--

   LOCAL oError
   LOCAl lResult := TRUE
   *--

RETURN lResult
*--
*
*--
METHOD Default() CLASS ProveedorDAO
*--

   LOCAL oModel := Proveedor():New(;
      0,;
      Space(10),;
      Space(80),;
      Space(20),;
      Space(20),;
      Space(50),;
      Space(200),;
      Space(80),;
      Space(80),;
      0, 0, 0, 0,;
      Space(25),;
      TRUE,;
      DateTime(),;
      DateTime();
   )

RETURN oModel
*--
*
*--
METHOD FindById(oController,nId) CLASS ProveedorDAO
*--

   LOCAL oRs
   LOCAL oError
   LOCAL oModel := ""
   *--

RETURN oModel
*--
*
*--
CLASS Proveedor
*--
   PROTECTED:
      *--
      DATA id, codigo, nombre, rif, nit, telefonos, direccion, email
      DATA retencioniva, retencionislr, diasdecredito, limitedecredito
      DATA contacto, cuentacontable, activo, created, modified
      *--
   EXPORTED:
      *--
      METHOD New()
      *--
      METHOD SetId(nValue) INLINE ::id := nValue
      METHOD GetId()       INLINE ::id
      *--
      METHOD SetCodigo(sValue) INLINE ::codigo := sValue
      METHOD GetCodigo()       INLINE ::codigo
      *--
      METHOD SetNombre(sValue) INLINE ::nombre := sValue
      METHOD GetNombre()       INLINE ::nombre
      *--
      METHOD SetRif(sValue) INLINE ::rif := sValue
      METHOD GetRif()       INLINE ::rif
      *--
      METHOD SetNit(sValue) INLINE ::nit := sValue
      METHOD GetNit()       INLINE ::nit
      *--
      METHOD SetTelefonos(sValue) INLINE ::telefonos := sValue
      METHOD GetTelefonos()       INLINE ::telefonos
      *--
      METHOD SetDireccion(sValue) INLINE ::direccion := sValue
      METHOD GetDireccion()       INLINE ::direccion
      *--
      METHOD SetEmail(sValue) INLINE ::email := sValue
      METHOD GetEmail()       INLINE ::email
      *--
      METHOD SetContacto(sValue) INLINE ::contacto := sValue
      METHOD GetContacto()       INLINE ::contacto
      *--
      METHOD SetRetencionIva(nValue) INLINE ::retencioniva := nValue
      METHOD GetRetencionIva()       INLINE ::retencioniva
      *--
      METHOD SetRetencionISLR(nValue) INLINE ::retencionislr := nValue
      METHOD GetRetencionISLR()       INLINE ::retencionislr
      *--
      METHOD SetDiasdecredito(nValue) INLINE ::diasdecredito := nValue
      METHOD GetDiasdecredito()       INLINE ::diasdecredito
      *--
      METHOD SetLimitedecredito(nValue) INLINE ::limitedecredito := nValue
      METHOD GetLimitedecredito()       INLINE ::limitedecredito
      *--
      METHOD SetCuentaContable(sValue) INLINE ::cuentacontable := sValue
      METHOD GetCuentaContable()       INLINE ::cuentacontable
      *--
      METHOD SetActivo(lValue) INLINE ::activo := lValue
      METHOD GetActivo()       INLINE ::activo
      *--
      METHOD SetCreated(dValue) INLINE ::created := dValue
      METHOD GetCreated()       INLINE ::created
      *--
      METHOD SetModified(dValue) INLINE ::modified := dValue
      METHOD GetModified()       INLINE ::modified
      *--

ENDCLASS
*--
*
*--
METHOD New(nId, sCodigo, sNombre,sRif, sNit, sTelefonos, sDireccion, sEmail,;
   sContacto, nRetencionIva, nRetencionIslr, nDias, nLimite, sCuentaContable,;
   lActivo,dCreated,dModified) CLASS Proveedor
*--

   ::id := IIF( HB_IsNIL(nId), 0, nId )
   *--
   ::codigo := IIF( HB_IsNIL(sCodigo), Space(10), sCodigo )
   ::nombre := IIF( HB_IsNIL(sNombre), Space(80), sNombre )
   *--
   ::rif    := IIF( HB_IsNIL(sRif), Space(20), sRif )
   ::nit    := IIF( HB_IsNIL(sNit), Space(20), sNit )
   *--
   ::telefonos := IIF( HB_IsNIL(sTelefonos), Space(40), sTelefonos )
   ::direccion := IIF( HB_IsNIL(sDireccion), Space(200), sDireccion )
   ::email     := IIF( HB_IsNIL(sEmail), Space(80), sEmail )
   ::contacto  := IIF( HB_IsNIL(sContacto), Space(80), sContacto )
   *--
   ::retencioniva  := IIF( HB_IsNIL(nRetencionIva), 0, nRetencionIva )
   ::retencionislr := IIF( HB_IsNIL(nRetencionIslr), 0, nRetencionIslr )
   *--
   ::diasdecredito   := IIF( HB_IsNIL(nDias), 0, nDias )
   ::limitedecredito := IIF( HB_IsNIL(nLimite), 0, nLimite )
   *--
   ::cuentacontable := IIF( HB_IsNIL(sCuentaContable), Space(25), sCuentaContable )
   ::activo := IIF( HB_IsNIL(lActivo), FALSE, lActivo )
   *--
   ::created  := IIF( HB_IsNIL(dCreated), DateTime(), dCreated )
   ::modified := IIF( HB_IsNIL(dModified), DateTime(), dModified )

RETURN Self
*--
*
CLASS ProveedorView
   *--
   PROTECTED:
      *--
      DATA oCtrl, oParent
      DATA oTitle, oGroup
      *--
      DATA sCodigo, sNombre, sRif, sNit, sTelefonos, sDireccion, sEmail
      DATA sContacto, nRetencionIva, nRetencionIslr, nDias, nLimite
      DATA sCuentaContable, lActivo
      *--
      DATA aButtons
      *--
   EXPORTED:
      *--
      DATA oDlg, oMsgBar
      DATA oGetCodigo, oGetNombre, oGetRif, oGetNit, oGetTelefonos
      DATA oGetDireccion, oGetEmail, oGetContacto, oGetActivo
      DATA oGetRetiva, oGetRetislr, oGetDias, oGetLimite, oGetCuentaContable
      *--
      METHOD New()
      METHOD Show()
      *--
      METHOD SetController(oCtrl) INLINE ::oCtrl := oCtrl, ::oParent := oCtrl:oParent
      METHOD GetController()      INLINE ::oCtrl
      *--
      METHOD SetTitle(sTitle)     INLINE ::oDlg:cTitle( sTitle )
      METHOD Refresh()            INLINE ::oDlg:Update()

ENDCLASS
*--
*
*--
METHOD New() CLASS ProveedorView
*--

   ::sCodigo := Space(10)
   ::sNombre := Space(80)
   ::sRif    := Space(20)
   ::sNit    := Space(20)
   *--
   ::sTelefonos := Space(50)
   ::sDireccion := Space(200)
   *--
   ::nDias   := 0
   ::nLimite := 0
   *--
   ::nRetencionIva  := 0
   ::nRetencionIslr := 0
   *--
   ::sEmail := Space(80)
   *--
   ::sContacto := Space(80)
   ::aButtons := Array(4)
   *--
   ::sCuentaContable := Space(25)
   ::lActivo := TRUE

RETURN Self
*--
*
*--
METHOD Show() CLASS ProveedorView
*--

   LOCAL nSay
   LOCAl sFileBmp := "c:\Fwh\bitmaps\32x32\fivetech.bmp"
   *--
   DEFINE DIALOG ::oDlg RESOURCE "D4100" ;
      TITLE FWVERSION RESIZABLE ;
      FONT ::oParent:GetFontApp() ;
      ICON ::oParent:GetIconSys() OF ::oParent:oWndMain
      *--
      FOR nSay = 50 TO 64
         REDEFINE SAY ID nSay OF ::oDlg TRANSPARENT
      NEXT
      *--
		REDEFINE TITLE ::oTitle ID 101 OF ::oDlg
		::oTitle:nShadow := 0
      *--
      @ 12,30 TITLETEXT OF ::oTitle TEXT "DATOS DE PROVEEDORES" FONT ::oParent:GetFontTit()
      *--
      REDEFINE SAY ID 200 OF ::oDlg FONT ::oParent:GetFontApp() TRANSPARENT
      *--
      REDEFINE GET ::oGetCodigo VAR ::sCodigo ID 201 OF ::oDlg PICTURE "@!,10" UPDATE
      *--
      ::oGetCodigo:bValid  := {|| ::oCtrl:ValidaCodigo() }
      ::oGetCodigo:bAction := {|| ::oCtrl:Find(), IIF( Empty( ::oGetCodigo:GetText() ), ::oGetCodigo:SetFocus(), SendKey( VK_TAB ) ) }
      ::oGetCodigo:bKeyDown := {|nKey| IIF( nKey == VK_F2, ::oGetCodigo:oBtn:Click(), ) }
      *--
      REDEFINE GET ::oGetNombre VAR ::sNombre ID 202 OF ::oDlg PICTURE "@!,80" UPDATE
      *--
      REDEFINE GET ::oGetRif VAR ::sRif ID 203 OF ::oDlg PICTURE "@!,20" UPDATE
      REDEFINE GET ::oGetNit VAR ::sNit ID 204 OF ::oDlg PICTURE "@!,20" UPDATE
      *--
      REDEFINE GET ::oGetTelefonos VAR ::sTelefonos ID 205 OF ::oDlg PICTURE "@X,50" UPDATE
      *--
      REDEFINE GET ::oGetDireccion VAR ::sDireccion ID 206 OF ::oDlg MEMO UPDATE
      *--
      ::oGetDireccion:LimitText( 200 )
      *--
      REDEFINE GET ::oGetEmail VAR ::sEmail ID 207 OF ::oDlg PICTURE "@X,80" UPDATE
      *--
      REDEFINE GET ::oGetContacto VAR ::sContacto ID 208 OF ::oDlg PICTURE "@!,80" UPDATE
      *--
      REDEFINE GET ::oGetRetiva VAR ::nRetencionIva ID 209 OF ::oDlg PICTURE "999.99"
      REDEFINE GET ::oGetRetislr VAR ::nRetencionIslr ID 210 OF ::oDlg PICTURE "999.99"
      *--
      REDEFINE GET ::oGetDias VAR ::nDias ID 211 OF ::oDlg PICTURE "99" UPDATE
      REDEFINE GET ::oGetLimite VAR ::nLimite ID 212 OF ::oDlg PICTURE "999999999.99" UPDATE
      *--
      REDEFINE GET ::oGetCuentaContable VAR ::sCuentaContable ID 213 OF ::oDlg PICTURE "@!,25" UPDATE
      *--
      REDEFINE CHECKBOX ::oGetActivo VAR ::lActivo ID 214 OF ::oDlg;
			ON CHANGE IIF( ::oGetActivo:lChecked(),;
         ::oGetActivo:SetText( "Activo" ),::oGetActivo:SetText( "Inactivo" ) )
      *--
      REDEFINE BUTTON ::aButtons[ 1 ] ID 301 OF ::oDlg ACTION ::oCtrl:Save() CANCEL
      *--
      REDEFINE BUTTON ::aButtons[ 2 ] ID 302 OF ::oDlg ACTION ::oDlg:End() CANCEL
      *--
      REDEFINE BUTTON ::aButtons[ 3 ] ID 303 OF ::oDlg ACTION ::oCtrl:Init() CANCEL
      *--
      REDEFINE BUTTON ::aButtons[ 4 ] ID 304 OF ::oDlg ACTION ::oCtrl:Delete() ;
         WHEN ::oCtrl:GetModel():GetId() > 0
      *--
      WITH OBJECT ::oDlg
			:bStart    := {|| ShowImageTitle(::oTitle,sFileBmp) }
			:bInit     := {|| StatusBar(::oDlg), SetResize( ::oDlg ) }
			:bResized  := {|| ResizeCtrls( ::oDlg ) }
         *--
         :lHelpIcon := FALSE
		END
      *--
	ACTIVATE DIALOG ::oDlg CENTER NOMODAL

RETURN NIL
*--
*
*--
PROCEDURE ShowImageTitle(oTitle, sImage)
*--

   LOCAL nPos := oTitle:nWidth - 60
   *--
   IF ( ! Empty( sImage) )
      @ 05,nPos TITLEIMG OF oTitle RESNAME sImage SIZE 32,32 REFLEX
      oTitle:nShadowIntensity = 70
   ENDIF
   *--
   oTitle:Refresh()

RETURN
*--
*
*--
PROCEDURE StatusBar( oDlg )
*--

   LOCAL oMsgBar
   *--
   DEFINE MSGBAR oMsgBar OF oDlg PROMPT FWDESCRIPTION 2015 FONT oApp:GetFontApp()
   *--
   oMsgBar:ClockOn()
   oMsgBar:lPaint3L := FALSE

RETURN
*--
*
*--
PROCEDURE SetResize( oDlg )
*--

   LOCAL oCtrl
   *--
   oDlg:Cargo  := { oDlg:nWidth, oDlg:nHeight, oDlg:oFont:nInpHeight }
   *--
   FOR EACH oCtrl IN oDlg:aControls
      WITH OBJECT oCtrl
         :Cargo := { :nTop, :nLeft, :nWidth, :nHeight, :oFont:nInpHeight }
      END
   NEXT

RETURN
*--
*
*--
PROCEDURE ResizeCtrls( oDlg )
*--

   LOCAL xRatio, yRatio
   LOCAL oCtrl, h, f
   *--
   xRatio   := oDlg:nWidth  / oDlg:Cargo[ 1 ]
   yRatio   := oDlg:nHeight / oDlg:Cargo[ 2 ]
   *--
   FOR EACH oCtrl IN oDlg:aControls
      WITH OBJECT oCtrl
         :nTop    := Int( yRatio * :Cargo[ 1 ] )
         :nHeight := Int( yRatio * :Cargo[ 4 ] )
         :nLeft   := Int( xRatio * :Cargo[ 2 ] )
         :nWidth  := Int( xRatio * :Cargo[ 3 ] )
         h := Int( :Cargo[ 5 ] * yRatio )
         IF h != :oFont:nInpHeight
            :SetFont( f := :oFont:Modify( h ) )
            f:End()
         ENDIF
      END
   NEXT

RETURN
*--
*

FiveTest.rc

D4100 DIALOG DISCARDABLE 6, 18, 502, 212
STYLE WS_POPUP|DS_MODALFRAME|DS_3DLOOK|WS_THICKFRAME|WS_CAPTION|WS_SYSMENU|WS_VISIBLE
CAPTION "Proveedores"
FONT 10, "Tahoma"
{
  CONTROL "", 201, "Edit", ES_NUMBER|ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 60, 32, 88, 12
  CONTROL "", 202, "Edit", ES_AUTOHSCROLL|ES_UPPERCASE|WS_BORDER|WS_TABSTOP, 60, 52, 260, 12
  CONTROL "", 203, "Edit", ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 60, 68, 88, 12
  CONTROL "", 204, "Edit", ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 232, 68, 88, 12
  CONTROL "", 205, "Edit", ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 60, 84, 260, 12
  CONTROL "", 206, "Edit", ES_MULTILINE|ES_WANTRETURN|WS_VSCROLL|WS_BORDER|WS_TABSTOP, 60, 100, 260, 24
  CONTROL "", 207, "Edit", ES_AUTOHSCROLL|ES_LOWERCASE|WS_BORDER|WS_TABSTOP, 60, 128, 260, 12
  CONTROL "", 208, "Edit", ES_AUTOHSCROLL|ES_UPPERCASE|WS_BORDER|WS_TABSTOP, 60, 144, 260, 12
  CONTROL "", 209, "Edit", ES_RIGHT|ES_NUMBER|ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 404, 52, 78, 12
  CONTROL "", 210, "Edit", ES_RIGHT|ES_NUMBER|ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 404, 68, 78, 12
  CONTROL "", 211, "Edit", ES_RIGHT|ES_NUMBER|ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 404, 84, 78, 12
  CONTROL "", 212, "Edit", ES_RIGHT|ES_NUMBER|ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 404, 100, 78, 12
  CONTROL "", 213, "Edit", ES_AUTOHSCROLL|WS_BORDER|WS_TABSTOP, 404, 116, 78, 12
  CONTROL "Activo", 214, "Button", BS_AUTOCHECKBOX|WS_TABSTOP, 420, 32, 38, 10
  CONTROL "&Grabar", 301, "Button", WS_TABSTOP, 364, 176, 58, 16
  CONTROL "&Salir", 302, "Button", WS_TABSTOP, 424, 176, 58, 16
  CONTROL "&Nuevo", 303, "Button", WS_TABSTOP, 20, 176, 54, 16
  CONTROL "&Eliminar", 304, "Button", WS_TABSTOP, 76, 176, 54, 16
  CONTROL "-", 50, "Static", SS_SUNKEN|WS_GROUP, 14, 164, 474, 1
  CONTROL "Código:", 51, "Static", SS_CENTERIMAGE|WS_GROUP, 16, 32, 40, 10
  CONTROL "-", 52, "Static", SS_SUNKEN|WS_GROUP, 14, 48, 474, 1
  CONTROL "Nombre:", 53, "Static", SS_CENTERIMAGE|WS_GROUP, 16, 52, 40, 10
  CONTROL "No R.I.F.:", 54, "Static", SS_CENTERIMAGE|WS_GROUP, 16, 68, 40, 10
  CONTROL "No NIT.:", 55, "Static", SS_CENTER|SS_CENTERIMAGE|WS_GROUP, 188, 68, 40, 10
  CONTROL "% Retencón I.V.A.", 60, "Static", SS_CENTERIMAGE|WS_GROUP, 332, 52, 68, 10
  CONTROL "% Retencón I.S.L.R.", 61, "Static", SS_CENTERIMAGE|WS_GROUP, 332, 68, 68, 10
  CONTROL "Días de Crédito:", 62, "Static", WS_GROUP, 332, 84, 68, 8
  CONTROL "Limite de Crédito:", 63, "Static", SS_CENTERIMAGE|WS_GROUP, 332, 100, 68, 10
  CONTROL "Teléfonos:", 56, "Static", SS_CENTERIMAGE|WS_GROUP, 16, 84, 40, 10
  CONTROL "Dirección\r\nFíscal", 57, "Static", WS_GROUP, 16, 100, 40, 20
  CONTROL "E-Mail:", 58, "Static", SS_CENTERIMAGE|WS_GROUP, 16, 128, 40, 10
  CONTROL "Contacto:", 59, "Static", SS_CENTERIMAGE|WS_GROUP, 16, 144, 40, 10
  CONTROL "TTitle", 101, "TTitle", 0x00000000, 0, 0, 502, 20
  CONTROL "Ingresa el código o pulsa F2 para buscar...", 200, "Static", SS_CENTERIMAGE|WS_GROUP, 168, 32, 160, 10
  CONTROL "Cuenta Contable:", 64, "Static", SS_CENTERIMAGE|WS_GROUP, 332, 116, 68, 10
}
Harbour / Bcc / MinGW / Fwh 13.9
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: FWH 26.03 buscamos betatesters
Posted: Thu Apr 09, 2026 09:54 AM
cmsoft wrote:

Antonio, tengo problemas con esta version con la clase TMultiget, los valores no se guardan en la variable luego de la edicion, siempre devuelve un valor en blanco. Lo estoy usando desde recurso. Hay algo que tenga que tener en cuenta?
El rc lo defino así:

CONTROL "Observaciones:", -1, "Static", SS_RIGHT|WS_GROUP, 248, 152, 60, 8
  CONTROL "", 123, "Edit", ES_MULTILINE|ES_AUTOHSCROLL|ES_AUTOVSCROLL|WS_BORDER|WS_TABSTOP, 312, 148, 220, 40

Y el prg asi:

REDEFINE GET oGet[14] VAR base:observa   ID 123 OF oForm MULTILINE

Pero siempre devuelve vacio.
Tampoco veo la clase en source
Espero tus comentarios

Estimados Cesar y Cruz Alfredo,

bug localizado y arreglado!

Muchas gracias :) :!:

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: FWH 26.03 buscamos betatesters
Posted: Fri Apr 10, 2026 12:24 PM

FW_SetUnicode( .T. ) // NO FUNCIONA CON FWH26.03

// C:\FWH2603\SAMPLES\WILLI2.PRG

#include "fivewin.ch"

REQUEST HB_LANG_ES
REQUEST HB_CODEPAGE_ESWIN

#ifNdef __XHARBOUR__     // Somente para HARBOUR, XHARBOUR nao tem isso ainda.
   REQUEST HB_CODEPAGE_UTF8
   REQUEST HB_CODEPAGE_UTF8EX
#endif

FUNCTION MAin()

   LOCAL oDlg
   LOCAL oGet1, oGet2, oGet3, oGet4
   LOCAL cVar1, cVar2, cVar3, cVar4
   LOCAL lActive := .f.

   SetGeneral()

   FW_SetUnicode( .T. ) // NO FUNCIONA CON FWH26.03

   cVar1 := SPACE(100)
   cVar2 := SPACE(100)
   cVar3 := SPACE(100)
   cVar4 := SPACE(100)

   DEFINE DIALOG oDlg TITLE "From Code" PIXEL SIZE 300, 300

   oDlg:lHelpIcon := .F.

   @ 10,10 get oGet1 var cVar1 bitmap "..\bitmaps\on.bmp" ;
      action( msginfo( "With Transparent" ) ) of oDlg pixel size 60,12

   oGet1:lBtnTransparent := .T.       // transparent button get oGet1

   @ 40,10 get oGet2 var cVar2 bitmap "..\bitmaps\on.bmp" ;
      action( msginfo( "Without Transparent" ) ) of oDlg pixel size 60,12

   @ 70,10 get oGet3 var cVar3 bitmap "..\bitmaps\chkyes.bmp" ;
      action( msginfo( "With Adjust-Transparent" ) ) of oDlg pixel size 120,12

   oGet3:lBtnTransparent := .T.       // transparent button get oGet3
   oGet3:lAdjustBtn      := .T.       // Button Get Adjust Witdh oGet3
   oGet3:lDisColors      := .F.       // Deactive disable color
   oGet3:nClrTextDis     := CLR_WHITE // Color text disable status
   oGet3:nClrPaneDis     := CLR_BLUE  // Color Pane disable status

   @ 100,10 get oGet4 var cVar4 bitmap "..\bitmaps\chkyes.bmp" ;
      action( if( lActive,oGet3:disable(),oGet3:enable()), lActive:= !lActive, oDlg:update() ) ;
      of oDlg pixel size 120,12
   

   oGet4:lAdjustBtn      := .T.
   

   ACTIVATE DIALOG oDlg CENTERED

RETURN NIl

FUNCTION SetGeneral()

   HB_LANGSELECT( 'ES' )       // Selecciona lenguaje español
   HB_SETCODEPAGE( 'ESWIN' )
   HB_CDPSELECT("ESWIN")
   HB_LangSelect( "ES" )
   HB_CODEPAGE_ESWIN()         // FW_SetUnicode( .t. )

RETURN NIL

// FIN / END

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 132
Joined: Thu Mar 08, 2007 06:12 PM
Re: FWH 26.03 buscamos betatesters
Posted: Fri Apr 10, 2026 04:33 PM

Saludos,
Antes esto mostraba la ventana y el dialog para login

STATIC oWnd
FUNCTION Main()
*--
DEFINE WINDOW TITLE FWDESCRIPTION ;
	ICON MyIcon() ;
	MENU TMenu():New(NIL) 
	*--
	WITH OBJECT oWnd
		:bInit := {|| IIF( Login(), TRUE, oWnd:End() ) }
	END
	*--
ACTIVATE WINDOW oWndMain MAXIMIZED

Ahora primero carga el login y si es correcto muestra la venta, ¿ Es correcto el funcionamiento o es un Bug ?

Harbour / Bcc / MinGW / Fwh 13.9
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: FWH 26.03 buscamos betatesters
Posted: Fri Apr 10, 2026 05:37 PM

¡Un error, sin duda, y uno ENORME! Terrible error de CLAUDE. Jajajajaja.

// C:\FWH2603\SAMPLES\TESTPAS3.PRG

#Include "FiveWin.ch"

#Define CLR_ORANGE     nRGB( 255, 165, 000 ) //-> Orange - Laranja

STATIC oWnd

FUNCTION Main()

   local oIco, oBar, oBmp

   DEFINE ICON oIco FILE "..\..\icons\fax.ico"

   DEFINE WINDOW oWnd FROM 1, 1 TO 22, 75 ;
      TITLE "FiveWin sample" ;
      MENU  BuildMenu() ;
      COLOR "B/W" ;
      ICON oIco MDI

   DEFINE BUTTONBAR oBar _3D SIZE 26, 27 OF oWnd

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\new.bmp" FLAT ;
      ACTION MsgInfo( "New" ) ;
      TOOLTIP "Creates a new document"

   DEFINE BUTTON OF oBar FILENAME "\..\bitmaps\16x16\open.bmp" FLAT ;
      ACTION MsgInfo( cGetFile( "*.*", "Select a document to open" ) ) ;
      TOOLTIP "Opens a document" WHEN .f.

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\floppy.bmp" FLAT ;
      ACTION MsgInfo( Time() ) TOOLTIP "Saves this document"

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\printer.bmp" FLAT ;
      ACTION MsgInfo( "Prints this document" ) TOOLTIP "Print this document" GROUP

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\prop.bmp" FLAT ;
      ACTION PrinterSetup() TOOLTIP "Setup the printer"

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\HelpInd.bmp" FLAT ;
      ACTION MsgInfo( Version() ) TOOLTIP "A multiple lines" + ;
      Chr( 13 ) + Chr( 10 ) + "tooltip!" GROUP

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\Help.bmp" FLAT ;
      ACTION MsgInfo( "fivewin power!" ) TOOLTIP "fivewin power!"

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\Exit.bmp" FLAT ;
      ACTION oWnd:End() TOOLTIP "Exit this app" GROUP

   DEFINE MESSAGE OF oWnd ;
      PROMPT FWVERSION + " " + FWCOPYRIGHT ;
      NOINSET CENTERED KEYBOARD DATE CLOCK

   ACTIVATE WINDOW oWnd MAXIMIZED ON INIT( Login() )

RETURN NIL

FUNCTION Login()

   LOCAL oDlg, oBrush, oFont, oBold, oGet, oBtn
   LOCAL cPassWord := SPACE( 10 ) // [FWH1234567]
   LOCAL oCursorBtn := TCursor():New(, 'HAND' )

   SetBalloon( .T. ) // Balloon shape required for tooltips
   SkinButtons()

   DEFINE BRUSH oBrush FILE "..\bitmaps\olga1.jpg" RESIZE  // Prefiro en RESOURCES.

   DEFINE FONT oFont NAME "VERDANA" SIZE 0, - 20
   DEFINE FONT oBold NAME "VERDANA" SIZE 0, - 24 BOLD

   DEFINE DIALOG oDlg SIZE 300, 400 PIXEL TRUEPIXEL FONT oFont BRUSH oBrush  ;
      TITLE "PassWord" TRANSPARENT

   oDlg:lHelpIcon := .F.

   @ 80, 40 SAY "Enter" + CRLF + "PassWord" SIZE 220, 80 PIXEL OF oDlg       ;
      FONT oBold CENTER COLORS CLR_ORANGE, CLR_WHITE TRANSPARENT UPDATE

   @ 320, 05 SAY "By" + CRLF + "Nages" SIZE 220, 80 PIXEL OF oDlg            ;
      FONT oFont COLORS CLR_ORANGE, CLR_WHITE TRANSPARENT UPDATE

   IF Set( _SET_INSERT, ! Set( _SET_INSERT ) )
      Set( _SET_INSERT, ! Set( _SET_INSERT ) )
   ENDIF

   @ 200, 40 GET oGet VAR cPassWord SIZE 220, 30 PIXEL OF oDlg UPDATE CENTER ;
      FONT oBold COLORS CLR_HRED, CLR_BLACK PASSWORD                         ;
      VALID( CHK_PASSWORD( oGet, cPassWord ) )

   oGet:cToolTip := "Informe PassWord"

   oGet:lPassWord := .T.

   @ 320, 100 BTNBMP oBtn PROMPT "&Exit" SIZE 100, 40 PIXEL OF oDlg FLAT     ;
      2007 TOP ACTION oDlg:End() FONT oFont

   oBtn:cTooltip := "Salida - Exit"

   oBtn:lCancel  := .T.
   oBtn:lEllipse := .T.
   oBtn:oCursor  := oCursorBtn

   ACTIVATE DIALOG oDlg CENTERED

   IF Set( _SET_INSERT, ! Set( _SET_INSERT ) )
      Set( _SET_INSERT, ! Set( _SET_INSERT ) )
   ENDIF

   oFont:End()
   oBold:End()

   RELEASE BRUSH oBrush

RETURN NIL

FUNCTION CHK_PASSWORD( oGet, cPassW )

   IF GETASYNCKEY( VK_UP )

  cPassW := SPACE(10)

  oGet:VARPUT( cPassW )
  oGet:Refresh()

  RETURN( .F. )

   ENDIF

   IF EMPTY( cPassW )

  ? "Proibido"

  RETURN( .F. )

   ENDIF

   IF( cPassW ) = "FWH1234567"

  ? "VALID PASSWORD"

  RETURN( .T. )

   ELSE

  ? "INVALID PASSWORD"

   ENDIF

RETURN( .F. )

function BuildMenu()

   local oMenu

   MENU oMenu
      MENUITEM "Information"
      MENU
         MENUITEM "&About..." ;
            ACTION MsgInfo( FWDESCRIPTION ) ;
            FILENAME "..\bitmaps\16x16\info.bmp"
         SEPARATOR
         MENUITEM "&End..."  ;
            ACTION oWnd:End() FILENAME "..\bitmaps\16x16\exit.bmp"

  ENDMENU

  MENUITEM "&Clients"
  MENU
     MENUITEM "&New..." ;
        ACTION ( MsgStop( "New Clients" ),;
                 oWnd:Say( 5, 5, "New Clients...", "GR+/G" ) ) ;
        FILENAME "..\bitmaps\16x16\faces.bmp"

     MENUITEM "&Modify..."  ACTION MsgInfo( "Modif. Clients" ) ;
        FILENAME "..\bitmaps\edit.bmp"

     MENUITEM "&Delete..."  ACTION MsgAlert( "Del Clients" ) ;
        FILENAME "..\bitmaps\16x16\delete.bmp"

     SEPARATOR

     MENUITEM "&Browse..."  ACTION MsgInfo( "Browse Clients" ) ;
        FILENAME "..\bitmaps\16x16\browse.bmp"

  ENDMENU

  MENUITEM "&Utilities"
  MENU
     MENUITEM "&Calculator..." ACTION WinExec( "Calc" ) ;
        FILENAME "..\bitmaps\16x16\calc.bmp"

     MENUITEM "&Internet..." ;
        ACTION WinExec( "start iexplore www.fivetech.com", 0 ) ;
        FILENAME "..\bitmaps\16x16\explorer.bmp"
  ENDMENU
   ENDMENU

return oMenu

// FIN / END

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: FWH 26.03 buscamos betatesters
Posted: Sat Apr 11, 2026 05:04 AM
karinha wrote:

FW_SetUnicode( .T. ) // NO FUNCIONA CON FWH26.03

// C:\FWH2603\SAMPLES\WILLI2.PRG

#include "fivewin.ch"

REQUEST HB_LANG_ES
REQUEST HB_CODEPAGE_ESWIN

#ifNdef __XHARBOUR__     // Somente para HARBOUR, XHARBOUR nao tem isso ainda.
   REQUEST HB_CODEPAGE_UTF8
   REQUEST HB_CODEPAGE_UTF8EX
#endif

FUNCTION MAin()

   LOCAL oDlg
   LOCAL oGet1, oGet2, oGet3, oGet4
   LOCAL cVar1, cVar2, cVar3, cVar4
   LOCAL lActive := .f.

   SetGeneral()

   FW_SetUnicode( .T. ) // NO FUNCIONA CON FWH26.03

   cVar1 := SPACE(100)
   cVar2 := SPACE(100)
   cVar3 := SPACE(100)
   cVar4 := SPACE(100)

   DEFINE DIALOG oDlg TITLE "From Code" PIXEL SIZE 300, 300

   oDlg:lHelpIcon := .F.

   @ 10,10 get oGet1 var cVar1 bitmap "..\bitmaps\on.bmp" ;
      action( msginfo( "With Transparent" ) ) of oDlg pixel size 60,12

   oGet1:lBtnTransparent := .T.       // transparent button get oGet1

   @ 40,10 get oGet2 var cVar2 bitmap "..\bitmaps\on.bmp" ;
      action( msginfo( "Without Transparent" ) ) of oDlg pixel size 60,12

   @ 70,10 get oGet3 var cVar3 bitmap "..\bitmaps\chkyes.bmp" ;
      action( msginfo( "With Adjust-Transparent" ) ) of oDlg pixel size 120,12

   oGet3:lBtnTransparent := .T.       // transparent button get oGet3
   oGet3:lAdjustBtn      := .T.       // Button Get Adjust Witdh oGet3
   oGet3:lDisColors      := .F.       // Deactive disable color
   oGet3:nClrTextDis     := CLR_WHITE // Color text disable status
   oGet3:nClrPaneDis     := CLR_BLUE  // Color Pane disable status

   @ 100,10 get oGet4 var cVar4 bitmap "..\bitmaps\chkyes.bmp" ;
      action( if( lActive,oGet3:disable(),oGet3:enable()), lActive:= !lActive, oDlg:update() ) ;
      of oDlg pixel size 120,12
   

   oGet4:lAdjustBtn      := .T.
   

   ACTIVATE DIALOG oDlg CENTERED

RETURN NIl

FUNCTION SetGeneral()

   HB_LANGSELECT( 'ES' )       // Selecciona lenguaje español
   HB_SETCODEPAGE( 'ESWIN' )
   HB_CDPSELECT("ESWIN")
   HB_LangSelect( "ES" )
   HB_CODEPAGE_ESWIN()         // FW_SetUnicode( .t. )

RETURN NIL

// FIN / END

Regards, saludos.

Arreglado! :)

  • Fixed: SetWindowText() double UTF-8 conversion with FW_SetUnicode(.T.) on
    CP1250-1258 codepages. When a Unicode GET control (created with
    CreateWindowExW) lost focus, its text was read back as UTF-8 via
    GetWindowTextW, but SetWindowText() passed it through fw_parWide() which
    used isutf8()/is2byteansi() to detect encoding. The is2byteansi() function
    always returned TRUE for CP1250-1258, defeating UTF-8 detection and causing
    MultiByteToWideChar to treat valid UTF-8 bytes (e.g. C3 B1 for ñ) as two
    separate CP1252 characters (Ã and ±), producing double-encoded output.
    Fix: SetWindowText() now validates with MultiByteToWideChar(CP_UTF8,
    MB_ERR_INVALID_CHARS) first; if the text is valid UTF-8 it uses CP_UTF8
    directly, otherwise falls back to fw_parWide() for ANSI text.
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: FWH 26.03 buscamos betatesters
Posted: Sat Apr 11, 2026 05:14 AM
karinha wrote:

¡Un error, sin duda, y uno ENORME! Terrible error de CLAUDE. Jajajajaja.

// C:\FWH2603\SAMPLES\TESTPAS3.PRG

#Include "FiveWin.ch"

#Define CLR_ORANGE     nRGB( 255, 165, 000 ) //-> Orange - Laranja

STATIC oWnd

FUNCTION Main()

   local oIco, oBar, oBmp

   DEFINE ICON oIco FILE "..\..\icons\fax.ico"

   DEFINE WINDOW oWnd FROM 1, 1 TO 22, 75 ;
      TITLE "FiveWin sample" ;
      MENU  BuildMenu() ;
      COLOR "B/W" ;
      ICON oIco MDI

   DEFINE BUTTONBAR oBar _3D SIZE 26, 27 OF oWnd

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\new.bmp" FLAT ;
      ACTION MsgInfo( "New" ) ;
      TOOLTIP "Creates a new document"

   DEFINE BUTTON OF oBar FILENAME "\..\bitmaps\16x16\open.bmp" FLAT ;
      ACTION MsgInfo( cGetFile( "*.*", "Select a document to open" ) ) ;
      TOOLTIP "Opens a document" WHEN .f.

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\floppy.bmp" FLAT ;
      ACTION MsgInfo( Time() ) TOOLTIP "Saves this document"

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\printer.bmp" FLAT ;
      ACTION MsgInfo( "Prints this document" ) TOOLTIP "Print this document" GROUP

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\prop.bmp" FLAT ;
      ACTION PrinterSetup() TOOLTIP "Setup the printer"

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\HelpInd.bmp" FLAT ;
      ACTION MsgInfo( Version() ) TOOLTIP "A multiple lines" + ;
      Chr( 13 ) + Chr( 10 ) + "tooltip!" GROUP

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\Help.bmp" FLAT ;
      ACTION MsgInfo( "fivewin power!" ) TOOLTIP "fivewin power!"

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\Exit.bmp" FLAT ;
      ACTION oWnd:End() TOOLTIP "Exit this app" GROUP

   DEFINE MESSAGE OF oWnd ;
      PROMPT FWVERSION + " " + FWCOPYRIGHT ;
      NOINSET CENTERED KEYBOARD DATE CLOCK

   ACTIVATE WINDOW oWnd MAXIMIZED ON INIT( Login() )

RETURN NIL

FUNCTION Login()

   LOCAL oDlg, oBrush, oFont, oBold, oGet, oBtn
   LOCAL cPassWord := SPACE( 10 ) // [FWH1234567]
   LOCAL oCursorBtn := TCursor():New(, 'HAND' )

   SetBalloon( .T. ) // Balloon shape required for tooltips
   SkinButtons()

   DEFINE BRUSH oBrush FILE "..\bitmaps\olga1.jpg" RESIZE  // Prefiro en RESOURCES.

   DEFINE FONT oFont NAME "VERDANA" SIZE 0, - 20
   DEFINE FONT oBold NAME "VERDANA" SIZE 0, - 24 BOLD

   DEFINE DIALOG oDlg SIZE 300, 400 PIXEL TRUEPIXEL FONT oFont BRUSH oBrush  ;
      TITLE "PassWord" TRANSPARENT

   oDlg:lHelpIcon := .F.

   @ 80, 40 SAY "Enter" + CRLF + "PassWord" SIZE 220, 80 PIXEL OF oDlg       ;
      FONT oBold CENTER COLORS CLR_ORANGE, CLR_WHITE TRANSPARENT UPDATE

   @ 320, 05 SAY "By" + CRLF + "Nages" SIZE 220, 80 PIXEL OF oDlg            ;
      FONT oFont COLORS CLR_ORANGE, CLR_WHITE TRANSPARENT UPDATE

   IF Set( _SET_INSERT, ! Set( _SET_INSERT ) )
      Set( _SET_INSERT, ! Set( _SET_INSERT ) )
   ENDIF

   @ 200, 40 GET oGet VAR cPassWord SIZE 220, 30 PIXEL OF oDlg UPDATE CENTER ;
      FONT oBold COLORS CLR_HRED, CLR_BLACK PASSWORD                         ;
      VALID( CHK_PASSWORD( oGet, cPassWord ) )

   oGet:cToolTip := "Informe PassWord"

   oGet:lPassWord := .T.

   @ 320, 100 BTNBMP oBtn PROMPT "&Exit" SIZE 100, 40 PIXEL OF oDlg FLAT     ;
      2007 TOP ACTION oDlg:End() FONT oFont

   oBtn:cTooltip := "Salida - Exit"

   oBtn:lCancel  := .T.
   oBtn:lEllipse := .T.
   oBtn:oCursor  := oCursorBtn

   ACTIVATE DIALOG oDlg CENTERED

   IF Set( _SET_INSERT, ! Set( _SET_INSERT ) )
      Set( _SET_INSERT, ! Set( _SET_INSERT ) )
   ENDIF

   oFont:End()
   oBold:End()

   RELEASE BRUSH oBrush

RETURN NIL

FUNCTION CHK_PASSWORD( oGet, cPassW )

   IF GETASYNCKEY( VK_UP )

  cPassW := SPACE(10)

  oGet:VARPUT( cPassW )
  oGet:Refresh()

  RETURN( .F. )

   ENDIF

   IF EMPTY( cPassW )

  ? "Proibido"

  RETURN( .F. )

   ENDIF

   IF( cPassW ) = "FWH1234567"

  ? "VALID PASSWORD"

  RETURN( .T. )

   ELSE

  ? "INVALID PASSWORD"

   ENDIF

RETURN( .F. )

function BuildMenu()

   local oMenu

   MENU oMenu
      MENUITEM "Information"
      MENU
         MENUITEM "&About..." ;
            ACTION MsgInfo( FWDESCRIPTION ) ;
            FILENAME "..\bitmaps\16x16\info.bmp"
         SEPARATOR
         MENUITEM "&End..."  ;
            ACTION oWnd:End() FILENAME "..\bitmaps\16x16\exit.bmp"

  ENDMENU

  MENUITEM "&Clients"
  MENU
     MENUITEM "&New..." ;
        ACTION ( MsgStop( "New Clients" ),;
                 oWnd:Say( 5, 5, "New Clients...", "GR+/G" ) ) ;
        FILENAME "..\bitmaps\16x16\faces.bmp"

     MENUITEM "&Modify..."  ACTION MsgInfo( "Modif. Clients" ) ;
        FILENAME "..\bitmaps\edit.bmp"

     MENUITEM "&Delete..."  ACTION MsgAlert( "Del Clients" ) ;
        FILENAME "..\bitmaps\16x16\delete.bmp"

     SEPARATOR

     MENUITEM "&Browse..."  ACTION MsgInfo( "Browse Clients" ) ;
        FILENAME "..\bitmaps\16x16\browse.bmp"

  ENDMENU

  MENUITEM "&Utilities"
  MENU
     MENUITEM "&Calculator..." ACTION WinExec( "Calc" ) ;
        FILENAME "..\bitmaps\16x16\calc.bmp"

     MENUITEM "&Internet..." ;
        ACTION WinExec( "start iexplore www.fivetech.com", 0 ) ;
        FILENAME "..\bitmaps\16x16\explorer.bmp"
  ENDMENU
   ENDMENU

return oMenu

// FIN / END

Regards, saludos.

Querido João,

Ese ejemplo es incorrecto. Este es el código correcto corregido por Claude :wink:

TESTPAS3.PRG

// C:\FWH2603\SAMPLES\TESTPAS3.PRG

#Include "FiveWin.ch"

#Define CLR_ORANGE     nRGB( 255, 165, 000 ) //-> Orange - Laranja

STATIC oWnd

FUNCTION Main()

   local oIco, oBar, oBmp

   DEFINE ICON oIco FILE "..\..\icons\fax.ico"

   DEFINE WINDOW oWnd FROM 1, 1 TO 22, 75 ;
      TITLE "FiveWin sample" ;
      MENU  BuildMenu() ;
      COLOR "B/W" ;
      ICON oIco MDI

   DEFINE BUTTONBAR oBar _3D SIZE 26, 27 OF oWnd

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\new.bmp" FLAT ;
      ACTION MsgInfo( "New" ) ;
      TOOLTIP "Creates a new document"

   DEFINE BUTTON OF oBar FILENAME "\..\bitmaps\16x16\open.bmp" FLAT ;
      ACTION MsgInfo( cGetFile( "*.*", "Select a document to open" ) ) ;
      TOOLTIP "Opens a document" WHEN .f.

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\floppy.bmp" FLAT ;
      ACTION MsgInfo( Time() ) TOOLTIP "Saves this document"

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\printer.bmp" FLAT ;
      ACTION MsgInfo( "Prints this document" ) TOOLTIP "Print this document" GROUP

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\prop.bmp" FLAT ;
      ACTION PrinterSetup() TOOLTIP "Setup the printer"

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\HelpInd.bmp" FLAT ;
      ACTION MsgInfo( Version() ) TOOLTIP "A multiple lines" + ;
      Chr( 13 ) + Chr( 10 ) + "tooltip!" GROUP

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\Help.bmp" FLAT ;
      ACTION MsgInfo( "fivewin power!" ) TOOLTIP "fivewin power!"

   DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\Exit.bmp" FLAT ;
      ACTION oWnd:End() TOOLTIP "Exit this app" GROUP

   DEFINE MESSAGE OF oWnd ;
      PROMPT FWVERSION + " " + FWCOPYRIGHT ;
      NOINSET CENTERED KEYBOARD DATE CLOCK

   ACTIVATE WINDOW oWnd MAXIMIZED ON INIT( If( ! Login(), oWnd:End(), ) )

RETURN NIL

FUNCTION Login()

   LOCAL oDlg, oBrush, oFont, oBold, oGet, oBtn
   LOCAL cPassWord := SPACE( 10 ) // [FWH1234567]
   LOCAL oCursorBtn := TCursor():New(, 'HAND' )
   LOCAL lAccess := .F.

   SetBalloon( .T. ) // Balloon shape required for tooltips
   SkinButtons()

   DEFINE BRUSH oBrush FILE "..\bitmaps\olga1.jpg" RESIZE  // Prefiro en RESOURCES.

   DEFINE FONT oFont NAME "VERDANA" SIZE 0, - 20
   DEFINE FONT oBold NAME "VERDANA" SIZE 0, - 24 BOLD

   DEFINE DIALOG oDlg SIZE 300, 400 PIXEL TRUEPIXEL FONT oFont BRUSH oBrush  ;
      TITLE "PassWord" TRANSPARENT

   oDlg:lHelpIcon := .F.

   @ 80, 40 SAY "Enter" + CRLF + "PassWord" SIZE 220, 80 PIXEL OF oDlg       ;
      FONT oBold CENTER COLORS CLR_ORANGE, CLR_WHITE TRANSPARENT UPDATE

   @ 320, 05 SAY "By" + CRLF + "Nages" SIZE 220, 80 PIXEL OF oDlg            ;
      FONT oFont COLORS CLR_ORANGE, CLR_WHITE TRANSPARENT UPDATE

   IF Set( _SET_INSERT, ! Set( _SET_INSERT ) )
      Set( _SET_INSERT, ! Set( _SET_INSERT ) )
   ENDIF

   @ 200, 40 GET oGet VAR cPassWord SIZE 220, 30 PIXEL OF oDlg UPDATE CENTER ;
      FONT oBold COLORS CLR_HRED, CLR_BLACK PASSWORD                         ;
      VALID( CHK_PASSWORD( cPassWord, @lAccess ) )

   oGet:cToolTip := "Informe PassWord"

   oGet:lPassWord := .T.

   @ 320, 100 BTNBMP oBtn PROMPT "&Exit" SIZE 100, 40 PIXEL OF oDlg FLAT     ;
      2007 TOP ACTION oDlg:End() FONT oFont

   oBtn:cTooltip := "Salida - Exit"

   oBtn:lCancel  := .T.
   oBtn:lEllipse := .T.
   oBtn:oCursor  := oCursorBtn

   ACTIVATE DIALOG oDlg CENTERED

   IF Set( _SET_INSERT, ! Set( _SET_INSERT ) )
      Set( _SET_INSERT, ! Set( _SET_INSERT ) )
   ENDIF

   oFont:End()
   oBold:End()

   RELEASE BRUSH oBrush

RETURN lAccess

FUNCTION CHK_PASSWORD( cPassW, lAccess )

   IF Empty( cPassW )
      MsgAlert( "Please enter a password" )
      RETURN .F.
   ENDIF

   IF AllTrim( cPassW ) == "FWH1234567"
      lAccess := .T.
      RETURN .T.
   ENDIF

   MsgStop( "Invalid password" )

RETURN .F.

function BuildMenu()

   local oMenu

   MENU oMenu
      MENUITEM "Information"
      MENU
         MENUITEM "&About..." ;
            ACTION MsgInfo( FWDESCRIPTION ) ;
            FILENAME "..\bitmaps\16x16\info.bmp"
         SEPARATOR
         MENUITEM "&End..."  ;
            ACTION oWnd:End() FILENAME "..\bitmaps\16x16\exit.bmp"

  ENDMENU

  MENUITEM "&Clients"
  MENU
     MENUITEM "&New..." ;
        ACTION ( MsgStop( "New Clients" ),;
                 oWnd:Say( 5, 5, "New Clients...", "GR+/G" ) ) ;
        FILENAME "..\bitmaps\16x16\faces.bmp"

 MENUITEM "&Modify..."  ACTION MsgInfo( "Modif. Clients" ) ;
    FILENAME "..\bitmaps\edit.bmp"

 MENUITEM "&Delete..."  ACTION MsgAlert( "Del Clients" ) ;
    FILENAME "..\bitmaps\16x16\delete.bmp"

 SEPARATOR

 MENUITEM "&Browse..."  ACTION MsgInfo( "Browse Clients" ) ;
    FILENAME "..\bitmaps\16x16\browse.bmp"

  ENDMENU

  MENUITEM "&Utilities"
  MENU
     MENUITEM "&Calculator..." ACTION WinExec( "Calc" ) ;
        FILENAME "..\bitmaps\16x16\calc.bmp"

 MENUITEM "&Internet..." ;
    ACTION WinExec( "start iexplore www.fivetech.com", 0 ) ;
    FILENAME "..\bitmaps\16x16\explorer.bmp"
  ENDMENU
   ENDMENU

return oMenu

// FIN / END
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: FWH 26.03 buscamos betatesters
Posted: Sat Apr 11, 2026 05:22 AM
compubrion wrote:

Saludos,
Antes esto mostraba la ventana y el dialog para login

STATIC oWnd
FUNCTION Main()
*--
DEFINE WINDOW TITLE FWDESCRIPTION ;
	ICON MyIcon() ;
	MENU TMenu():New(NIL) 
	*--
	WITH OBJECT oWnd
		:bInit := {|| IIF( Login(), TRUE, oWnd:End() ) }
	END
	*--
ACTIVATE WINDOW oWndMain MAXIMIZED

Ahora primero carga el login y si es correcto muestra la venta, ¿ Es correcto el funcionamiento o es un Bug ?

Hazlo asi:

WITH OBJECT oWnd
      :bInit := {|| oWnd:Show(), IIF( Login(), TRUE, oWnd:End() ) }
  END
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: FWH 26.03 buscamos betatesters
Posted: Sat Apr 11, 2026 07:27 AM

Construcción de Harbour incompleta. No incluye las contrib. He probado con Gemini Pro y no doy con la solución.

Dentro del entorno del sistema para VS:

**********************************************************************
** Visual Studio 2026 Developer Command Prompt v18.1.1
** Copyright (c) 2025 Microsoft Corporation
**********************************************************************
[DEBUG:ext\vcvars.bat] Found potential v145 version file: 'Microsoft.VCToolsVersion.VC.14.50.18.0.txt'
[DEBUG:ext\vcvars.bat] Testing v145 version file: 'Microsoft.VCToolsVersion.VC.14.50.18.0.txt'
[vcvarsall.bat] Environment initialized for: 'x64'

C:\Program Files\Microsoft Visual Studio\18\Community>

Ahora ejecuto el bat siguiente:

@echo off
cd /d c:\hb32-core-master

:: 1. Cargar el entorno de MSVC (Ajusta la ruta según tu versión de VS)
rem call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"

:: 2. Configurar variables de entorno
set HB_COMPILER=msvc64
set HB_INSTALL_PREFIX=C:\Harbour_MSVC
set HB_BUILD_CONTRIBS=yes

:: 3. Apunta a la raíz de la carpeta de la librería
set HB_WITH_CURL=C:\curl
set HB_WITH_OPENSSL=C:\OpenSSL-Win64

:: 4. Proceso de limpieza y compilación
win-make clean
win-make

:: 5. Instalación (Esto debería crear C:\Harbour_MSVC\bin, \lib, \include y \contrib)
win-make install

Compila todo menos las contrib.

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: FWH 26.03 buscamos betatesters
Posted: Sat Apr 11, 2026 08:02 AM

Prueba a eliminar esta línea:

set HB_BUILD_CONTRIBS=yes

Se deben construir por defecto

regards, saludos

Antonio Linares
www.fivetechsoft.com