FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Inherit a class from another to add new methods for FW WIKI
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: ADO RDD xHarbour
Posted: Sat May 23, 2015 09:19 AM
Fix for HBRECNO creating:

Code (fw): Select all Collapse
STATIC FUNCTION ADO_CREATE( nWA, aOpenInfo  )

  LOCAL aWAData := USRRDD_AREADATA( nWA )
  LOCAL cTable  := hb_tokenGet( aOpenInfo[ UR_OI_NAME ], 1, ";" )
  LOCAL cDataBase  := hb_tokenGet( aOpenInfo[ UR_OI_NAME ], 2, ";" )
  LOCAL cDbEngine  := hb_tokenGet( aOpenInfo[ UR_OI_NAME ], 3, ";" )
  LOCAL cServer    := hb_tokenGet( aOpenInfo[ UR_OI_NAME ], 4, ";" )
  LOCAL cUserName  := hb_tokenGet( aOpenInfo[ UR_OI_NAME ], 5, ";" )
  LOCAL cPassword  := hb_tokenGet( aOpenInfo[ UR_OI_NAME ], 6, ";" )
  LOCAL cSql, cSql2, lAddAutoInc := .F.
  LOCAL oCatalog , cMarkTmp, lNoError := .T.,cTmpTable

   IF EMPTY(cDbEngine) //IF NOT DEFINED USE DEFAULT
      ADODEFAULTS()
   ENDIF

   IF( ALLTRIM( cDataBase ) == "" ,cDataBase:= t_cDataSource, cDataBase )
   IF( ALLTRIM( cTable ) == "" , cTable := aOpenInfo[ UR_OI_NAME ] ,cTable)
   IF( ALLTRIM( cDbEngine ) == "" ,cDbEngine:= t_cEngine, cDbEngine )
   IF( ALLTRIM( cServer ) == "" , cServer:= t_cServer, cServer )
   IF( ALLTRIM( cUserName ) == "" , cUserName:= t_cUserName, cUserName )
   IF( ALLTRIM( cPassword ) == "" , cPassword:= t_cPassword, cPassword )

    hb_adoSetDSource(cDataBase)
    hb_adoSetEngine( cDbEngine )
    hb_adoSetServer( cServer )
    hb_adoSetUser( cUserName )
    hb_adoSetPassword( cPassword )

   IF cDbEngine = "ACCESS" //t_cEngine WITH DEFAULT VALUE BU ADODEFAULTS
      IF !FILE(cDataBase)
         oCatalog    := TOleAuto():New( "ADOX.Catalog" )
         oCatalog:Create( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + cDataBase )
      ENDIF
   ENDIF

   aOpenInfo[ UR_OI_NAME ] := CFILENOEXT( CFILENOPATH( cTable ) )

   ADOCONNECT( nWA, aOpenInfo )

   /*
   fix to add HBRECNO if it´s not present  // Lucas De Beltran 23.05.2015
   */
   if AScan( aWAData[ WA_SQLSTRUCT ], ADODEFLDRECNO() ) == 0
      AIns( aWAData[ WA_SQLSTRUCT ], 1, {  ADODEFLDRECNO(), '+', 10, 0 }, .t. )
   endif


   cSql := ADOSTRUCTTOSQL( aWAData, aWAData[ WA_SQLSTRUCT ],@lAddAutoInc )
Muchas gracias. Many thanks.



Un saludo, Best regards,



Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producciĂłn]



Implementando MSVC 2010, FWH64 y ADO.



Abandonando uso xHarbour y SQLRDD.
Posts: 346
Joined: Mon Oct 05, 2009 03:35 PM
Re: TtaskPanel
Posted: Mon Nov 09, 2015 05:55 PM
mario estoy confundido

lo que mensionas es en la clase texplbar.prg de source\classes ???
la texplbar es parte de FW y la taskpannel es externa...
estas tratando de mostrar un taskpannel a dentro de una texplbar????

la linea 365 corresponde al texplbar.prg y seria esto:

Code (fw): Select all Collapse
CLASS TExplorerBar FROM TControl
...
...
...
...
METHOD New( cTitle, oWnd, nIndex, cBmpPanel, nBodyHeight ) CLASS TTaskPanel   <--- ojo con esto, aqui no es la clase Ttaskpannel que ocupo

   local n

   DEFAULT nBodyHeight := 50
   
   ::cTitle  = cTitle
   ::nTop    = ::nTopMargin

   ::nBodyHeight = nBodyHeight

 linea 365-->  if nIndex > 0
                     ::nTop += oWnd:aPanels[ nIndex ]:nTop + oWnd:aPanels[ nIndex ]:nTotalHeight + ;
                     oWnd:aPanels[ nIndex ]:nTopMargin 
                   endif   
  ...
  ...


y el error saltarĂ­a si "nIndex" en Null...
SkyPe: armando.lagunas@hotmail.com

Mail: armando.lagunas@gmail.com
Posts: 1387
Joined: Fri May 23, 2008 01:33 PM
Re: MSVC 2017 Try
Posted: Sun Mar 26, 2017 09:00 AM
Antonio,

I have deleted all my .obj, .c and .exe files and build it.

exe is created.

link.log is
Code (fw): Select all Collapse
FiveH32.lib(TGET.obj) : warning LNK4006: _HB_FUN_TGET zaten TGet.obj üzerinde tanımlandı; ikinci tanımlama yoksayıldı
FiveH32.lib(TGET.obj) : warning LNK4006: _HB_FUN_SETGETCOLORFOCUS zaten TGet.obj üzerinde tanımlandı; ikinci tanımlama yoksayıldı
FiveH32.lib(TGET.obj) : warning LNK4006: _HB_FUN_POPUPBROWSE zaten TGet.obj üzerinde tanımlandı; ikinci tanımlama yoksayıldı
   IcraW.lib kitaplığı ve IcraW.exp nesnesi oluşturuluyor
hbssl.lib(ssl.obj) : error LNK2019: Çözümlenmemiş dış sembol ___iob_func, _app_stdin işlevinde başvurdu
IcraW.exe : warning LNK4088: /FORCE seçeneği nedeniyle görüntü üretiliyor; görüntü çalışmayabilir


Sorry for language, I could not change the error display language in msvc 2017.
Regards,



Hakan ONEMLI



Harbour & MSVC 2022 & FWH 23.06
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Como Poner 2 Lineas de Totales en Xbrowse
Posted: Sun Dec 09, 2018 01:31 PM
Hola. Intenta asi:

Code (fw): Select all Collapse
   oBrw:lFooter              := .t.  //Que tendrá footer 
   oBrw:nFooterLines         := 3    //Lineas del footer 
   oBrw:nFooterHeight        := 46   //Altura del  Footer

   oCol = oBrw:AddCol()  //GTOTAL
   oCol:bEditValue = { || (cAlias1)->SaldPrinc + (cAlias1)->SaldIntCo + (cAlias1)->SaldDesliz  + (cAlias1)->SaldOtros}
   oCol:cEditPicture = "9,999,999,999.99"
   oCol:nDataStrAlign := 1
   oCol:cHeader = "SALDO"+CRLF+"TOTAL" 
   oCol:nWidth = 110      //El ancho de la col es importante
   oCol:nEditType = 0   //no editable
   oCol:bFooter  =  {||TRANSFORM(nTotPrinc+nTotIntCo+nTotDesliz+nTotOtros,"99,999,999,999.99") +CRLF+ TRANSFORM(nNoVencido,"9,999,999,999.99") +CRLF+ TRANSFORM(nVencido,"9,999,999,999.99") }
   oCol:nFootStrAlign := 1

Saludos.
Francisco J. AlegrĂ­a P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 838
Joined: Wed Aug 22, 2007 10:09 AM
Re: another bug in TDataRow: failure with datetime fields
Posted: Sat Nov 09, 2019 11:41 AM

Up

Saludos / Regards,



FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Characters from different code tables
Posted: Tue Aug 29, 2023 04:06 PM
Please first see the functioning of the function
Code (fw): Select all Collapse
FW_SayTextHilite( hDC, cText, aRect, oFont, nClrText, nClrBack, aWords )
This is an example how to use:
Code (fw): Select all Collapse
function TestHilite()

   local oWnd
   local cText := "We always eat dinner together"
   local aWords
   local oFont, oBold, oItalic

   DEFINE FONT oFont NAME "Segoe UI" SIZE 0,-22
   DEFINE FONT oBold NAME "VERDANA" SIZE 0,-25 BOLD
   DEFINE FONT oItalic NAME "TIMES NEW ROMAN" SIZE 0,-25 ITALIC

   aWords   := {  { "ALWAYS", oBold, CLR_HRED, CLR_YELLOW }, ;
                  { "DINNER", oItalic, CLR_GREEN, CLR_HGRAY }, ;
                  { "TOGETHER", oItalic, CLR_WHITE, CLR_RED } }

   DEFINE WINDOW oWnd
   oWnd:SetFont( oFont )

   oWnd:bPainted  := <|hDC|
      local aRect    := GetClientRect( oWnd:hWnd )
      aRect[ 2 ] += 100
      FW_SayTextHilite( hDC, cText, aRect, oFont, ;
            CLR_BLACK, CLR_WHITE, aWords )
      return nil
      >
   ACTIVATE WINDOW oWnd CENTERED

   RELEASE FONTS oFont, oBold, oItalic

return nil


Now you have to use this function to paint text in a cell by defining your own codeblock:
Code (fw): Select all Collapse
oCol:bPaintText
This codeblock is evaluated like this:
Code (fw): Select all Collapse
Eval( ::bPaintText, Self, hDC, cStrData, oRect:aRect, aColors, lHighLite, lSelected )
Regards



G. N. Rao.

Hyderabad, India
Posts: 6984
Joined: Fri Oct 07, 2005 07:07 PM
Re: how to change the size of an xbrowse in runtime
Posted: Thu May 02, 2024 09:16 PM

Please post the line where you create xbrowse?

Posts: 6984
Joined: Fri Oct 07, 2005 07:07 PM
Why AI might just be the best thing that could happen to the old FiveWin crowd
Posted: Tue Nov 18, 2025 10:59 PM

From “Heast as nit” to “Walk My Walk” – Why AI might just be the best thing that could happen to the old FiveWin crowd

If you drop by the FiveWin forum these days, it feels a bit like listening to Hubert von Goisern’s old song “Heast as nit” (“Don’t you hear how time goes by?”).
Just yesterday (at least it feels that way) we were passionately debating Clipper vs. Summer ’87, DBF structures, the perfect GET/READ behaviour, the pros and cons of xBrowse, TopClass vs. FiveWin vs. VO, and how to make a dialog look decent under Windows XP.
Today many of the familiar voices have grown quieter or vanished completely. The “young guns” of the 90s and 2000s are getting grey, some of the real old-timers are no longer with us, and what once felt timeless – PRG files, RDDs, TBrowse, Windows dialogs – has quietly turned into what the rest of the world now calls “legacy”.

That’s simply the story of software development we all lived through:
16-bit DOS → 32-bit Windows → OOP and GUI → Web → Microservices → Cloud → AI.
What felt rock-solid and modern was always just a temporary stop. Yesterday became today, and today will soon be tomorrow.
And right into this gentle, slightly melancholic “Heast as nit” moment, AI comes crashing in.
For many of us the first reaction is unease, even fear – another thing that feels like “this is no longer our world”.
But if you look closer, AI is actually a gift for exactly our generation of developers.
All the tedious detail work that used to eat days – obscure syntax variants, endless API quirks, miles of boilerplate code, hunting down that one parameter that makes everything work under Windows 11 – we can finally hand that over to the assistant.
The machine is simply better and faster at that stuff than we ever were.

What’s left for us is exactly where our decades of experience still shine:
concept, architecture, understanding the real problem, asking the right questions.
Instead of wrestling for hours with yet another special case in a grid control, we can finally ask again:
“What should this program actually improve in a user’s daily life? How does it fit into the bigger picture? What would be truly useful?”
That’s why now is the perfect time to revive the conversation in this forum – real conversation between us humans.
AI can help us think, design, prototype, and even write production-ready code in minutes.
But doubting, encouraging each other, discussing ideas, drawing boundaries, and dreaming up new projects together – that’s still something only we can do.
If we let the assistant take care of the technical trivia and start talking again about concepts, program ideas, and maybe even joint open-source projects, then AI won’t be the end of our little world.
It will put the excitement back into it.
Technical acceleration through AI on one side, and a conscious return to real discussions, shared experience, and old (and new) friendships on the other – maybe that’s the unique chance of our time.
So yes, time flies – “Heast as nit”.
But for the first time in many years I’m genuinely curious again about what we could still build together.
Who’s in?
Best regards,
Otto

https://www.youtube.com/watch?v=XfJMJw3uwxk

Don’t you hear
how time slips away?

Just yesterday
people spoke in a completely different way.

The young have grown old
and the old have passed away.

And yesterday has turned into today,
and today will soon be tomorrow.

Don’t you hear,
don’t you hear,
how time slips away,
don’t you hear how time slips away …

https://www.youtube.com/watch?v=XfHIRtAUuMM

Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Re: Errsys Propio
Posted: Tue Jan 20, 2026 01:00 PM

Karinha!

rjviotti@gmail.com

Gracias!

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar

Continue the discussion