<![CDATA[FiveTech Software tech support forums]]> https://forums.fivetechsupport.com/~fivetec1/forums Wed, 19 Feb 2025 15:58:36 -0700 Smartfeed extension for phpBB https://forums.fivetechsupport.com/~fivetec1/forums/styles/prosilver/theme/images/site_logo.svg <![CDATA[FiveTech Software tech support forums]]> https://forums.fivetechsupport.com/~fivetec1/forums en-gb Wed, 19 Feb 2025 15:58:36 -0700 60 <![CDATA[FiveWin for Harbour/xHarbour :: Re: How to convert LIB from .NET dll file :: Reply by richard-service]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45323&p=277088#p277088
Antonio Linares wrote: Sun Jan 19, 2025 7:12 pm Dear Richard,

Yes, it's possible to use a .NET DLL from a C application, although it requires specific steps since they are different environments. There are two main approaches:

COM Interop

First, you need to expose the .NET DLL as a COM component
Register the .NET assembly using regasm.exe
Then you can use the functionality from C through the COM interface

C++/CLI as a bridge

Create an intermediate DLL using C++/CLI that serves as a "wrapper"
This DLL can communicate with both native C code and .NET code
The C application calls the wrapper DLL, which in turn calls the .NET DLL

Here's a basic example using the C++/CLI approach:

Code: Select all | Expand

// Wrapper.h - Intermediate DLL in C++/CLI
#pragma once

// Exported function that the C application can call
extern "C" __declspec(dllexport) int CallDotNetFunction(int param);

// Wrapper.cpp
#include "Wrapper.h"
#using "MyNetDLL.dll"

int CallDotNetFunction(int param) {
    // Call the class/method from the .NET DLL
    MyNetDLL::MyClass^ instance = gcnew MyNetDLL::MyClass();
    return instance->MyMethod(param);
}

Code: Select all | Expand

// C Application
#include <windows.h>

typedef int (*CallDotNetFunction)(int);

int main() {
    HMODULE hDll = LoadLibrary("Wrapper.dll");
    CallDotNetFunction func = (CallDotNetFunction)GetProcAddress(hDll, "CallDotNetFunction");
    
    int result = func(42);
    
    FreeLibrary(hDll);
    return 0;
}
Dear Antonio,

I'll try it again.
Thank you.]]>
no_email@example.com (richard-service) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45323&p=277088#p277088 Mon, 20 Jan 2025 21:52:54 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45323&p=277088#p277088
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xbrowse, bkeydown and number :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45289&p=277098#p277098 Browse or any control/window.]]> no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45289&p=277098#p277098 Tue, 21 Jan 2025 09:56:32 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45289&p=277098#p277098 <![CDATA[FiveWin for Harbour/xHarbour :: Re: xbrowse, bkeydown and number :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45290&p=277099#p277099 no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45290&p=277099#p277099 Tue, 21 Jan 2025 10:01:32 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45290&p=277099#p277099 <![CDATA[FiveWin for Harbour/xHarbour :: Thanks for posts :: Author Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45338&p=277142#p277142 Maybe it would be a good idea to activate the "Thanks for posts" feature in the new version of the forum.
Best regards,
Otto]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45338&p=277142#p277142 Thu, 23 Jan 2025 00:22:36 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45338&p=277142#p277142
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Thanks for posts :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45338&p=277143#p277143
good morning,

Do you mean "likes" ? :)

Not sure if there is a phpbb extension for it. We need to search it.]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45338&p=277143#p277143 Thu, 23 Jan 2025 00:44:50 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45338&p=277143#p277143
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Thanks for posts :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45338&p=277145#p277145 https://www.phpbb.com/customise/db/exte ... r_posts_2/

Is this the one that you mean ?]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45338&p=277145#p277145 Thu, 23 Jan 2025 00:48:41 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45338&p=277145#p277145
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Thanks for posts :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45338&p=277162#p277162

Image]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45338&p=277162#p277162 Thu, 23 Jan 2025 13:02:37 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45338&p=277162#p277162
<![CDATA[FiveWin for Harbour/xHarbour :: New "like / thanks" option in the forums ! :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45339&p=277163#p277163

Image]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45339&p=277163#p277163 Thu, 23 Jan 2025 13:03:59 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45339&p=277163#p277163
<![CDATA[FiveWin for Harbour/xHarbour :: Implementing SetDarkTheme() for next FWH :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45337&p=277141#p277141
We do appreciate your feedback :)

Image]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45337&p=277141#p277141 Wed, 22 Jan 2025 23:20:07 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45337&p=277141#p277141
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Implementing SetDarkTheme() for next FWH :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45337&p=277159#p277159
Desde nuestro punto de vista, pinta bien :D :D :D :D

1- Puede no ser tan dark, ósea se puede establecer un color que elijamos, tirando un poco más a gris?
2- Va a aplicar para todos los objetos, incluyendo los ButtonBar y las RibbonBar?

De momento esas son nuestras inquietudes

Image]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45337&p=277159#p277159 Thu, 23 Jan 2025 07:52:36 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45337&p=277159#p277159
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Implementing SetDarkTheme() for next FWH :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45337&p=277166#p277166 ]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45337&p=277166#p277166 Thu, 23 Jan 2025 13:10:39 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45337&p=277166#p277166 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Using new Class TDeepSeek for documenting :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277174#p277174
documenta esta clase proporcionando una explicación general de la misma, asi como listando todas sus DATAs y Métodos asi como una descripción de cada uno de ellos, describiendo cada parámetro usado asi como el valor de retorno. A ser posible proporciona un breve ejemplo de uso de cada método.
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277174#p277174 Fri, 24 Jan 2025 03:05:07 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277174#p277174
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using new Class TDeepSeek for documenting :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277175#p277175
Generated with https://aistudio.google.com/prompts/new_chat and the new Gemini Flash 2.0 Thinking Experimental 01-21

Gemini requires a PDF so in order to generate it we opened the PRG from Chrome then printed it as a PDF.

Code: Select all | Expand

Methods of the TXBrowse Class

Here's a detailed list of the methods of the TXBrowse class, including parameters, return values, and usage examples:

1. New( oWnd )

Description: Constructor for the TXBrowse class. Creates a new TXBrowse object as a child of the specified window.

Parameters:

oWnd: OBJECT - The parent TWindow object for the browse control.

Return Value: OBJECT - Returns the newly created TXBrowse object (Self).

Usage Example:

oBrw := TXBrowse():New( oWnd )
content_copy
download
Use code with caution.
Harbour

2. Destroy()

Description: Destructor for the TXBrowse class. Releases resources associated with the browse control, including bitmaps, pens, brushes, and data connections.

Parameters: None

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:Destroy()
content_copy
download
Use code with caution.
Harbour

3. SetStyle( nStyle )

Description: Sets the visual style of the browse control.

Parameters:

nStyle: NUMERIC or CODEBLOCK - Style number (e.g., 2007, flat) or a codeblock that returns a color gradient specification.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetStyle( 2007 ) // Sets the style to the 2007 visual style.
oBrw:SetStyle( { |lInvert| { { 1/3, nRGB( 255, 253, 222 ), nRGB( 255, 231, 151 ) }, { 2/3, nRGB( 255, 215, 84 ), nRGB( 255, 233, 162 ) } } } ) // Sets a custom gradient.
content_copy
download
Use code with caution.
Harbour

4. SetDarkTheme( nTheme )

Description: Sets the browse control to a dark theme appearance.

Parameters:

nTheme: NUMERIC - Theme number (currently only 1 is supported for dark theme).

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetDarkTheme( 1 ) // Enables dark theme.
content_copy
download
Use code with caution.
Harbour

5. SetRecSelBmp( uNew )

Description: Sets the bitmap used for the record selector triangle.

Parameters:

uNew: CHARACTER or NUMERIC - Path to a bitmap file or 0 to use the default arrow bitmap or NIL for no bitmap.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetRecSelBmp( "myarrow.bmp" ) // Sets a custom bitmap for record selector.
oBrw:SetRecSelBmp( 0 ) // Uses default arrow bitmap.
oBrw:SetRecSelBmp( nil ) // Removes the bitmap.
content_copy
download
Use code with caution.
Harbour

6. SetRecSelSl( nType )

Description: Sets the record selector to display either record numbers or key numbers.

Parameters:

nType: NUMERIC - 1 to display record numbers (RecNo), 2 to display key numbers (KeyNo), or any other value to display nothing.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetRecSelSl( 1 ) // Displays record numbers in the selector column.
oBrw:SetRecSelSl( 2 ) // Displays key numbers in the selector column.
oBrw:SetRecSelSl( 0 ) // Hides the record number/key number display.
content_copy
download
Use code with caution.
Harbour

7. SetRightFreeze( oCol )

Description: Sets a column as the right-freeze column, which remains visible when horizontally scrolling.

Parameters:

oCol: OBJECT or NUMERIC - TxBrwColumn object or column index (number) to be frozen on the right side, or NIL to remove right-freeze column.

Return Value: OBJECT - Returns the right-freeze TxBrwColumn object or NIL if no right-freeze column is set.

Usage Example:

oBrw:SetRightFreeze( oBrw:aCols[ 3 ] ) // Freezes the 3rd column on the right.
oBrw:SetRightFreeze( 3 ) // Freezes the 3rd column on the right.
oBrw:SetRightFreeze( nil ) // Removes any right-freeze column.
content_copy
download
Use code with caution.
Harbour

8. nAt()

Description: Returns the index of the currently selected column within the displayed columns array.

Parameters: None

Return Value: NUMERIC - Index of the selected column in aDisplay array.

Usage Example:

nColIndex := oBrw:nAt()
content_copy
download
Use code with caution.
Harbour

9. EraseBkGnd()

Description: Erases the background of the browse control.

Parameters: None

Return Value: NUMERIC - Always returns 1.

Usage Example:

oBrw:EraseBkGnd()
content_copy
download
Use code with caution.
Harbour

10. cGenPrg( lDlgUnits )

Description: Generates a code snippet (PRG code) to recreate the browse control with its current settings.

Parameters:

lDlgUnits: LOGICAL - Flag indicating if dialog units should be used for size and position.

Return Value: CHARACTER - String containing the generated PRG code.

Usage Example:

cPrgCode := oBrw:cGenPrg( .T. ) // Generates PRG code using dialog units.
content_copy
download
Use code with caution.
Harbour

11. SetRDD( lAddColumns, lAutoOrder, aFldNames, aRows )

Description: Sets the data source to an RDD (e.g., DBF database).

Parameters:

lAddColumns: LOGICAL - .T. to automatically add columns based on DBF fields, .F. otherwise.

lAutoOrder: LOGICAL - .T. to enable automatic ordering based on index tags, .F. otherwise.

aFldNames: ARRAY - Array of field names to include as columns (optional, if lAddColumns is .T.).

aRows: ARRAY - Array data (optional, if array data is used instead of RDD).

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetRDD( .T., .T. ) // Sets DBF as datasource, automatically adding columns and enabling auto-order.
oBrw:SetRDD( .F., .F., { "FIELD1", "FIELD2" } ) // Sets DBF and specifies columns to add.
content_copy
download
Use code with caution.
Harbour

12. SQLRDD_OrdKeyNo( n )

Description: Sets or gets the order key number for SQLRDD data source.

Parameters:

n: NUMERIC - Order key number to set (optional).

Return Value: NUMERIC - Returns the current order key number.

Usage Example:

nKeyNo := oBrw:SQLRDD_OrdKeyNo() // Gets current order key number.
oBrw:SQLRDD_OrdKeyNo( 5 ) // Sets the order key number to 5.
content_copy
download
Use code with caution.
Harbour

13. SQLRDD_OrdkeyGoto( n )

Description: Moves the record pointer in SQLRDD to the specified order key number.

Parameters:

n: NUMERIC - Order key number to go to.

Return Value: None

Usage Example:

oBrw:SQLRDD_OrdkeyGoto( 10 ) // Moves to order key number 10.
content_copy
download
Use code with caution.
Harbour

14. SQLRDD_CalcKeyNo()

Description: Recalculates and returns the current key number for SQLRDD data source.

Parameters: None

Return Value: NUMERIC - Returns the calculated key number.

Usage Example:

nKeyNo := oBrw:SQLRDD_CalcKeyNo()
content_copy
download
Use code with caution.
Harbour

15. SQLRDD_BookMark( nGoTo )

Description: Sets or gets a bookmark for SQLRDD data source based on record number.

Parameters:

nGoTo: NUMERIC - Record number to bookmark (optional).

Return Value: NUMERIC - Returns the current bookmark value (record number).

Usage Example:

nBookmark := oBrw:SQLRDD_BookMark() // Gets current bookmark.
oBrw:SQLRDD_BookMark( 25 ) // Sets bookmark to record number 25.
content_copy
download
Use code with caution.
Harbour

16. SQLRDD_Skipper( n )

Description: Skips records forward or backward in SQLRDD data source.

Parameters:

n: NUMERIC - Number of records to skip (positive for forward, negative for backward).

Return Value: NUMERIC - Returns the number of records actually skipped.

Usage Example:

nSkipped := oBrw:SQLRDD_Skipper( 10 ) // Skips 10 records forward.
nSkipped := oBrw:SQLRDD_Skipper( -5 ) // Skips 5 records backward.
content_copy
download
Use code with caution.
Harbour

17. SQLRDD_Adjust()

Description: Adjusts the browse control for SQLRDD data source (internal method).

Parameters: None

Return Value: None

Usage Example: (Internal use only)

18. SQLRDD_SaveState()

Description: Saves the state of the browse control for SQLRDD data source (internal method).

Parameters: None

Return Value: None

Usage Example: (Internal use only)

19. ResetData( uSrc, aCols )

Description: Resets the browse control's data and columns.

Parameters:

uSrc: - New data source (can be array, DBF alias, or other supported types).

aCols: ARRAY - Array of column specifications for the new data (optional).

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:ResetData( "NEW_DBF_ALIAS" ) // Resets data to a new DBF alias.
oBrw:ResetData( myNewArray, myColumnSpecs ) // Resets data to a new array with specified columns.
content_copy
download
Use code with caution.
Harbour

20. SetArray( aData, lAutoOrder, nColOrder, aCols, bOnSkip )

Description: Sets the data source to an array.

Parameters:

aData: ARRAY - Two-dimensional array containing the data to display.

lAutoOrder: LOGICAL - .T. to enable auto-ordering, .F. otherwise.

nColOrder: NUMERIC - Column index to order the array data by (if lAutoOrder is .T.).

aCols: ARRAY - Array of column specifications (optional).

bOnSkip: CODEBLOCK - Codeblock to execute on skip operations (optional).

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetArray( myDataArray, .T., 2 ) // Sets array data, enables auto-order by 2nd column.
oBrw:SetArray( myDataArray, .F., , myColumnSpecs ) // Sets array data with custom column specs.
content_copy
download
Use code with caution.
Harbour

21. SetoDbf( oDbf, aCols, lAutoSort, lAutoCols, aRows )

Description: Sets the data source to an ODBF object.

Parameters:

oDbf: OBJECT - ODBF object representing the database table.

aCols: ARRAY - Array of column specifications (optional).

lAutoSort: LOGICAL - .T. to enable auto-sorting, .F. otherwise.

lAutoCols: LOGICAL - .T. to automatically add columns based on DBF fields, .F. otherwise.

aRows: ARRAY - Array data (optional, if array data is used instead of DBF).

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetoDbf( myDbfObject, myColumnSpecs, .T., .F. ) // Sets ODBF object as datasource with custom columns and auto-sorting enabled.
content_copy
download
Use code with caution.
Harbour

22. SetExcelRange( oRange, lHeaders, aCols )

Description: Sets the data source to an Excel range object.

Parameters:

oRange: OBJECT - Excel Range object.

lHeaders: LOGICAL - .T. if the first row of the range contains headers, .F. otherwise.

aCols: ARRAY - Array of column specifications (optional).

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetExcelRange( myExcelRange, .T. ) // Sets Excel range as data source with headers.
content_copy
download
Use code with caution.
Harbour

23. SetAdo( oRs, lAddCols, lAutoOrder, aFldNames )

Description: Sets the data source to an ADO recordset object.

Parameters:

oRs: OBJECT - ADO Recordset object.

lAddCols: LOGICAL - .T. to automatically add columns based on recordset fields, .F. otherwise.

lAutoOrder: LOGICAL - .T. to enable auto-ordering, .F. otherwise.

aFldNames: ARRAY - Array of field names to include as columns (optional, if lAddColumns is .T.).

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetAdo( myAdoRecordset, .T., .T. ) // Sets ADO recordset as data source with auto-columns and auto-order.
content_copy
download
Use code with caution.
Harbour

24. SetTree( oTree, aResource, bOnSkip, aCols )

Description: Sets the data source to a Tree object.

Parameters:

oTree: OBJECT - Tree object.

aResource: - Resource for tree bitmaps (optional).

bOnSkip: CODEBLOCK - Codeblock to execute on skip operations (optional).

aCols: ARRAY - Array of column specifications (optional).

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetTree( myTreeObject, "tree_bmp_resource" ) // Sets Tree object as data source.
content_copy
download
Use code with caution.
Harbour

25. SetColsForTree( uData )

Description: Sets columns for a tree browse based on data type.

Parameters:

uData: - Data type indicator for tree browse columns.

Return Value: None

Usage Example: (Internal use, called within SetTree)

26. InvertPivot()

Description: Inverts the pivot of the browse control (rotates data 90 degrees).

Parameters: None

Return Value: None

Usage Example:

oBrw:InvertPivot()
content_copy
download
Use code with caution.
Harbour

27. ArrCalcWidths( aData, aCols, nMaxRows )

Description: Calculates column widths based on array data and column specifications.

Parameters:

aData: ARRAY - Data array.

aCols: ARRAY - Column specifications array.

nMaxRows: NUMERIC - Maximum number of rows to consider for width calculation.

Return Value: ARRAY - Array containing calculated column widths.

Usage Example: (Internal use, called within AutoFit)

28. GetColsData( cData, lByCreationOrder )

Description: Retrieves column data as an array of values for a specified column DATA member.

Parameters:

cData: CHARACTER - Name of the column DATA member to retrieve (e.g., "cHeader", "nWidth").

lByCreationOrder: LOGICAL - .T. to return data in creation order, .F. in display order.

Return Value: ARRAY - Array of values for the specified column DATA member.

Usage Example:

aColumnHeaders := oBrw:GetColsData( "cHeader" ) // Gets all column headers.
aColumnWidths := oBrw:GetColsData( "nWidth", .T. ) // Gets column widths in creation order.
content_copy
download
Use code with caution.
Harbour

29. SetColsData( cData, aValues, lByCreationOrder )

Description: Sets column data based on an array of values for a specified column DATA member.

Parameters:

cData: CHARACTER - Name of the column DATA member to set (e.g., "cHeader", "nWidth").

aValues: ARRAY - Array of values to set for the column DATA member.

lByCreationOrder: LOGICAL - .T. to set data in creation order, .F. in display order.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetColsData( "cHeader", myColumnHeaders ) // Sets column headers.
oBrw:SetColsData( "nWidth", myWidthValues, .T. ) // Sets column widths in creation order.
content_copy
download
Use code with caution.
Harbour

30. SetGroupHeader( cGrpHdr, nFrom, nUpto, oFont, nAlign, nHeight )

Description: Sets a group header for a range of columns.

Parameters:

cGrpHdr: CHARACTER - Group header text.

nFrom: NUMERIC - Starting column index for the group.

nUpto: NUMERIC - Ending column index for the group.

oFont: OBJECT - Font object for the group header (optional).

nAlign: NUMERIC - Alignment for the group header text (AL_LEFT, AL_CENTER, AL_RIGHT).

nHeight: NUMERIC - Height of the group header (optional).

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetGroupHeader( "Customer Information", 1, 3, myHeaderFont, AL_CENTER, 30 ) // Sets group header for columns 1-3.
content_copy
download
Use code with caution.
Harbour

31. SetGroupTotal( aCols, cHead, nType, oFont )

Description: Sets a group total row for specified columns.

Parameters:

aCols: ARRAY - Array of column indices to calculate totals for.

cHead: CHARACTER - Header text for the group total row.

nType: NUMERIC - Aggregation type (AGGR_SUM, AGGR_AVG, AGGR_MIN, AGGR_MAX, AGGR_COUNT, AGGR_STD, AGGR_STDEVP).

oFont: OBJECT - Font object for the group total row (optional).

Return Value: None

Usage Example:

oBrw:SetGroupTotal( { 4, 5 }, "Total Sales", AGGR_SUM, myTotalFont ) // Sets group total row for columns 4 and 5 with sum aggregation.
content_copy
download
Use code with caution.
Harbour

32. ResetBrowse()

Description: Resets the browse control to its initial state, clearing data, columns, and settings.

Parameters: None

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:ResetBrowse()
content_copy
download
Use code with caution.
Harbour

33. SetColFromADO( cnCol, lAutoOrder, aRsColNames, l1900, cAdoDB )

Description: Sets column properties from an ADO field object.

Parameters:

cnCol: - Column identifier (field name or index).

lAutoOrder: LOGICAL - .T. to enable auto-ordering, .F. otherwise.

aRsColNames: ARRAY - Array of ADO column names (optional).

l1900: LOGICAL - Flag for 1900 date handling (optional).

cAdoDB: CHARACTER - ADO database connection string (optional).

Return Value: OBJECT - Returns the TxBrwColumn object.

Usage Example: (Internal use, called within SetADO)

34. ArrCell( nRow, nCol, cPic, lDispZeros )

Description: Retrieves the content of a specific cell in array data source.

Parameters:

nRow: NUMERIC - Row index (1-based).

nCol: NUMERIC - Column index (1-based).

cPic: CHARACTER - Picture format string (optional).

lDispZeros: LOGICAL - .T. to display zeros, .F. otherwise (optional).

Return Value: - Content of the cell (data type depends on array data).

Usage Example:

cellValue := oBrw:ArrCell( 2, 3 ) // Gets value from row 2, column 3.
content_copy
download
Use code with caution.
Harbour

35. ArrCellSet( nRow, nCol, uNewVal, lTrim )

Description: Sets the content of a specific cell in array data source.

Parameters:

nRow: NUMERIC - Row index (1-based).

nCol: NUMERIC - Column index (1-based).

uNewVal: - New value to set for the cell.

lTrim: LOGICAL - .T. to trim string values, .F. otherwise.

Return Value: - Content of the cell after setting the new value.

Usage Example:

oBrw:ArrCellSet( 3, 1, "New Value" ) // Sets value in row 3, column 1.
content_copy
download
Use code with caution.
Harbour

36. ShowMessage( cMsg, nSecs, nClrText, nClrBack )

Description: Displays a temporary message box within the browse control.

Parameters:

cMsg: CHARACTER - Message text to display.

nSecs: NUMERIC - Duration to display the message in seconds (0 for indefinite).

nClrText: - Text color for the message (optional).

nClrBack: - Background color for the message (optional).

Return Value: None

Usage Example:

oBrw:ShowMessage( "Processing data...", 5 ) // Shows message for 5 seconds.
content_copy
download
Use code with caution.
Harbour

37. CloseMessage()

Description: Closes the message box displayed by ShowMessage().

Parameters: None

Return Value: None

Usage Example:

oBrw:CloseMessage()
content_copy
download
Use code with caution.
Harbour

38. SetPos( nRow, nCol, lPixel, bAction )

Description: Sets the browse cursor position to a specific cell.

Parameters:

nRow: NUMERIC - Row index (1-based).

nCol: NUMERIC - Column index (1-based).

lPixel: LOGICAL - .T. if row/col are pixel coordinates, .F. if row/col are row/column indices.

bAction: CODEBLOCK - Codeblock to execute after repositioning (optional).

Return Value: None

Usage Example:

oBrw:SetPos( 10, 2 ) // Sets cursor to row 10, column 2.
oBrw:SetPos( 50, 100, .T. ) // Sets cursor position by pixel coordinates.
content_copy
download
Use code with caution.
Harbour

39. SetBackGround( uBack, uBckMode )

Description: Sets the background appearance of the browse control.

Parameters:

uBack: - Background color or bitmap resource.

uBckMode: - Background mode (gradient style or bitmap tiling, optional).

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetBackGround( CLR_WHITE ) // Sets white background color.
oBrw:SetBackGround( "background.bmp", 1 ) // Sets background bitmap with vertical gradient.
content_copy
download
Use code with caution.
Harbour

40. MakeBrush()

Description: Creates a brush object for painting the background (internal method).

Parameters: None

Return Value: OBJECT - Returns the created brush object.

Usage Example: (Internal use only)

41. DataRect()

Description: Returns a TRect object representing the data area of the browse (internal method).

Parameters: None

Return Value: OBJECT - Returns a TRect object.

Usage Example: (Internal use only)

42. cBmpAdjBrush( cFile )

Description: Sets or gets the bitmap brush for background adjustment, creating one if needed.

Parameters:

cFile: CHARACTER - Path to a bitmap file (optional, for SET mode).

Return Value: - In GET mode, returns the bitmap brush object. In SET mode, returns the TXBrowse object (Self).

Usage Example:

oBrw:cBmpAdjBrush( "my_background_brush.bmp" ) // Sets a bitmap brush from file.
hBrush := oBrw:cBmpAdjBrush() // Gets the current bitmap brush.
content_copy
download
Use code with caution.
Harbour

43. ColStretch( nStretchCol )

Description: Stretches a column to fill available space in the browse control.

Parameters:

nStretchCol: NUMERIC - Column index to stretch (optional, if not provided, stretches last column).

Return Value: None

Usage Example:

oBrw:ColStretch( 2 ) // Stretches the 2nd column.
oBrw:ColStretch() // Stretches the last column.
content_copy
download
Use code with caution.
Harbour

44. DestroyToolTip()

Description: Destroys the tooltip control (internal method).

Parameters: None

Return Value: None

Usage Example: (Internal use only)

45. NcMouseMove( nHitTestCode, nRow, nCol )

Description: Handles WM_NCMOUSEMOVE message (non-client mouse move, internal method).

Parameters:

nHitTestCode: NUMERIC - Hit test code.

nRow: NUMERIC - Row index.

nCol: NUMERIC - Column index.

Return Value: None

Usage Example: (Internal use only)

46. MouseLeave( nRow, nCol, nFlags )

Description: Handles mouse leave event (internal method).

Parameters:

nRow: NUMERIC - Row index.

nCol: NUMERIC - Column index.

nFlags: NUMERIC - Mouse event flags.

Return Value: None

Usage Example: (Internal use only)

47. NcMouseMove( nHitTestCode, nRow, nCol )

Description: Handles WM_NCMOUSEMOVE message (non-client mouse move, internal method).

Parameters:

nHitTestCode: NUMERIC - Hit test code.

nRow: NUMERIC - Row index.

nCol: NUMERIC - Column index.

Return Value: None

Usage Example: (Internal use only)

48. MouseLeave( nRow, nCol, nFlags )

Description: Handles mouse leave event (internal method).

Parameters:

nRow: NUMERIC - Row index.

nCol: NUMERIC - Column index.

nFlags: NUMERIC - Mouse event flags.

Return Value: None

Usage Example: (Internal use only)

49. uDataSource()

Description: Accessor for the data source object (ODBF, ADO, MySQL, or Array) (internal method).

Parameters: None

Return Value: - Returns the data source object.

Usage Example: (Internal use only)

50. DataRow( lNew, cFieldList, lSourceData, aInitVals )

Description: Creates or edits a data row object (TXBrwRow).

Parameters:

lNew: LOGICAL - .T. to create a new row, .F. to edit current row.

cFieldList: CHARACTER - Comma-separated string of field names (optional).

lSourceData: LOGICAL - .T. if using source data, .F. otherwise (optional).

aInitVals: ARRAY - Array of initial values for new row (optional).

Return Value: OBJECT - Returns the created or edited TXBrwRow object.

Usage Example:

oNewRow := oBrw:DataRow( .T. ) // Creates a new data row object.
oEditRow := oBrw:DataRow( .F. ) // Edits the current data row.
content_copy
download
Use code with caution.
Harbour

51. EditSource( lNew, cFieldList, lNavigate, aInitVals, bSetup )

Description: Edits the data source (RDD, Array) in a modal dialog.

Parameters:

lNew: LOGICAL - .T. for new record, .F. for edit current record.

cFieldList: CHARACTER - Field list to edit (optional).

lNavigate: LOGICAL - .T. to enable navigation buttons in dialog, .F. otherwise.

aInitVals: ARRAY - Array of initial values for new record (optional).

bSetup: CODEBLOCK - Codeblock to customize the edit dialog (optional).

Return Value: OBJECT - Returns the edited TXBrowse object (Self).

Usage Example:

oBrw:EditSource( .F., "FIELD1, FIELD2" ) // Edits current record in a dialog, displaying only FIELD1 and FIELD2.
content_copy
download
Use code with caution.
Harbour

52. EditBrowse( lNew, cFieldList, lNavigate )

Description: Edits the data source (RDD, Array) in a browse-like modal dialog.

Parameters:

lNew: LOGICAL - .T. for new record, .F. for edit current record.

cFieldList: CHARACTER - Field list to edit (optional).

lNavigate: LOGICAL - .T. to enable navigation buttons in dialog, .F. otherwise.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:EditBrowse( .T. ) // Opens a browse-like dialog to add a new record.
content_copy
download
Use code with caution.
Harbour

53. Edit( lNew, cFieldList, lSourceData, lNavigate, aInitVals, bSetup )

Description: General method for editing data in a modal dialog, automatically choosing between EditSource and EditBrowse based on lSourceData flag.

Parameters: (Same as EditSource and EditBrowse)

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Used internally, calls either EditSource or EditBrowse based on parameters)

54. Delete( lMsg )

Description: Deletes the current record from the data source.

Parameters:

lMsg: LOGICAL - .T. to display a confirmation message, .F. otherwise.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:Delete( .T. ) // Deletes current record with confirmation message.
content_copy
download
Use code with caution.
Harbour

55. SetOrderNatural()

Description: Sets the browse order to natural order (no sorting).

Parameters: None

Return Value: None

Usage Example:

oBrw:SetOrderNatural()
content_copy
download
Use code with caution.
Harbour

56. SetChecks( aBmp, lEdit, aPrompt )

Description: Enables checkboxes in a column for logical data type.

Parameters:

aBmp: ARRAY - Array of bitmaps for checkbox states (optional).

lEdit: LOGICAL - .T. to enable editing checkboxes, .F. otherwise.

aPrompt: CHARACTER - Prompt text for checkboxes (optional).

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetChecks( , .T. ) // Enables editable checkboxes in the first column (if logical).
content_copy
download
Use code with caution.
Harbour

57. SetMultiSelectCol( uCol, lFooter )

Description: Sets a column as the multi-select column, enabling row selection using checkboxes.

Parameters:

uCol: OBJECT or NUMERIC - TxBrwColumn object or column index for multi-select column.

lFooter: LOGICAL - .T. to show selected row count in footer, .F. otherwise.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetMultiSelectCol( 1, .T. ) // Makes the first column a multi-select column, showing selected count in footer.
content_copy
download
Use code with caution.
Harbour

58. SafeEval( RetVal_ifFailed, bBlock, params_for_bBlock, ... )

Description: Safely evaluates a codeblock, returning a default value if an error occurs (internal method).

Parameters:

RetVal_ifFailed: - Value to return if codeblock evaluation fails.

bBlock: CODEBLOCK - Codeblock to evaluate.

params_for_bBlock: - Optional parameters to pass to the codeblock.

Return Value: - Result of codeblock evaluation or RetVal_ifFailed if error.

Usage Example: (Internal use only)

59. AddVar( uKey, uVal )

Description: Adds a variable to the hCargo hash table for storing custom data associated with the browse control.

Parameters:

uKey: - Key for the variable in the hCargo hash.

uVal: - Value to store for the variable.

Return Value: None

Usage Example:

oBrw:AddVar( "MyCustomSetting", "Some Value" ) // Adds a custom setting to the browse.
content_copy
download
Use code with caution.
Harbour

60. lPasteReady()

Description: Checks if clipboard content is in a paste-ready format (internal method).

Parameters: None

Return Value: LOGICAL - .T. if paste-ready, .F. otherwise.

Usage Example: (Internal use only)

61. OnError()

Description: Default error handler for the TXBrowse class (internal method).

Parameters: None

Return Value: None

Usage Example: (Internal use only)

62. SetColumns( nRow, nCol, nFlags, oColumn )

Description: Sets properties of a specific column (internal method).

Parameters:

nRow: NUMERIC - Row index.

nCol: NUMERIC - Column index.

nFlags: NUMERIC - Flags.

oColumn: OBJECT - TxBrwColumn object.

Return Value: None

Usage Example: (Internal use only)

63. GoNextCtrl( hWnd )

Description: Moves focus to the next control in the window (internal method).

Parameters:

hWnd: - Handle to the current control window.

Return Value: None

Usage Example: (Internal use only)

64. GoPrevCtrl()

Description: Moves focus to the previous control in the window (virtual method).

Parameters: None

Return Value: None

Usage Example: (Internal use only, Virtual method for overriding)

65. SelFont()

Description: Selects the current font for the browse control (internal method).

Parameters: None

Return Value: None

Usage Example: (Internal use only)

66. SetFont( oFont, lResizeCols )

Description: Sets the font for the browse control.

Parameters:

oFont: OBJECT - Font object to set.

lResizeCols: LOGICAL - .T. to resize columns to fit new font, .F. otherwise.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetFont( myFontObject ) // Sets a new font for the browse.
oBrw:SetFont( myFontObject, .T. ) // Sets new font and resizes columns to fit.
content_copy
download
Use code with caution.
Harbour

67. FontSize( nPlus )

Description: Adjusts the font size by a specified increment.

Parameters:

nPlus: NUMERIC - Font size increment (positive to increase, negative to decrease).

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:FontSize( 2 ) // Increases font size by 2 points.
oBrw:FontSize( -1 ) // Decreases font size by 1 point.
content_copy
download
Use code with caution.
Harbour

68. ReCalcWH()

Description: Recalculates width and height of browse elements based on current settings (internal method).

Parameters: None

Return Value: None

Usage Example: (Internal use only)

69. DrawSelect()

Description: Draws the selection indicator line (internal method).

Parameters: None

Return Value: None

Usage Example: (Internal use only)

70. RefreshCurrent()

Description: Refreshes the currently selected row (internal method).

Parameters: None

Return Value: None

Usage Example: (Internal use only)

71. oRow()

Description: Accessor for the current row data in array data source (internal method).

Parameters: None

Return Value: - Returns the current row data as an array element.

Usage Example: (Internal use only)

72. oCol( u )

Description: Retrieves a TxBrwColumn object by its index or object reference.

Parameters:

u: NUMERIC or OBJECT - Column index (1-based) or TxBrwColumn object.

Return Value: OBJECT - Returns the TxBrwColumn object or NIL if not found.

Usage Example:

oColumn := oBrw:oCol( 2 ) // Gets the TxBrwColumn object for the 2nd column.
content_copy
download
Use code with caution.
Harbour

73. RefreshHeaders()

Description: Refreshes the header area of the browse control (internal method).

Parameters: None

Return Value: None

Usage Example: (Internal use only)

74. RefreshFooters()

Description: Refreshes the footer area of the browse control (internal method).

Parameters: None

Return Value: None

Usage Example: (Internal use only)

75. ClpRow( lFullRow, aCols, lFormatted )

Description: Copies a row to the clipboard in text format.

Parameters:

lFullRow: LOGICAL - .T. to copy the entire row, .F. to copy only selected columns.

aCols: ARRAY - Array of column indices to copy (if lFullRow is .F., optional).

lFormatted: LOGICAL - .T. to format data for MSWord export, .F. otherwise.

Return Value: CHARACTER - String containing the row data in text format.

Usage Example:

cRowText := oBrw:ClpRow( .T. ) // Copies the entire current row to clipboard.
content_copy
download
Use code with caution.
Harbour

76. Copy( laRows, aCols )

Description: Copies rows to the clipboard.

Parameters:

laRows: LOGICAL or ARRAY - .T. to copy all rows, FALSE to copy current row, or ARRAY of row indices to copy.

aCols: ARRAY - Array of column indices to copy (optional).

Return Value: None

Usage Example:

oBrw:Copy( .T. ) // Copies all rows to clipboard.
oBrw:Copy( .F. ) // Copies current row to clipboard.
oBrw:Copy( { 1, 3, 5 } ) // Copies rows 1, 3, and 5.
content_copy
download
Use code with caution.
Harbour

77. Paste( cText )

Description: Pastes text from the clipboard into the browse control.

Parameters:

cText: CHARACTER - Text to paste (optional, if not provided, reads from clipboard).

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:Paste() // Pastes from clipboard to current cell.
oBrw:Paste( "Some Text to Paste" ) // Pastes provided text to current cell.
content_copy
download
Use code with caution.
Harbour

78. aCellCoor( nRow, nCol )

Description: Returns coordinates of a cell in pixels (internal method).

Parameters:

nRow: NUMERIC - Row index.

nCol: NUMERIC - Column index.

Return Value: ARRAY - Array containing cell coordinates {nTop, nLeft, nBottom, nRight}.

Usage Example: (Internal use only)

79. CellBitmap( nRow, nCol )

Description: Creates a bitmap of a cell (internal method).

Parameters:

nRow: NUMERIC - Row index.

nCol: NUMERIC - Column index.

Return Value: OBJECT - Returns the bitmap handle.

Usage Example: (Internal use only)

80. ShowMessage( cMsg, nSecs, nClrText, nClrBack )

Description: Displays a message in the browse control (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member ShowMessage)

Return Value: None

Usage Example:

oBrw:ShowMessage( { || "Loading Data..." }, 0 ) // Shows message using a codeblock.
content_copy
download
Use code with caution.
Harbour

81. CloseMessage()

Description: Closes the message box (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example:

oBrw:CloseMessage( { || .t. } ) // Closes message using a codeblock.
content_copy
download
Use code with caution.
Harbour

82. SetPos( nRow, nCol, lPixel, bAction )

Description: Sets the cursor position (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member SetPos)

Return Value: None

Usage Example:

oBrw:SetPos( 1, 1, .F., { || MsgInfo( "Cursor repositioned" ) } ) // Repositions cursor and executes codeblock.
content_copy
download
Use code with caution.
Harbour

83. SetBackGround( uBack, uBckMode )

Description: Sets the background appearance (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member SetBackGround)

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetBackGround( CLR_BLUE, 2 ) // Sets blue background with gradient using a codeblock.
content_copy
download
Use code with caution.
Harbour

84. MakeBrush()

Description: Creates a brush (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: OBJECT - Returns the created brush object.

Usage Example: (Internal use only - method version for codeblock usage)

85. DataRect()

Description: Returns DataRect (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: OBJECT - Returns a TRect object.

Usage Example: (Internal use only - method version for codeblock usage)

86. cBmpAdjBrush( cFile )

Description: Sets or gets bitmap brush (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member cBmpAdjBrush)

Return Value: - In GET mode, returns the bitmap brush object. In SET mode, returns the TXBrowse object (Self).

Usage Example: (Internal use only - method version for codeblock usage)

87. ColStretch( nStretchCol )

Description: Stretches column (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member ColStretch)

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

88. DestroyToolTip()

Description: Destroys tooltip (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

89. NcMouseMove( nHitTestCode, nRow, nCol )

Description: Handles WM_NCMOUSEMOVE (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member NcMouseMove)

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

90. MouseLeave( nRow, nCol, nFlags )

Description: Handles MouseLeave (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member MouseLeave)

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

91. uDataSource()

Description: Accessor for DataSource (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: - Returns the data source object.

Usage Example: (Internal use only - method version for codeblock usage)

92. DataRow( lNew, cFieldList, lSourceData, aInitVals )

Description: Creates DataRow (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member DataRow)

Return Value: OBJECT - Returns the created or edited TXBrwRow object.

Usage Example: (Internal use only - method version for codeblock usage)

93. EditSource( lNew, cFieldList, lNavigate, aInitVals, bSetup )

Description: Edits Source (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member EditSource)

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only - method version for codeblock usage)

94. EditBrowse( lNew, cFieldList, lNavigate )

Description: Ed
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277175#p277175 Fri, 24 Jan 2025 03:28:03 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277175#p277175
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using new Class TDeepSeek for documenting :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277176#p277176

Code: Select all | Expand

95. Edit( lNew, cFieldList, lSourceData, lNavigate, aInitVals, bSetup ) (Continued)

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Used internally, calls either EditSource or EditBrowse based on parameters)

96. Delete( lMsg )

Description: Deletes the current record from the data source.

Parameters:

lMsg: LOGICAL - .T. to display a confirmation message box before deletion, .F. for silent deletion.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:Delete( .T. ) // Deletes the current record with a confirmation prompt.
oBrw:Delete( .F. ) // Deletes the current record without confirmation.
content_copy
download
Use code with caution.
Harbour

97. SetOrderNatural()

Description: Resets the sorting order of the browse to its natural (unsorted) order.

Parameters: None

Return Value: None

Usage Example:

oBrw:SetOrderNatural() // Removes any sorting applied to the browse.
content_copy
download
Use code with caution.
Harbour

98. SetChecks( aBmp, lEdit, aPrompt )

Description: Enables checkboxes for the first column of the browse, typically used for selecting rows.

Parameters:

aBmp: ARRAY - Optional array containing bitmap handles for the checkbox states (checked, unchecked, null). If not provided, default bitmaps are used.

lEdit: LOGICAL - .T. to allow users to edit the checkbox state directly in the browse, .F. for read-only checkboxes.

aPrompt: CHARACTER - Optional prompt text associated with the checkboxes.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetChecks( , .T. ) // Adds editable checkboxes to the first column.
oBrw:SetChecks( { hBmpChecked, hBmpUnchecked }, .F., "Select Rows" ) // Adds read-only checkboxes with custom bitmaps and prompt.
content_copy
download
Use code with caution.
Harbour

99. SetMultiSelectCol( uCol, lFooter )

Description: Designates a specific column to function as a multi-select column, enabling row selection using checkboxes in that column.

Parameters:

uCol: OBJECT or NUMERIC - TxBrwColumn object or column index (number) to designate as the multi-select column.

lFooter: LOGICAL - .T. to display the count of selected rows in the footer, .F. to hide the count.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetMultiSelectCol( 1, .T. ) // Makes the first column the multi-select column, displaying selected count in the footer.
oBrw:SetMultiSelectCol( oBrw:oCol( "MyColumn" ), .F. ) // Makes "MyColumn" the multi-select column, hiding footer count.
content_copy
download
Use code with caution.
Harbour

100. SafeEval( RetVal_ifFailed, bBlock, params_for_bBlock, ... )

Description: Provides a safe way to evaluate a codeblock, trapping potential runtime errors and returning a default value if an error occurs. This is useful for preventing browse errors from crashing the application.

Parameters:

RetVal_ifFailed: - The value to be returned if the evaluation of bBlock results in an error.

bBlock: CODEBLOCK - The codeblock to be evaluated.

params_for_bBlock: - Optional parameters to be passed to the codeblock during evaluation.

Return Value: - The result of the codeblock evaluation if successful, or RetVal_ifFailed if an error occurs.

Usage Example: (Primarily for internal use, but can be used in custom codeblocks within TXBrowse)

nValue := oBrw:SafeEval( 0, { || Val( oBrw:ArrCell( 1, 1 ) ) } ) // Safely evaluates Val() on a cell, returns 0 if Val() fails.
content_copy
download
Use code with caution.
Harbour

101. AddVar( uKey, uVal )

Description: Allows adding custom variables to the hCargo hash table associated with the TXBrowse object. This provides a mechanism to store and retrieve custom data related to the browse.

Parameters:

uKey: - The key (identifier) for the variable within the hCargo hash table.

uVal: - The value to be stored for the variable.

Return Value: None

Usage Example:

oBrw:AddVar( "UserPreference", "Dark Mode" ) // Stores a user preference setting in hCargo.
customSetting := oBrw:hCargo[ "UserPreference" ] // Retrieves the custom setting.
content_copy
download
Use code with caution.
Harbour

102. lPasteReady()

Description: Checks if the data currently in the clipboard is in a format suitable for pasting into the TXBrowse control.

Parameters: None

Return Value: LOGICAL - Returns .T. if the clipboard data is paste-ready, .F. otherwise.

Usage Example: (Primarily used internally to determine if pasting functionality should be enabled)

103. OnError()

Description: Default error handler method for the TXBrowse class. This method is called when an error occurs within the browse control.

Parameters: None

Return Value: None

Usage Example: (Primarily for internal use; you can override this method to implement custom error handling)

104. SetColumns( nRow, nCol, nFlags, oColumn )

Description: Used internally to set properties of a specific column at a given row and column position, likely during column resizing or layout adjustments.

Parameters:

nRow: NUMERIC - Row index.

nCol: NUMERIC - Column index.

nFlags: NUMERIC - Flags.

oColumn: OBJECT - TxBrwColumn object.

Return Value: None

Usage Example: (Internal use only)

105. GoNextCtrl( hWnd )

Description: Moves the input focus to the next control within the same window as the TXBrowse control. This is often used for navigation between controls in a form or dialog.

Parameters:

hWnd: - Handle of the current control that has focus.

Return Value: None

Usage Example: (Used internally for control navigation)

106. GoPrevCtrl()

Description: Moves the input focus to the previous control in the window. This is a VIRTUAL method, meaning it's designed to be overridden in derived classes to customize the behavior of moving to the previous control.

Parameters: None

Return Value: None

Usage Example: (Virtual method, override in derived classes for custom behavior)

107. SelFont()

Description: Selects and retrieves the currently active font for the TXBrowse control.

Parameters: None

Return Value: None

Usage Example: (Internal use only, likely related to font handling within the control)

108. SetFont( oFont, lResizeCols )

Description: Sets the font to be used for displaying data within the TXBrowse control.

Parameters:

oFont: OBJECT - The TFont object representing the font to be applied.

lResizeCols: LOGICAL - .T. to automatically adjust column widths to fit the new font, .F. to keep column widths unchanged.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetFont( myFont, .T. ) // Applies 'myFont' and resizes columns to fit.
content_copy
download
Use code with caution.
Harbour

109. FontSize( nPlus )

Description: Dynamically adjusts the font size of the browse control, either increasing or decreasing it.

Parameters:

nPlus: NUMERIC - A positive value to increase the font size, or a negative value to decrease it.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:FontSize( 1 ) // Increases the font size by 1 point.
oBrw:FontSize( -2 ) // Decreases the font size by 2 points.
content_copy
download
Use code with caution.
Harbour

110. ReCalcWH()

Description: Recalculates the widths and heights of various elements within the TXBrowse control, such as headers, footers, and rows, based on the current font and other style settings. This is typically called internally after changes that might affect layout.

Parameters: None

Return Value: None

Usage Example: (Internal use only, called automatically when layout changes occur)

111. DrawSelect()

Description: Draws the visual indicator for the currently selected row (the record selector).

Parameters: None

Return Value: None

Usage Example: (Internal use only, called during painting to visually highlight the selected row)

112. RefreshCurrent()

Description: Refreshes the display of the currently selected row in the browse control. This is useful to update the display after data changes.

Parameters: None

Return Value: None

Usage Example:

oBrw:RefreshCurrent() // Updates the display of the current row.
content_copy
download
Use code with caution.
Harbour

113. aRow()

Description: Accessor method to retrieve the data for the currently selected row when using an array as the data source.

Parameters: None

Return Value: - Returns the data for the current row as an array element.

Usage Example:

currentRowData := oBrw:aRow // Retrieves data of the current row in array browse.
content_copy
download
Use code with caution.
Harbour

114. oCol( u )

Description: Retrieves a TxBrwColumn object associated with the TXBrowse control.

Parameters:

u: NUMERIC or OBJECT - Column index (1-based) or a direct reference to a TxBrwColumn object.

Return Value: OBJECT - Returns the TxBrwColumn object if found, otherwise returns NIL.

Usage Example:

oFirstColumn := oBrw:oCol( 1 ) // Retrieves the TxBrwColumn object for the first column.
content_copy
download
Use code with caution.
Harbour

115. RefreshHeaders()

Description: Refreshes the visual display of the header area of the TXBrowse control.

Parameters: None

Return Value: None

Usage Example:

oBrw:RefreshHeaders() // Redraws the header area to reflect changes.
content_copy
download
Use code with caution.
Harbour

116. RefreshFooters()

Description: Refreshes the visual display of the footer area of the TXBrowse control.

Parameters: None

Return Value: None

Usage Example:

oBrw:RefreshFooters() // Redraws the footer area to reflect changes, like updated totals.
content_copy
download
Use code with caution.
Harbour

117. ClpRow( lFullRow, aCols, lFormatted )

Description: Copies the data of a row to the clipboard, formatting it as text.

Parameters:

lFullRow: LOGICAL - .T. to copy all columns of the row, .F. to copy only specified columns.

aCols: ARRAY - (Optional) Array of column indices to copy if lFullRow is .F..

lFormatted: LOGICAL - .T. to format the text output for better compatibility with MS Word, .F. for plain text.

Return Value: CHARACTER - Returns a character string containing the formatted row data for the clipboard.

Usage Example:

clipboardText := oBrw:ClpRow( .T. ) // Copies the entire current row to the clipboard as formatted text.
content_copy
download
Use code with caution.
Harbour

118. Copy( laRows, aCols )

Description: Copies one or more rows from the browse to the clipboard.

Parameters:

laRows: LOGICAL or ARRAY - Specifies which rows to copy:

.T. : Copy all rows in the browse.

.F. : Copy only the currently selected row.

ARRAY : Copy rows at the specified indices in the array.

aCols: ARRAY - (Optional) Array of column indices to copy for the specified rows.

Return Value: None

Usage Example:

oBrw:Copy( .F. ) // Copies the currently selected row.
oBrw:Copy( .T., { 1, 3, 5 } ) // Copies all rows but only columns 1, 3, and 5.
content_copy
download
Use code with caution.
Harbour

119. Paste( cText )

Description: Pastes data from the clipboard into the browse control, starting at the currently selected cell.

Parameters:

cText: CHARACTER - (Optional) Text string to paste. If omitted, the method reads data from the clipboard.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:Paste() // Pastes clipboard data into the browse.
oBrw:Paste( "Data to paste" ) // Pastes the provided text directly.
content_copy
download
Use code with caution.
Harbour

120. aCellCoor( nRow, nCol )

Description: Retrieves the screen coordinates (top, left, bottom, right) of a specific cell within the browse control.

Parameters:

nRow: NUMERIC - Row index of the cell.

nCol: NUMERIC - Column index of the cell.

Return Value: ARRAY - Returns an array containing the coordinates: { nTop, nLeft, nBottom, nRight } in pixels.

Usage Example:

cellCoords := oBrw:aCellCoor( 5, 2 ) // Gets coordinates of the cell at row 5, column 2.
content_copy
download
Use code with caution.
Harbour

121. CellBitmap( nRow, nCol )

Description: Creates a bitmap image of a specific cell within the browse control.

Parameters:

nRow: NUMERIC - Row index of the cell.

nCol: NUMERIC - Column index of the cell.

Return Value: OBJECT - Returns a bitmap handle (HBITMAP) of the cell's content.

Usage Example:

hCellBitmap := oBrw:CellBitmap( 1, 1 ) // Creates a bitmap of the cell at row 1, column 1.
content_copy
download
Use code with caution.
Harbour

122. ShowMessage( cMsg, nSecs, nClrText, nClrBack )

Description: Displays a message overlay within the TXBrowse control. This is a method version of the ShowMessage DATA member, allowing for codeblock parameters.

Parameters: (Same as for the ShowMessage DATA member)

Return Value: None

Usage Example:

oBrw:ShowMessage( { || "Loading data..." }, 0 ) // Displays a message using a codeblock for the message text.
content_copy
download
Use code with caution.
Harbour

123. CloseMessage()

Description: Closes any message box currently displayed by ShowMessage.

Parameters: None

Return Value: None

Usage Example:

oBrw:CloseMessage() // Closes the message box.
content_copy
download
Use code with caution.
Harbour

124. SetPos( nRow, nCol, lPixel, bAction )

Description: Sets the cursor position within the browse. This is a method version of the SetPos DATA member, allowing for a codeblock to be executed after repositioning.

Parameters: (Same as for the SetPos DATA member)

Return Value: None

Usage Example:

oBrw:SetPos( 1, 2, .F., { || MsgInfo( "Cursor moved" ) } ) // Repositions the cursor and executes a codeblock.
content_copy
download
Use code with caution.
Harbour

125. SetBackGround( uBack, uBckMode )

Description: Sets the background appearance of the browse control. This is a method version of the SetBackGround DATA member, allowing for codeblock parameters.

Parameters: (Same as for the SetBackGround DATA member)

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:SetBackGround( { || CLR_BLUE }, 2 ) // Sets background using a codeblock for the color and gradient mode.
content_copy
download
Use code with caution.
Harbour

126. MakeBrush()

Description: Creates a brush object for painting the browse background. Method version for use within codeblocks.

Parameters: None

Return Value: OBJECT - Returns the created brush object.

Usage Example: (Internal use only, method version for codeblock use)

127. DataRect()

Description: Returns a TRect object representing the data display area of the browse. Method version for use within codeblocks.

Parameters: None

Return Value: OBJECT - Returns a TRect object.

Usage Example: (Internal use only - method version for codeblock usage)

128. cBmpAdjBrush( cFile )

Description: Sets or gets the bitmap brush for background adjustment. Method version for use within codeblocks.

Parameters: (Same as DATA member cBmpAdjBrush)

Return Value: - In GET mode, returns the bitmap brush object. In SET mode, returns the TXBrowse object (Self).

Usage Example: (Internal use only - method version for codeblock usage)

129. ColStretch( nStretchCol )

Description: Stretches a column to fill available space. Method version for use within codeblocks.

Parameters: (Same as DATA member ColStretch)

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

130. DestroyToolTip()

Description: Destroys the tooltip control. Method version for use within codeblocks.

Parameters: None

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

131. NcMouseMove( nHitTestCode, nRow, nCol )

Description: Handles WM_NCMOUSEMOVE message. Method version for use within codeblocks.

Parameters: (Same as DATA member NcMouseMove)

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

132. MouseLeave( nRow, nCol, nFlags )

Description: Handles MouseLeave event. Method version for use within codeblocks.

Parameters: (Same as DATA member MouseLeave)

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

133. uDataSource()

Description: Accessor for DataSource. Method version for use within codeblocks.

Parameters: None

Return Value: - Returns the data source object.

Usage Example: (Internal use only - method version for codeblock usage)

134. DataRow( lNew, cFieldList, lSourceData, aInitVals )

Description: Creates DataRow. Method version for use within codeblocks.

Parameters: (Same as DATA member DataRow)

Return Value: OBJECT - Returns the created or edited TXBrwRow object.

Usage Example: (Internal use only - method version for codeblock usage)

135. EditSource( lNew, cFieldList, lNavigate, aInitVals, bSetup )

Description: Edits Source. Method version for use within codeblocks.

Parameters: (Same as DATA member EditSource)

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only - method version for codeblock usage)

136. EditBrowse( lNew, cFieldList, lNavigate )

Description: Edits Browse. Method version for use within codeblocks.

Parameters: (Same as DATA member EditBrowse)

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only - method version for codeblock usage)

137. Edit( lNew, cFieldList, lSourceData, lNavigate, aInitVals, bSetup )

Description: Edits data (general edit method). Method version for use within codeblocks.

Parameters: (Same as DATA member Edit)

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only - method version for codeblock usage)

138. Delete( lMsg )

Description: Deletes a record. Method version for use within codeblocks.

Parameters: (Same as DATA member Delete)

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only - method version for codeblock usage)

139. GoFltRow( n )

Description: Navigates to a specific row within a filtered browse based on its filter row index.

Parameters:

n: NUMERIC - The filter row index to navigate to (1-based).

Return Value: LOGICAL - Returns .T. if navigation was successful, .F. otherwise.

Usage Example:

oBrw:GoFltRow( 3 ) // Moves the browse cursor to the 3rd row in the filtered dataset.
content_copy
download
Use code with caution.
Harbour

140. GoFltRow( n ) (Second Definition)

Description: Retrieves the filter row index if no parameters are passed.

Parameters:

n: NUMERIC - (Optional) If NIL it returns the current filter row index, otherwise it sets the filter row index.

Return Value: NUMERIC - Returns the current filter row index.

Usage Example:

nCurrentFilterRow := oBrw:GoFltRow() // Gets the current filter row index.
content_copy
download
Use code with caution.
Harbour

141. SaveState( aAdditionalData )

Description: Saves the current state of the browse control, allowing for later restoration.

Parameters:

aAdditionalData: ARRAY - (Optional) Array for saving additional custom data with the browse state.

Return Value: None

Usage Example:

oBrw:SaveState() // Saves the current browse state.
oBrw:SaveState( { "CustomData1", "CustomData2" } ) // Saves state with additional data.
content_copy
download
Use code with caution.
Harbour

142. RestoreState( cState )

Description: Restores the browse control to a previously saved state, using a state string obtained from SaveState().

Parameters:

cState: CHARACTER - State string obtained from SaveState().

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:RestoreState( savedStateString ) // Restores browse state from the saved string.
content_copy
download
Use code with caution.
Harbour

143. OldRestoreState( cState )

Description: Retained for compatibility with older versions (10.8) of the TXBrowse class. Restores browse state from a state string.

Parameters:

cState: CHARACTER - State string in the older format.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (For backward compatibility with older saved states)

144. Lock()

Description: Locks the browse control, preventing data modifications.

Parameters: None

Return Value: LOGICAL - Returns .T. if lock is successful, .F. otherwise.

Usage Example:

lLocked := oBrw:Lock()
content_copy
download
Use code with caution.
Harbour

145. UnLock()

Description: Unlocks the browse control, allowing data modifications.

Parameters: None

Return Value: LOGICAL - Returns NIL always (likely a typo in original documentation, should probably be .T. on success).

Usage Example:

oBrw:UnLock()
content_copy
download
Use code with caution.
Harbour

146. SaveData( lRefresh )

Description: Saves any pending data changes to the underlying data source.

Parameters:

lRefresh: LOGICAL - .T. to refresh the browse after saving, .F. otherwise.

Return Value: LOGICAL - Returns .T. if save is successful, .F. otherwise.

Usage Example:

lSaved := oBrw:SaveData( .T. ) // Saves data changes and refreshes the browse.
content_copy
download
Use code with caution.
Harbour

147. ShowSeek()

Description: Shows or hides the incremental seek input control (TGet object).

Parameters: None

Return Value: None

Usage Example:

oBrw:ShowSeek() // Shows the incremental seek input control.
content_copy
download
Use code with caution.
Harbour

148. Seek( cSeek )

Description: Performs an incremental seek operation based on the provided search string.

Parameters:

cSeek: CHARACTER - String to search for incrementally.

Return Value: LOGICAL - Returns .T. if a match is found, .F. otherwise.

Usage Example:

lFound := oBrw:Seek( "customer name" ) // Performs incremental seek for "customer name".
content_copy
download
Use code with caution.
Harbour

149. RddIncrSeek( cExpr, uSeek )

Description: Performs incremental seek on an RDD data source using a custom expression.

Parameters:

cExpr: CHARACTER - Expression to evaluate for each record during the seek.

uSeek: - Search string to match against the expression result.

Return Value: LOGICAL - Returns .T. if a match is found, .F. otherwise.

Usage Example: (Advanced usage for custom incremental seek logic)

150. RddIncrFilter( cExpr, uSeek )

Description: Performs incremental filtering on an RDD data source using a custom expression.

Parameters:

cExpr: CHARACTER - Expression to evaluate for filtering.

uSeek: - Search string for filtering criteria.

Return Value: LOGICAL - Returns .T. if filter is applied successfully, .F. otherwise.

Usage Example: (Advanced usage for custom incremental filtering logic)

151. ArrayIncrSeek( cSeek, nGoTo )

Description: Performs incremental seek on an array data source.

Parameters:

cSeek: CHARACTER - String to search for incrementally.

nGoTo: NUMERIC - Row index to go to if a match is found (optional).

Return Value: LOGICAL - Returns .T. if a match is found, .F. otherwise.

Usage Example:

lFound := oBrw:ArrayIncrSeek( "item description" ) // Incremental seek in array data.
content_copy
download
Use code with caution.
Harbour

152. ArrayIncrFilter( cSeek, nGoTo )

Description: Performs incremental filtering on an array data source.

Parameters:

cSeek: CHARACTER - String to filter by.

nGoTo: NUMERIC - Row index to navigate to after filtering (optional).

Return Value: LOGICAL - Returns .T. if filter is applied successfully, .F. otherwise.

Usage Example:

oBrw:ArrayIncrFilter( "status: pending" ) // Incremental filter on array data.
content_copy
download
Use code with caution.
Harbour

153. AdoIncrSeek( uSeek )

Description: Performs incremental seek on an ADO recordset data source.

Parameters:

uSeek: - String to search for incrementally.

Return Value: LOGICAL - Returns .T. if a match is found, .F. otherwise.

Usage Example:

lFound := oBrw:AdoIncrSeek( "product name" ) // Incremental seek in ADO recordset.
content_copy
download
Use code with caution.
Harbour

154. Select( nOperation )

Description: Selects or deselects rows in multi-select mode based on different operations.

Parameters:

nOperation: NUMERIC - Operation code:

0: Deselect all rows.

1: Add current row to selection.

2: Swap current row selection (toggle).

3: Select a range of rows (Shift+click).

4: Select all rows.

Return Value: None

Usage Example:

oBrw:Select( 1 ) // Adds the current row to the selection.
oBrw:Select( 0 ) // Deselects all rows.
content_copy
download
Use code with caution.
Harbour

155. SelectAll()

Description: Selects all rows in the browse control (shortcut for Select(4)).

Parameters: None

Return Value: None

Usage Example:

oBrw:SelectAll() // Selects all rows in the browse.
content_copy
download
Use code with caution.
Harbour

156. SelectNone()

Description: Deselects all rows in the browse control (shortcut for Select(0)).

Parameters: None

Return Value: None

Usage Example:

oBrw:SelectNone() // Deselects all rows.
content_copy
download
Use code with caution.
Harbour

157. IsSelectedRow()

Description: Checks if the current row is selected in multi-select mode.

Parameters: None

Return Value: LOGICAL - .T. if the current row is selected, .F. otherwise.

Usage Example:

if oBrw:IsSelectedRow()
    MsgInfo( "Current row is selected." )
endif
content_copy
download
Use code with caution.
Harbour

158. SelectRow( nOperation )

Description: Selects or deselects the current row in multi-select mode (internal method, likely used by Select).

Parameters:

nOperation: NUMERIC - Operation code (similar to Select, but specifically for the current row).

Return Value: None

Usage Example: (Internal use only)

159. Adjust()

Description: Adjusts the layout and appearance of the browse control, recalculating heights, widths, and other visual elements based on current settings.

Parameters: None

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:Adjust() // Recalculates and adjusts browse layout.
content_copy
download
Use code with caution.
Harbour

160. Check_oSeek()

Description: Checks and handles the oSeek object (incremental seek input) (internal method).

Parameters: None

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only)

161. SetSortBmp()

Description: Sets the bitmaps used for sort indicators in column headers (internal method).

Parameters: None

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only)

162. AutoFit( aColsToFit, nRows, lDataOnly, nMaxWidth )

Description: Automatically adjusts column widths to fit their content.

Parameters:

aColsToFit: ARRAY - Array of column indices or TxBrwColumn objects to auto-fit. If NIL, auto-fits all columns.

nRows: NUMERIC - Number of rows to consider when calculating column widths. If NIL, considers all rows.

lDataOnly: LOGICAL - .T. to consider only data rows for width calculation, .F. to include header and footer.

nMaxWidth: NUMERIC - Maximum width for columns (optional).

Return Value: OBJECT - Returns an ARRAY { nReqdWidth, nReqdHt } containing the required width and height for the browse.

Usage Example:

oBrw:AutoFit() // Auto-fits all columns to their content.
oBrw:AutoFit( { 1, 3 } ) // Auto-fits columns 1 and 3.
oBrw:AutoFit( , 100 ) // Auto-fits columns considering only the first 100 rows.
content_copy
download
Use code with caution.
Harbour

163. CheckSize()

Description: Checks and adjusts the size of the browse control based on margins and padding (internal method).

Parameters: None

Return Value: None

Usage Example: (Internal use only)

164. Resize( nSizeType, nWidth, nHeight )

Description: Resizes the browse control to the specified dimensions or using predefined size types.

Parameters:

nSizeType: NUMERIC - Size type code (e.g., SIZE_PIXEL, SIZE_CLIENT, SIZE_WINDOW).

nWidth: NUMERIC - New width in pixels (if nSizeType is SIZE_PIXEL).

nHeight: NUMERIC - New height in pixels (if nSizeType is SIZE_PIXEL).

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:Resize( SIZE_PIXEL, 800, 600 ) // Resizes browse to 800x600 pixels.
oBrw:Resize( SIZE_CLIENT ) // Resizes browse to fill client area of parent window.
content_copy
download
Use code with caution.
Harbour

165. Change( lRow )

Description: Handles the change event, triggered when the selected row changes or a column is modified.

Parameters:

lRow: LOGICAL - .T. if the change is due to row selection, .F. if due to column change.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use, called automatically when row or column selection changes)

166. MakeTotals( aCols )

Description: Calculates totals for specified columns and prepares them for display in the footer (internal method).

Parameters:

aCols: ARRAY - Array of column indices or TxBrwColumn objects to calculate totals for.

Return Value: None

Usage Example: (Internal use only)

167. SaveTotals( lBlank )

Description: Saves the calculated totals (internal method).

Parameters:

lBlank: LOGICAL - .T. to blank out existing totals before saving, .F. otherwise.

Return Value: None

Usage Example: (Internal use only)

168. ReCalcTotals( lReduce )

Description: Recalculates totals based on changes in data or filtering (internal method).

Parameters:

lReduce: LOGICAL - .T. to reduce totals based on filtered data, .F. otherwise.

Return Value: None

Usage Example: (Internal use only)

169. Eval( bBlock, bFor, bWhile, nNext, nRec, lRest )

Description: General-purpose evaluation method for codeblocks, allowing iteration over browse rows with conditions and limits.

Parameters:

bBlock: CODEBLOCK - Codeblock to be evaluated for each row.

bFor: CODEBLOCK - Codeblock to be evaluated before each row (condition for row processing).

bWhile: CODEBLOCK - Codeblock for loop continuation condition.

nNext: NUMERIC - Number of rows to process (optional).

nRec: NUMERIC - Starting record number (optional).

lRest: LOGICAL - .T. to process from current record to end, .F. otherwise (optional).

Return Value: None

Usage Example:

oBrw:Eval( { |o| MsgInfo( o:Column1 ) }, , { || oBrw:Eof() } ) // Iterates through all rows and displays "Column1" value in each row.
content_copy
download
Use code with caution.
Harbour

170. Report( cTitle, lPreview, lModal, bSetUp, aGroupBy, cPDF, aCols )

Description: Generates a report from the browse data, allowing for preview, printing, and exporting to PDF.

Parameters:

cTitle: CHARACTER - Title for the report.

lPreview: LOGICAL - .T. to show print preview dialog, .F. for direct printing.

lModal: LOGICAL - .T. to show print preview dialog as modal, .F. as modeless.

bSetUp: CODEBLOCK - Codeblock to customize report setup (optional).

aGroupBy: ARRAY - Array of column indices or TxBrwColumn objects to group data by (optional).

cPDF: CHARACTER - Path to save the report as PDF (optional, if provided, exports to PDF directly).

aCols: ARRAY - Array of column indices or TxBrwColumn objects to include in the report (optional).

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:Report( "Customer Report", .T., .T., , { 2 }, "customer_report.pdf" ) // Generates a previewable PDF report grouped by the 2nd column.
content_copy
download
Use code with caution.
Harbour

171. ToWord( bProgress, aCols, nWrdTblFormat, nPageOrientation )

Description: Exports browse data to a Microsoft Word document.

Parameters:

bProgress: CODEBLOCK - Codeblock to display export progress (optional).

aCols: ARRAY - Array of column indices or TxBrwColumn objects to include in the Word document (optional).

nWrdTblFormat: NUMERIC - Word table format code (optional).

nPageOrientation: NUMERIC - Page orientation (0 for portrait, 1 for landscape, optional).

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:ToWord( { |n, t| DispOut( "Exporting row " + n + " of " + t ) }, , 5 ) // Exports data to Word with progress display.
content_copy
download
Use code with caution.
Harbour

172. ToHTML( cHtml, lShow )

Description: Exports browse data to an HTML file.

Parameters:

cHtml: CHARACTER - Path to save the HTML file.

lShow: LOGICAL - .T. to open the HTML file after export, .F. otherwise.

Return Value: None

Usage Example:

oBrw:ToHTML( "browse_data.html", .T. ) // Exports data to HTML and opens the file in browser.
content_copy
download
Use code with caution.
Harbour

173. ToCSV( cFile, aCols, lHeaders, cTrue, cFalse, cDelim )

Description: Exports browse data to a CSV (Comma Separated Values) file.

Parameters:

cFile: CHARACTER - Path to save the CSV file.

aCols: ARRAY - Array of column indices or TxBrwColumn objects to include in CSV (optional).

lHeaders: LOGICAL - .T. to include column headers in CSV, .F. otherwise.

cTrue: CHARACTER - String representation for logical TRUE value in CSV (optional).

cFalse: CHARACTER - String representation for logical FALSE value in CSV (optional).

cDelim: CHARACTER - Delimiter character for CSV (optional, default is comma).

Return Value: None

Usage Example:

oBrw:ToCSV( "browse_data.csv", , .T., "Yes", "No", ";" ) // Exports to CSV with custom delimiter and logical value representations.
content_copy
download
Use code with caution.
Harbour

174. ToExcel( bProgress, nGroupBy, aCols, lShow, cPDF, bPrePDF )

Description: Exports browse data to an Excel spreadsheet file (XLS or XLSX).

Parameters:

bProgress: CODEBLOCK - Codeblock to display export progress (optional).

nGroupBy: NUMERIC - Column index to group data in Excel (optional).

aCols: ARRAY - Array of column indices or TxBrwColumn objects to include in Excel (optional).

lShow: LOGICAL - .T. to open Excel after export, .F. otherwise.

cPDF: CHARACTER - Path to save as PDF in addition to Excel (optional).

bPrePDF: CODEBLOCK - Codeblock to execute before PDF export (optional).

Return Value: OBJECT - Returns the Excel object if export is successful, NIL otherwise.

Usage Example:

oBrw:ToExcel( { |n, t| DispOut( "Exporting row " + n + " of " + t ) }, 2, , .T., "browse_data.pdf" ) // Exports to Excel with grouping, progress display, and PDF export.
content_copy
download
Use code with caution.
Harbour

175. ToXlsx( cFileXls, aCols )

Description: Exports browse data to an XLSX (Excel 2007+) file.

Parameters:

cFileXls: CHARACTER - Path to save the XLSX file.

aCols: ARRAY - Array of column indices or TxBrwColumn objects to include in XLSX (optional).

Return Value: None

Usage Example:

oBrw:ToXlsx( "browse_data.xlsx" ) // Exports data to XLSX file.
content_copy
download
Use code with caution.
Harbour

176. ToCalc( bProgress, nGroupBy, nPasteMode, aSaveAs, aCols )

Description: Exports browse data to a LibreOffice Calc spreadsheet file.

Parameters:

bProgress: CODEBLOCK - Codeblock to display export progress (optional).

nGroupBy: NUMERIC - Column index to group data in Calc (optional).

nPasteMode: NUMERIC - Paste mode for Calc (optional).

aSaveAs: ARRAY - Array for save-as options (optional).

aCols: ARRAY - Array of column indices or TxBrwColumn objects to include in Calc (optional).

Return Value: OBJECT - Returns the Calc object if export is successful, NIL otherwise.

Usage Example:

oBrw:ToCalc( { |n, t| DispOut( "Exporting row " + n + " of " + t ) }, 2, 2 ) // Exports to Calc with grouping and paste mode 2.
content_copy
download
Use code with caution.
Harbour

177. ToDbf( cFile, bProgress, aCols, lPrompt )

Description: Exports browse data to a DBF (dBase) file.

Parameters:

cFile: CHARACTER - Path to save the DBF file.

bProgress: CODEBLOCK - Codeblock to display export progress (optional).

aCols: ARRAY - Array of column indices or TxBrwColumn objects to include in DBF (optional).

lPrompt: LOGICAL - .T. to prompt user for file overwrite confirmation, .F. otherwise.

Return Value: None

Usage Example:

oBrw:ToDbf( "browse_data.dbf", , , .T. ) // Exports to DBF with overwrite prompt enabled.
content_copy
download
Use code with caution.
Harbour

178. ToArray( aCols )

Description: Exports browse data to a two-dimensional array.

Parameters:

aCols: ARRAY - Array of column indices or TxBrwColumn objects to include in array (optional).

Return Value: ARRAY - Returns the two-dimensional array containing browse data.

Usage Example:

myDataArray := oBrw:ToArray() // Exports all visible columns to an array.
content_copy
download
Use code with caution.
Harbour

179. CurrentRow()

Description: Returns a TXBrwRow object representing the data of the currently selected row.

Parameters: None

Return Value: OBJECT - Returns a TXBrwRow object.

Usage Example:

oCurrentRow := oBrw:CurrentRow() // Gets a TXBrwRow object for the current row.
content_copy
download
Use code with caution.
Harbour

180. AddBitmap( uBmp, aResize )

Description: Adds a bitmap to the browse control's bitmap collection for use in columns or other visual elements.

Parameters:

uBmp: CHARACTER or NUMERIC - Path to bitmap file or bitmap handle.

aResize: - Resize parameters (optional).

Return Value: NUMERIC - Returns the index of the added bitmap in the aBitmaps array.

Usage Example:

nBitmapIndex := oBrw:AddBitmap( "mybitmap.bmp" ) // Adds a bitmap to the browse's bitmap collection.
content_copy
download
Use code with caution.
Harbour

181. aBitmap( n )

Description: Accessor method to retrieve a bitmap from the browse control's bitmap collection by its index.

Parameters:

n: NUMERIC - Index of the bitmap in the aBitmaps array.

Return Value: - Returns the bitmap handle at the specified index or NIL if index is invalid.

Usage Example:

hBitmap := oBrw:aBitmap( nBitmapIndex ) // Retrieves a bitmap by its index.
content_copy
download
Use code with caution.
Harbour

182. Initiate( hDlg )

Description: Initializes the browse control (internal method).

Parameters:

hDlg: - Handle to the dialog window (optional).

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only)

183. Display()

Description: Displays the browse control (internal method).

Parameters: None

Return Value: NUMERIC - Always returns 0.

Usage Example: (Internal use only)

184. Paint()

Description: Paints the browse control's content (internal method).

Parameters: None

Return Value: None

Usage Example: (Internal use only, called by the windowing system during redraw)

185. DrawBorder()

Description: Draws the border around the browse control (internal method).

Parameters: None

Return Value: None

Usage Example: (Internal use only, called during painting)

186. CheckSortCbx()

Description: Checks and updates the sort checkbox control (internal method).

Parameters: None

Return Value: None

Usage Example: (Internal use only)

187. GetPaintCols( nLast )

Description: Retrieves an array of columns to be painted, optimized for performance (internal method).

Parameters:

nLast: NUMERIC - Last displayed column index.

Return Value: ARRAY - Array of TxBrwColumn objects to paint.

Usage Example: (Internal use only)

188. PaintHDivider( hDC, nRow, nLeft, nRight, nStyle, hRowPen, hWhitePen )

Description: Paints a horizontal divider line (internal method).

Parameters:

hDC: OBJECT - Device context handle.

nRow: NUMERIC - Row position.

nLeft: NUMERIC - Left position.

nRight: NUMERIC - Right position.

nStyle: NUMERIC - Line style.

hRowPen: OBJECT - Pen handle for row lines.

hWhitePen: OBJECT - Pen handle for white color.

Return Value: None

Usage Example: (Internal use only)

189. PaintVDivider( hDC, nCol, nTop, nBottom, nStyle, hColPen, hWhitePen )

Description: Paints a vertical divider line (internal method).

Parameters:

hDC: OBJECT - Device context handle.

nCol: NUMERIC - Column position.

nTop: NUMERIC - Top position.

nBottom: NUMERIC - Bottom position.

nStyle: NUMERIC - Line style.

hColPen: OBJECT - Pen handle for column lines.

hWhitePen: OBJECT - Pen handle for white color.

Return Value: None

Usage Example: (Internal use only)

190. PaintHeader( hDC, aCols, nLast, hWhitePen, hGrayPen, hColPen )

Description: Paints the header area of the browse (internal method).

Parameters:

hDC: OBJECT - Device context handle.

aCols: ARRAY - Array of columns to paint.

nLast: NUMERIC - Last displayed column index.

hWhitePen: OBJECT - Pen handle for white color.

hGrayPen: OBJECT - Pen handle for gray color.

hColPen: OBJECT - Pen handle for column lines.

Return Value: None

Usage Example: (Internal use only)

191. PaintTopBar( hDC, hGrayPen )

Description: Paints the top bar area of the browse (internal method).

Parameters:

hDC: OBJECT - Device context handle.

hGrayPen: OBJECT - Pen handle for gray color.

Return Value: None

Usage Example: (Internal use only)

192. PaintFooter( hDC, aCols, nLast, nGridWidth, nBrwHeight, hWhitePen, hGrayPen )

Description: Paints the footer area of the browse (internal method).

Parameters:

hDC: OBJECT - Device context handle.

aCols: ARRAY - Array of columns to paint.

nLast: NUMERIC - Last displayed column index.

nGridWidth: NUMERIC - Grid width.

nBrwHeight: NUMERIC - Browse height.

hWhitePen: OBJECT - Pen handle for white color.

hGrayPen: OBJECT - Pen handle for gray color.

Return Value: None

Usage Example: (Internal use only)

193. Refresh( lComplete )

Description: Refreshes the browse control, redrawing its content.

Parameters:

lComplete: LOGICAL - .T. for a full refresh, .F. for partial refresh (optional).

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:Refresh() // Performs a full refresh.
oBrw:Refresh( .F. ) // Performs a partial refresh.
content_copy
download
Use code with caution.
Harbour

194. CalcRowSelPos()

Description: Calculates the position of the selected row (internal method).

Parameters: None

Return Value: None

Usage Example: (Internal use only)

195. DelRepos()

Description: Repositions browse after record deletion (internal method).

Parameters: None

Return Value: None

Usage Example: (Internal use only)

196. KeyCount()

Description: Returns the total number of rows in the data source.

Parameters: None

Return Value: NUMERIC - Total number of rows.

Usage Example:

nRowCount := oBrw:KeyCount()
content_copy
download
Use code with caution.
Harbour

197. BookMark( uGoTo )

Description: Sets or gets the bookmark position (record number).

Parameters:

uGoTo: NUMERIC - Record number to bookmark (optional).

Return Value: NUMERIC - Returns the current bookmark value (record number).

Usage Example:

nBookmarkValue := oBrw:BookMark() // Gets current bookmark value.
oBrw:BookMark( 15 ) // Sets bookmark to record number 15.
content_copy
download
Use code with caution.
Harbour

198. KeyNo( nKeyGoTo )

Description: Sets or gets the key number (vertical scroll position).

Parameters:

nKeyGoTo: NUMERIC - Key number to set (optional).

Return Value: NUMERIC - Returns the current key number.

Usage Example:

nKeyNumber := oBrw:KeyNo() // Gets current key number.
oBrw:KeyNo( 50 ) // Sets key number to 50.
content_copy
download
Use code with caution.
Harbour

199. Skip( n )

Description: Skips rows forward or backward.

Parameters:

n: NUMERIC - Number of rows to skip (positive for forward, negative for backward).

Return Value: NUMERIC - Number of rows actually skipped.

Usage Example:

nSkippedRows := oBrw:Skip( 5 ) // Skips 5 rows forward.
content_copy
download
Use code with caution.
Harbour

200. Bof()

Description: Checks if the browse is at the Beginning Of File (BOF).

Parameters: None

Return Value: LOGICAL - .T. if BOF, .F. otherwise.

Usage Example:

if oBrw:Bof()
    MsgInfo( "At the beginning of the data." )
endif
content_copy
download
Use code with caution.
Harbour

201. Eof()

Description: Checks if the browse is at the End Of File (EOF).

Parameters: None

Return Value: LOGICAL - .T. if EOF, .F. otherwise.

Usage Example:

if oBrw:Eof()
    MsgInfo( "At the end of the data." )
endif
content_copy
download
Use code with caution.
Harbour

202. GoTop()

Description: Moves the browse cursor to the first row (Top of File - TOF).

Parameters: None

Return Value: None

Usage Example:

oBrw:GoTop() // Moves to the first row.
content_copy
download
Use code with caution.
Harbour

203. GoBottom()

Description: Moves the browse cursor to the last row (Bottom of File - BOF).

Parameters: None

Return Value: None

Usage Example:

oBrw:GoBottom() // Moves to the last row.
content_copy
download
Use code with caution.
Harbour

204. GoUp( nUp )

Description: Moves the browse cursor up by a specified number of rows.

Parameters:

nUp: NUMERIC - Number of rows to move up (default is 1).

Return Value: None

Usage Example:

oBrw:GoUp() // Moves up one row.
oBrw:GoUp( 3 ) // Moves up three rows.
content_copy
download
Use code with caution.
Harbour

205. GoDown( nDown, nKey )

Description: Moves the browse cursor down by a specified number of rows.

Parameters:

nDown: NUMERIC - Number of rows to move down (default is 1).

nKey: NUMERIC - Key code (optional, used internally).

Return Value: None

Usage Example:

oBrw:GoDown() // Moves down one row.
oBrw:GoDown( 5 ) // Moves down five rows.
content_copy
download
Use code with caution.
Harbour

206. PageUp( nLines )

Description: Moves the browse cursor up by a page (number of visible data rows).

Parameters:

nLines: NUMERIC - Number of lines to page up (default is number of data rows).

Return Value: None

Usage Example:

oBrw:PageUp() // Pages up one page of data.
content_copy
download
Use code with caution.
Harbour

207. PageDown( nLines )

Description: Moves the browse cursor down by a page (number of visible data rows).

Parameters:

nLines: NUMERIC - Number of lines to page down (default is number of data rows).

Return Value: None

Usage Example:

oBrw:PageDown() // Pages down one page of data.
content_copy
download
Use code with caution.
Harbour

208. GoLeft()

Description: Moves the browse cursor one column to the left.

Parameters:

lOffset: NUMERIC - Offset to move left (optional, default is 1).

lRefresh: LOGICAL - .T. to refresh browse after moving, .F. otherwise.

Return Value: LOGICAL - Returns .T. if navigation successful, .F. otherwise.

Usage Example:

oBrw:GoLeft() // Moves one column to the left.
content_copy
download
Use code with caution.
Harbour

209. GoRight()

Description: Moves the browse cursor one column to the right.

Parameters:

lOffset: NUMERIC - Offset to move right (optional, default is 1).

lRefresh: LOGICAL - .T. to refresh browse after moving, .F. otherwise.

Return Value: LOGICAL - Returns .T. if navigation successful, .F. otherwise.

Usage Example:

oBrw:GoRight() // Moves one column to the right.
content_copy
download
Use code with caution.
Harbour

210. GoLeftMost()

Description: Moves the browse cursor to the leftmost visible column.

Parameters: None

Return Value: None

Usage Example:

oBrw:GoLeftMost() // Moves to the first visible column.
content_copy
download
Use code with caution.
Harbour

211. GoRightMost()

Description: Moves the browse cursor to the rightmost visible column.

Parameters: None

Return Value: None

Usage Example:

oBrw:GoRightMost() // Moves to the last visible column.
content_copy
download
Use code with caution.
Harbour

212. GoFirstEditCol()

Description: Moves the browse cursor to the first editable column in the current row.

Parameters: None

Return Value: OBJECT - Returns the TxBrwColumn object of the first editable column.

Usage Example:

oEditColumn := oBrw:GoFirstEditCol() // Moves cursor to the first editable column.
content_copy
download
Use code with caution.
Harbour

213. HandleEvent( nMsg, nWParam, nLParam )

Description: Handles window messages (internal method, event dispatcher).

Parameters:

nMsg: NUMERIC - Windows message code.

nWParam: NUMERIC - WPARAM parameter of the message.

nLParam: NUMERIC - LPARAM parameter of the message.

Return Value: NUMERIC - Message return value.

Usage Example: (Internal use only - handles Windows messages)

214. HandleGesture( nGesture, nLParam )

Description: Handles gesture events (internal method, for kinetic scrolling and touch gestures).

Parameters:

nGesture: NUMERIC - Gesture ID.

nLParam: NUMERIC - LPARAM parameter of the gesture event.

Return Value: NUMERIC - Gesture event return value.

Usage Example: (Internal use only - handles touch and kinetic scrolling)

215. GesturePan( aPanInfo )

Description: Handles pan gestures (used for kinetic scrolling, internal method).

Parameters:

aPanInfo: ARRAY - Array containing pan gesture information.

Return Value: NUMERIC - Gesture pan return value.

Usage Example: (Internal use only - handles kinetic scrolling gestures)

216. KeyCount()

Description: Returns the number of records (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: NUMERIC - Total number of rows.

Usage Example:

rowCount := oBrw:KeyCount() // Gets row count using codeblock.
content_copy
download
Use code with caution.
Harbour

217. BookMark()

Description: Accessor for Bookmark (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: - Returns the bookmark value.

Usage Example:

bookmarkValue := oBrw:BookMark() // Gets bookmark value using codeblock.
content_copy
download
Use code with caution.
Harbour

218. KeyNo()

Description: Accessor for KeyNo (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: - Returns the key number.

Usage Example:

keyNumber := oBrw:KeyNo() // Gets key number using codeblock.
content_copy
download
Use code with caution.
Harbour

219. Skip()

Description: Accessor for Skip (same as DATA member, method version for codeblock usage).

Parameters:

n: NUMERIC - Number of rows to skip.

Return Value: - Returns the number of rows skipped.

Usage Example:

rowsSkipped := oBrw:Skip( 2 ) // Skips rows using codeblock.
content_copy
download
Use code with caution.
Harbour

220. Bof()

Description: Accessor for Bof (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: LOGICAL - Returns .T. if BOF, .F. otherwise.

Usage Example:

isBOF := oBrw:Bof() // Checks BOF using codeblock.
content_copy
download
Use code with caution.
Harbour

221. Eof()

Description: Accessor for Eof (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: LOGICAL - Returns .T. if EOF, .F. otherwise.

Usage Example:

isEOF := oBrw:Eof() // Checks EOF using codeblock.
content_copy
download
Use code with caution.
Harbour

222. GoTop()

Description: Accessor for GoTop (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example:

oBrw:GoTop() // Moves to top using codeblock.
content_copy
download
Use code with caution.
Harbour

223. GoBottom()

Description: Accessor for GoBottom (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example:

oBrw:GoBottom() // Moves to bottom using codeblock.
content_copy
download
Use code with caution.
Harbour

224. GoFltRow( n )

Description: Accessor for GoFltRow (same as DATA member, method version for codeblock usage).

Parameters:

n: NUMERIC - Filter row index.

Return Value: NUMERIC - Returns the filter row index.

Usage Example: (Internal use only - method version for codeblock usage)

225. SaveState( aAdditionalData )

Description: Accessor for SaveState (same as DATA member, method version for codeblock usage).

Parameters:

aAdditionalData: ARRAY - Additional data array.

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

226. RestoreState( cState )

Description: Accessor for RestoreState (same as DATA member, method version for codeblock usage).

Parameters:

cState: CHARACTER - State string.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only - method version for codeblock usage)

227. OldRestoreState( cState )

Description: Accessor for OldRestoreState (same as DATA member, method version for codeblock usage).

Parameters:

cState: CHARACTER - State string.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only - method version for codeblock usage)

228. Lock()

Description: Accessor for Lock (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: LOGICAL - Returns .T. if lock is successful, .F. otherwise.

Usage Example:

isLocked := oBrw:Lock() // Locks the browse using codeblock.
content_copy
download
Use code with caution.
Harbour

229. UnLock()

Description: Accessor for UnLock (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: LOGICAL - Returns NIL always (likely a typo in original documentation, should probably be .T. on success).

Usage Example:

oBrw:UnLock() // Unlocks the browse using codeblock.
content_copy
download
Use code with caution.
Harbour

230. SaveData( lRefresh )

Description: Accessor for SaveData (same as DATA member, method version for codeblock usage).

Parameters:

lRefresh: LOGICAL - Refresh flag.

Return Value: LOGICAL - Returns .T. if save is successful, .F. otherwise.

Usage Example:

isSaved := oBrw:SaveData( .T. ) // Saves data using codeblock.
content_copy
download
Use code with caution.
Harbour

231. ShowSeek()

Description: Accessor for ShowSeek (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example:

oBrw:ShowSeek() // Shows seek input using codeblock.
content_copy
download
Use code with caution.
Harbour

232. Seek( cSeek )

Description: Accessor for Seek (same as DATA member, method version for codeblock usage).

Parameters:

cSeek: CHARACTER - Seek string.

Return Value: LOGICAL - Returns .T. if seek is successful, .F. otherwise.

Usage Example:

isFound := oBrw:Seek( "Search String" ) // Performs seek using codeblock.
content_copy
download
Use code with caution.
Harbour

233. Adjust()

Description: Accessor for Adjust (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example:

oBrw:Adjust() // Adjusts layout using codeblock.
content_copy
download
Use code with caution.
Harbour

234. Check_oSeek()

Description: Accessor for Check_oSeek (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only - method version for codeblock usage)

235. SetSortBmp()

Description: Accessor for SetSortBmp (same as DATA member, method version for codeblock usage).

Parameters:

aBmp: ARRAY - Bitmap array.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only - method version for codeblock usage)

236. AutoFit( aColsToFit, nRows, lDataOnly, nMaxWidth )

Description: Accessor for AutoFit (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member AutoFit)

Return Value: OBJECT - Returns an ARRAY { nReqdWidth, nReqdHt } containing the required width and height for the browse.

Usage Example: (Internal use only - method version for codeblock usage)

237. CheckSize()

Description: Accessor for CheckSize (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

238. Resize( nSizeType, nWidth, nHeight )

Description: Accessor for Resize (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member Resize)

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only - method version for codeblock usage)

239. Change( lRow )

Description: Accessor for Change (same as DATA member, method version for codeblock usage).

Parameters:

lRow: LOGICAL - Row flag.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only - method version for codeblock usage)
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277176#p277176 Fri, 24 Jan 2025 03:37:14 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277176#p277176
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using new Class TDeepSeek for documenting :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277177#p277177

Code: Select all | Expand

240. MakeTotals( aCols )

Description: Accessor for MakeTotals (same as DATA member, method version for codeblock usage).

Parameters:

aCols: ARRAY - Columns array.

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

241. SaveTotals( lBlank )

Description: Accessor for SaveTotals (same as DATA member, method version for codeblock usage).

Parameters:

lBlank: LOGICAL - Blank flag.

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

242. ReCalcTotals( lReduce )

Description: Accessor for ReCalcTotals (same as DATA member, method version for codeblock usage).

Parameters:

lReduce: LOGICAL - Reduce flag.

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

243. Eval( bBlock, bFor, bWhile, nNext, nRec, lRest )

Description: Accessor for Eval (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member Eval)

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

244. Report( cTitle, lPreview, lModal, bSetUp, aGroupBy, cPDF, aCols )

Description: Accessor for Report (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member Report)

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only - method version for codeblock usage)

245. ToWord( bProgress, aCols, nWrdTblFormat, nPageOrientation )

Description: Accessor for ToWord (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member ToWord)

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only - method version for codeblock usage)

246. ToHTML( cHtml, lShow )

Description: Accessor for ToHTML (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member ToHTML)

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

247. ToCSV( cFile, aCols, lHeaders, cTrue, cFalse, cDelim )

Description: Accessor for ToCSV (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member ToCSV)

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

248. ToExcel( bProgress, nGroupBy, aCols, lShow, cPDF, bPrePDF )

Description: Accessor for ToExcel (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member ToExcel)

Return Value: OBJECT - Returns the Excel object if export is successful, NIL otherwise.

Usage Example: (Internal use only - method version for codeblock usage)

249. ToXlsx( cFileXls, aCols )

Description: Accessor for ToXlsx (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member ToXlsx)

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

250. ToCalc( bProgress, nGroupBy, nPasteMode, aSaveAs, aCols )

Description: Accessor for ToCalc (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member ToCalc)

Return Value: OBJECT - Returns the Calc object if export is successful, NIL otherwise.

Usage Example: (Internal use only - method version for codeblock usage)

251. ToArray( aCols )

Description: Accessor for ToArray (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member ToArray)

Return Value: ARRAY - Returns the two-dimensional array containing browse data.

Usage Example: (Internal use only - method version for codeblock usage)

252. CurrentRow()

Description: Accessor for CurrentRow (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: OBJECT - Returns a TXBrwRow object.

Usage Example: (Internal use only - method version for codeblock usage)

253. AddBitmap( uBmp, aResize )

Description: Accessor for AddBitmap (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member AddBitmap)

Return Value: NUMERIC - Returns the index of the added bitmap in the aBitmaps array.

Usage Example: (Internal use only - method version for codeblock usage)

254. aBitmap( n )

Description: Accessor for aBitmap (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member aBitmap)

Return Value: - Returns the bitmap handle at the specified index or NIL if index is invalid.

Usage Example: (Internal use only - method version for codeblock usage)

255. Initiate( hDlg )

Description: Accessor for Initiate (same as DATA member, method version for codeblock usage).

Parameters:

hDlg: - Handle to the dialog window.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only - method version for codeblock usage)

256. Display()

Description: Accessor for Display (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: NUMERIC - Always returns 0.

Usage Example: (Internal use only - method version for codeblock usage)

257. Paint()

Description: Accessor for Paint (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: NUMERIC - Always returns 0.

Usage Example: (Internal use only - method version for codeblock usage)

258. DrawBorder()

Description: Accessor for DrawBorder (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only - method version for codeblock usage)

259. CheckSortCbx()

Description: Accessor for CheckSortCbx (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

260. GetPaintCols( nLast )

Description: Accessor for GetPaintCols (same as DATA member, method version for codeblock usage).

Parameters:

nLast: NUMERIC - Last column index.

Return Value: ARRAY - Array of columns to paint.

Usage Example: (Internal use only - method version for codeblock usage)

261. PaintHDivider( hDC, nRow, nLeft, nRight, nStyle, hRowPen, hWhitePen )

Description: Accessor for PaintHDivider (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member PaintHDivider)

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

262. PaintVDivider( hDC, nCol, nTop, nBottom, nStyle, hColPen, hWhitePen )

Description: Accessor for PaintVDivider (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member PaintVDivider)

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

263. PaintHeader( hDC, aCols, nLast, hWhitePen, hGrayPen, hColPen )

Description: Accessor for PaintHeader (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member PaintHeader)

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

264. PaintTopBar( hDC, hGrayPen )

Description: Accessor for PaintTopBar (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member PaintTopBar)

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

265. PaintFooter( hDC, aCols, nLast, nGridWidth, nBrwHeight, hWhitePen, hGrayPen )

Description: Accessor for PaintFooter (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member PaintFooter)

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

266. Refresh( lComplete )

Description: Accessor for Refresh (same as DATA member, method version for codeblock usage).

Parameters:

lComplete: LOGICAL - Complete refresh flag.

Return Value: OBJECT - Returns the TXBrowse object (Self).

Usage Example: (Internal use only - method version for codeblock usage)

267. CalcRowSelPos()

Description: Accessor for CalcRowSelPos (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

268. DelRepos()

Description: Accessor for DelRepos (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

269. KeyCount()

Description: Accessor for KeyCount (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: NUMERIC - Total number of rows.

Usage Example: (Internal use only - method version for codeblock usage)

270. BookMark()

Description: Accessor for BookMark (same as DATA member, method version for codeblock usage).

Parameters:

u: - Bookmark value.

Return Value: NUMERIC - Returns the bookmark value.

Usage Example: (Internal use only - method version for codeblock usage)

271. KeyNo()

Description: Accessor for KeyNo (same as DATA member, method version for codeblock usage).

Parameters:

n: NUMERIC - Key number.

Return Value: NUMERIC - Returns the key number.

Usage Example: (Internal use only - method version for codeblock usage)

272. Skip( n )

Description: Accessor for Skip (same as DATA member, method version for codeblock usage).

Parameters:

n: NUMERIC - Number of rows to skip.

Return Value: NUMERIC - Number of rows skipped.

Usage Example: (Internal use only - method version for codeblock usage)

273. Bof()

Description: Accessor for Bof (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: LOGICAL - Returns .T. if BOF, .F. otherwise.

Usage Example: (Internal use only - method version for codeblock usage)

274. Eof()

Description: Accessor for Eof (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: LOGICAL - Returns .T. if EOF, .F. otherwise.

Usage Example: (Internal use only - method version for codeblock usage)

275. GoTop()

Description: Accessor for GoTop (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

276. GoBottom()

Description: Accessor for GoBottom (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

277. GoUp( nUp )

Description: Accessor for GoUp (same as DATA member, method version for codeblock usage).

Parameters:

nUp: NUMERIC - Number of rows to go up.

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

278. GoDown( nDown, nKey )

Description: Accessor for GoDown (same as DATA member, method version for codeblock usage).

Parameters:

nDown: NUMERIC - Number of rows to go down.

nKey: NUMERIC - Key code.

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

279. PageUp( nLines )

Description: Accessor for PageUp (same as DATA member, method version for codeblock usage).

Parameters:

nLines: NUMERIC - Number of lines to page up.

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

280. PageDown( nLines )

Description: Accessor for PageDown (same as DATA member, method version for codeblock usage).

Parameters:

nLines: NUMERIC - Number of lines to page down.

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

281. GoLeft( lOffset, lRefresh )

Description: Accessor for GoLeft (same as DATA member, method version for codeblock usage).

Parameters:

lOffset: NUMERIC - Left offset.

lRefresh: LOGICAL - Refresh flag.

Return Value: LOGICAL - Returns .T. if go left is successful, .F. otherwise.

Usage Example: (Internal use only - method version for codeblock usage)

282. GoRight( lOffset, lRefresh )

Description: Accessor for GoRight (same as DATA member, method version for codeblock usage).

Parameters:

lOffset: NUMERIC - Right offset.

lRefresh: LOGICAL - Refresh flag.

Return Value: LOGICAL - Returns .T. if go right is successful, .F. otherwise.

Usage Example: (Internal use only - method version for codeblock usage)

283. GoLeftMost()

Description: Accessor for GoLeftMost (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

284. GoRightMost()

Description: Accessor for GoRightMost (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

285. GoFirstEditCol()

Description: Accessor for GoFirstEditCol (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: OBJECT - Returns the TxBrwColumn object of the first editable column.

Usage Example: (Internal use only - method version for codeblock usage)

286. HandleEvent( nMsg, nWParam, nLParam )

Description: Accessor for HandleEvent (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member HandleEvent)

Return Value: NUMERIC - Message return value.

Usage Example: (Internal use only - method version for codeblock usage)

287. HandleGesture( nGesture, nLParam )

Description: Accessor for HandleGesture (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member HandleGesture)

Return Value: NUMERIC - Gesture event return value.

Usage Example: (Internal use only - method version for codeblock usage)

288. GesturePan( aPanInfo )

Description: Accessor for GesturePan (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member GesturePan)

Return Value: NUMERIC - Gesture pan return value.

Usage Example: (Internal use only - method version for codeblock usage)

289. KeyCount()

Description: Accessor for KeyCount (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: NUMERIC - Total number of rows.

Usage Example: (Internal use only - method version for codeblock usage)

290. BookMark()

Description: Accessor for BookMark (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: - Returns the bookmark value.

Usage Example: (Internal use only - method version for codeblock usage)

291. KeyNo()

Description: Accessor for KeyNo (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: NUMERIC - Returns the key number.

Usage Example: (Internal use only - method version for codeblock usage)

292. Skip( n )

Description: Accessor for Skip (same as DATA member, method version for codeblock usage).

Parameters:

n: NUMERIC - Number of rows to skip.

Return Value: NUMERIC - Number of rows skipped.

Usage Example: (Internal use only - method version for codeblock usage)

293. Bof()

Description: Accessor for Bof (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: LOGICAL - Returns .T. if BOF, .F. otherwise.

Usage Example: (Internal use only - method version for codeblock usage)

294. Eof()

Description: Accessor for Eof (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: LOGICAL - Returns .T. if EOF, .F. otherwise.

Usage Example: (Internal use only - method version for codeblock usage)

295. GoTop()

Description: Accessor for GoTop (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

296. GoBottom()

Description: Accessor for GoBottom (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

297. GoUp( nUp )

Description: Accessor for GoUp (same as DATA member, method version for codeblock usage).

Parameters:

nUp: NUMERIC - Number of rows to go up.

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

298. GoDown( nDown, nKey )

Description: Accessor for GoDown (same as DATA member, method version for codeblock usage).

Parameters:

nDown: NUMERIC - Number of rows to go down.

nKey: NUMERIC - Key code.

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

299. PageUp( nLines )

Description: Accessor for PageUp (same as DATA member, method version for codeblock usage).

Parameters:

nLines: NUMERIC - Number of lines to page up.

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

300. PageDown( nLines )

Description: Accessor for PageDown (same as DATA member, method version for codeblock usage).

Parameters:

nLines: NUMERIC - Number of lines to page down.

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

301. GoLeft( lOffset, lRefresh )

Description: Accessor for GoLeft (same as DATA member, method version for codeblock usage).

Parameters:

lOffset: NUMERIC - Left offset.

lRefresh: LOGICAL - Refresh flag.

Return Value: LOGICAL - Returns .T. if go left is successful, .F. otherwise.

Usage Example: (Internal use only - method version for codeblock usage)

302. GoRight( lOffset, lRefresh )

Description: Accessor for GoRight (same as DATA member, method version for codeblock usage).

Parameters:

lOffset: NUMERIC - Right offset.

lRefresh: LOGICAL - Refresh flag.

Return Value: LOGICAL - Returns .T. if go right is successful, .F. otherwise.

Usage Example: (Internal use only - method version for codeblock usage)

303. GoLeftMost()

Description: Accessor for GoLeftMost (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

304. GoRightMost()

Description: Accessor for GoRightMost (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

305. GoFirstEditCol()

Description: Accessor for GoFirstEditCol (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: OBJECT - Returns the TxBrwColumn object of the first editable column.

Usage Example: (Internal use only - method version for codeblock usage)

306. HandleEvent( nMsg, nWParam, nLParam )

Description: Accessor for HandleEvent (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member HandleEvent)

Return Value: NUMERIC - Message return value.

Usage Example: (Internal use only - method version for codeblock usage)

307. HandleGesture( nGesture, nLParam )

Description: Accessor for HandleGesture (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member HandleGesture)

Return Value: NUMERIC - Gesture event return value.

Usage Example: (Internal use only - method version for codeblock usage)

308. GesturePan( aPanInfo )

Description: Accessor for GesturePan (same as DATA member, method version for codeblock usage).

Parameters: (Same as DATA member GesturePan)

Return Value: NUMERIC - Gesture pan return value.

Usage Example: (Internal use only - method version for codeblock usage)

309. KeyCount()

Description: Accessor for KeyCount (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: NUMERIC - Total number of rows.

Usage Example: (Internal use only - method version for codeblock usage)

310. BookMark()

Description: Accessor for BookMark (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: - Returns the bookmark value.

Usage Example: (Internal use only - method version for codeblock usage)

311. KeyNo()

Description: Accessor for KeyNo (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: NUMERIC - Returns the key number.

Usage Example: (Internal use only - method version for codeblock usage)

312. Skip( n )

Description: Accessor for Skip (same as DATA member, method version for codeblock usage).

Parameters:

n: NUMERIC - Number of rows to skip.

Return Value: NUMERIC - Number of rows skipped.

Usage Example: (Internal use only - method version for codeblock usage)

313. Bof()

Description: Accessor for Bof (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: LOGICAL - Returns .T. if BOF, .F. otherwise.

Usage Example: (Internal use only - method version for codeblock usage)

314. Eof()

Description: Accessor for Eof (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: LOGICAL - Returns .T. if EOF, .F. otherwise.

Usage Example: (Internal use only - method version for codeblock usage)

315. GoTop()

Description: Accessor for GoTop (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

316. GoBottom()

Description: Accessor for GoBottom (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

317. GoUp( nUp )

Description: Accessor for GoUp (same as DATA member, method version for codeblock usage).

Parameters:

nUp: NUMERIC - Number of rows to go up.

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

318. GoDown( nDown, nKey )

Description: Accessor for GoDown (same as DATA member, method version for codeblock usage).

Parameters:

nDown: NUMERIC - Number of rows to go down.

nKey: NUMERIC - Key code.

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

319. PageUp( nLines )

Description: Accessor for PageUp (same as DATA member, method version for codeblock usage).

Parameters:

nLines: NUMERIC - Number of lines to page up.

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

320. PageDown( nLines )

Description: Accessor for PageDown (same as DATA member, method version for codeblock usage).

Parameters:

nLines: NUMERIC - Number of lines to page down.

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

321. GoLeft( lOffset, lRefresh )

Description: Accessor for GoLeft (same as DATA member, method version for codeblock usage).

Parameters:

lOffset: NUMERIC - Left offset.

lRefresh: LOGICAL - Refresh flag.

Return Value: LOGICAL - Returns .T. if go left is successful, .F. otherwise.

Usage Example: (Internal use only - method version for codeblock usage)

322. GoRight( lOffset, lRefresh )

Description: Accessor for GoRight (same as DATA member, method version for codeblock usage).

Parameters:

lOffset: NUMERIC - Right offset.

lRefresh: LOGICAL - Refresh flag.

Return Value: LOGICAL - Returns .T. if go right is successful, .F. otherwise.

Usage Example: (Internal use only - method version for codeblock usage)

323. GoLeftMost()

Description: Accessor for GoLeftMost (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

324. GoRightMost()

Description: Accessor for GoRightMost (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: None

Usage Example: (Internal use only - method version for codeblock usage)

325. GoFirstEditCol()

Description: Accessor for GoFirstEditCol (same as DATA member, method version for codeblock usage).

Parameters: None

Return Value: OBJECT - Returns the TxBrwColumn object of the first editable column.

Usage Example: (Internal use only - method version for codeblock usage)

]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277177#p277177 Fri, 24 Jan 2025 03:38:41 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277177#p277177
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using new Class TDeepSeek for documenting :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277178#p277178

Code: Select all | Expand

You're right to ask about how these methods are related! The sheer number of methods in TXBrowse can be overwhelming, but they are designed to work together to provide a rich and functional browse control.

Let's break down how these methods are related by categorizing them based on their roles and interactions:

1. Lifecycle Management (Creation, Destruction, Initialization):

New() and Destroy(): These are the fundamental methods that control the lifespan of a TXBrowse object. New() creates an instance, setting up default properties and resources. Destroy() cleans up and releases those resources when the object is no longer needed.

Initiate( hDlg ): Called internally during the creation process. It sets up scrollbars, default colors, and initializes data-related codeblocks.

Adjust(): Crucially linked to data loading and display. It's called after data is set (via SetRDD, SetArray, etc.) to calculate sizes of rows, columns, headers, footers, and prepare the browse for rendering. It also triggers CheckSize() and CalcHdrHeight() to ensure correct layout.

CheckSize() & CalcHdrHeight() & CalcRowSelPos(): These are helper methods called by Adjust() and Refresh() to recalculate dimensions and positions based on data and style settings. They ensure the browse layout is consistent and correct after data or style changes.

Think of it like building a house: New() is like laying the foundation, Initiate() is like building the basic structure, Adjust() is like fitting windows and doors and ensuring everything is properly sized, and Destroy() is like demolishing the house when it's no longer needed.

2. Data Source Management (Setting and Resetting Data):

SetRDD(), SetArray(), SetoDbf(), SetExcelRange(), SetAdo(), SetTree(), SetColsForTree(), SetDolphin(), SetMySql(): These methods are the entry points for connecting the TXBrowse to different data sources. They are mutually exclusive – you'll use one of them depending on your data origin. They all ultimately trigger Adjust() after setting up the data connection to prepare the browse for display.

ResetData( uSrc, aCols ) & ResetBrowse(): Used to clear the existing data and columns and optionally load new data. ResetBrowse() is a more general reset, while ResetData() specifically handles switching data sources.

Analogy: These methods are like choosing the type of fuel and engine for your car (TXBrowse). You choose one (RDD, Array, etc.) to power the data display. ResetData is like changing the engine entirely, while ResetBrowse is more like just turning off the engine and clearing the dashboard.

3. Navigation Methods (Cursor Movement and Position):

GoTop(), GoBottom(), GoUp(), GoDown(), PageUp(), PageDown(), Skip(): These methods provide different ways to move the browse cursor through the data. They are all interconnected as different forms of navigation.

BookMark(), KeyNo(): These methods manage the bookmark and key number (scrollbar position) of the browse. They are often used in conjunction with navigation methods to remember or jump to specific positions.

GoFltRow(n), GoLeft(), GoRight(), GoLeftMost(), GoRightMost(), GoFirstEditCol(): These methods offer more specialized navigation, like moving to a specific filtered row or navigating horizontally.

Analogy: These are like the steering wheel, pedals, gear shift, and GPS of your car. They allow you to control where you are in the data (the road).

4. Selection Management (Row Selection and Multiselect):

Select( nOperation ), SelectAll(), SelectNone(), SelectRow( nOperation ), IsSelectedRow(): These methods are focused on row selection, especially in multi-select mode. Select() is the core method, with others being convenience wrappers.

SetMultiSelectCol( uCol, lFooter ): Enables multi-selection and links it to a specific column, triggering the use of the selection methods.

Analogy: These are like the car's seatbelt and door locks – features that manage how you interact with the car's contents (data).

5. Editing and Data Modification:

Edit(), EditSource(), EditBrowse(), EditDateTime(): These methods provide different ways to edit data, typically in modal dialogs or in-place (depending on column settings). Edit() acts as a dispatcher, choosing the appropriate editing method.

CancelEdit(): Cancels any ongoing edit operation.

Delete( lMsg ): Deletes the currently selected record.

SaveData( lRefresh ): Saves changes made during editing back to the data source.

ArrCellSet(), ArrCell(): Methods for direct manipulation of array data source cells.

Lock(), UnLock(): Methods for controlling data modification by locking/unlocking the browse.

Analogy: These are like the tools you use to repair or modify your car – wrenches, paintbrushes, etc. They allow you to change the data (car's components).

6. Display and Appearance Methods:

Display(), Paint(), Refresh( lComplete ), RefreshCurrent(), RefreshHeaders(), RefreshFooters(), DrawBorder(), DrawLine(), EraseData(), FullPaint(): These methods are responsible for rendering the browse control visually. Refresh() is the main method for redrawing, while others handle specific parts of the display or optimize refresh operations.

SetStyle(), SetDarkTheme(), SetFont(), FontSize(), SetRecSelBmp(), SetRecSelSl(), SetBackGround(), SetColor(), SetGroupHeader(), SetGroupTotal(), SetMultiSelectCol(), SetChecks(), SetProgBar(): These methods control the visual appearance of the browse, including styles, colors, fonts, bitmaps, and various display elements.

ShowMessage(), CloseMessage(): Methods for displaying and closing temporary message boxes within the browse.

DrawChart(), DrawChartInRect(), PaintBmpAndText(), PaintHeader(), PaintFooter(), PaintHDivider(), PaintVDivider(), PaintTopBar(), PaintCellBack(), PaintCell(), PaintCellBtn(), PaintCellImage(), PaintCellBarCode(): These are lower-level painting methods used internally by Paint() to draw specific elements of the browse, like headers, footers, cells, bitmaps, and various visual styles.

Analogy: These are like the paint job, interior design, and lights of your car – everything that makes it look and present information to the user.

7. Exporting Methods:

ToExcel(), ToXlsx(), ToCalc(), ToWord(), ToHTML(), ToCSV(), ToArray(), ClpRow(), Copy(): These methods provide ways to export the data displayed in the browse to various formats.

Analogy: These are like the car's ability to transport cargo – taking the data (cargo) and putting it in a different format (destination).

8. Event Handling Methods:

HandleEvent(), HandleGesture(), GesturePan(), LButtonDown(), LButtonUp(), MouseMove(), LDblClick(), RButtonDown(), MouseWheel(), KeyDown(), KeyChar(), MouseLeave(), NcMouseMove(): These methods handle various Windows messages and events, allowing the TXBrowse to respond to user interactions (mouse clicks, keyboard input, scrolling, gestures) and system events.

Analogy: These are like the car's sensors and controls that respond to the driver's actions and the environment.

9. Utility/Helper Methods:

MakeBlock(), ArrCalcWidths(), CalcHdrHeight(), CalcRowSelPos(), Check_oSeek(), CheckSize(), ColStretch(), DestroyToolTip(), ColAtPos(), ColPos(), SelectedCol(), IsDisplayPosVisible(), LastDisplayPos(), GetDisplayCols(), GetDisplayColsWidth(), GetPaintCols(), Eval(), SafeEval(), BrwFitSize(), CancelEdit(), CheckSortCbx(), DelRepos(), DrawLine(), EraseData(), GetDlgCode(), HasBorder(), LButtonDown(), LButtonUp(), MouseMove(), LDblClick(), RButtonDown(), MouseWheel(), HorzLine(), MouseAtHeader(), MouseAtFooter(), MouseColPos(), MouseRowPos(), EraseData(), KeyDown(), KeyChar(), HScroll(), VScroll(), VUpdatePos(), VUpdateAll(), VSetPos(), VThumbPos(), VGetPos(), VGetMax(), VGoDown(), VGoUp(), VGetThumbPos(), VGoBottom(), VGoTop(), GetDisplayCols(), GetVisibleCols(), GetDisplayColsWidth(), IsDisplayPosVisible(), LastDisplayPos(), BrwWidth(), GridWidth(), BrwHeight(), HeaderHeight(), FooterHeight(), CalcHdrHeight(), RowCount(), FirstRow(), LastRow(), FooterRow(), DataHeight(), BrwFitSize(), CancelEdit(), Check_oSeek(), SetSortBmp(), AutoFit(), CheckSize(), Resize(), Change(), MakeTotals(), SaveTotals(), ReCalcTotals(), Eval(), Report(), ToWord(), ToHTML(), ToCSV(), ToExcel(), ToXlsx(), ToCalc(), ToArray(), CurrentRow(), AddBitmap(), aBitmap(), Initiate(), Display(), Paint(), DrawBorder(), CheckSortCbx(), GetPaintCols(), PaintHDivider(), PaintVDivider(), PaintHeader(), PaintTopBar(), PaintFooter(), Refresh(), CalcRowSelPos(), DelRepos(), KeyCount(), BookMark(), KeyNo(), Skip(), Bof(), Eof(), GoTop(), GoBottom(), GoUp(), GoDown(), PageUp(), PageDown(), GoLeft(), GoRight(), GoLeftMost(), GoRightMost(), GoFirstEditCol(), HandleEvent(), HandleGesture(), GesturePan(), KeyCount(), BookMark(), KeyNo(), Skip(), Bof(), Eof(), GoFltRow(), SaveState(), RestoreState(), OldRestoreState(), Lock(), UnLock(), SaveData(), ShowSeek(), Seek(), Adjust(), Check_oSeek(), SetSortBmp(), AutoFit(), CheckSize(), Resize(), Change(), MakeTotals(), SaveTotals(), ReCalcTotals(), Eval(), Report(), ToWord(), ToHTML(), ToCSV(), ToExcel(), ToXlsx(), ToCalc(), ToArray(), CurrentRow(), AddBitmap(), aBitmap(), Initiate(), Display(), Paint(), DrawBorder(), CheckSortCbx(), GetPaintCols(), PaintHDivider(), PaintVDivider(), PaintHeader(), PaintTopBar(), PaintFooter(), Refresh(), CalcRowSelPos(), DelRepos(), KeyCount(), BookMark(), KeyNo(), Skip(), Bof(), Eof(), GoTop(), GoBottom(), GoUp(), GoDown(), PageUp(), PageDown(), GoLeft(), GoRight(), GoLeftMost(), GoRightMost(), GoFirstEditCol(), HandleEvent(), HandleGesture(), GesturePan(): A massive category of internal helper methods used for various tasks like calculations, drawing, size adjustments, event handling, and data manipulation. They are not typically called directly by users but are essential for the internal workings of TXBrowse.

Analogy: These are like the nuts, bolts, wires, and smaller components that make up the car's engine, chassis, and electrical system. They are essential for the car to function correctly, but you don't interact with them directly as a driver.

10. Accessor Methods (SET/GET for DATA members):

Many DATA members have associated ACCESS and ASSIGN methods (often INLINE) that provide controlled access to their values. For example, lSeekBar, lGetBar, l2007, lFlatStyle, l2000, lMultiSelect, lIncrSearch, BookMark, KeyNo, Skip, Bof, Eof, GoFltRow, SaveState, RestoreState, OldRestoreState, Lock, UnLock, SaveData, ShowSeek, Seek, Adjust, Check_oSeek, SetSortBmp, AutoFit, CheckSize, Resize, Change, MakeTotals, SaveTotals, ReCalcTotals, Eval, Report, ToWord, ToHTML, ToCSV, ToExcel, ToXlsx, ToCalc, ToArray, CurrentRow, AddBitmap, aBitmap, Initiate, Display, Paint, DrawBorder, CheckSortCbx, GetPaintCols, PaintHDivider, PaintVDivider, PaintHeader, PaintTopBar, PaintFooter, Refresh, CalcRowSelPos, DelRepos, KeyCount, BookMark, KeyNo, Skip, Bof, Eof, GoTop, GoBottom, GoUp, GoDown, PageUp, PageDown, GoLeft, GoRight, GoLeftMost, GoRightMost, GoFirstEditCol, HandleEvent, HandleGesture, GesturePan().

Analogy: These are like the car's gauges and controls on the dashboard. They allow you to monitor and adjust certain aspects of the car's behavior (browse control's properties).

Interrelationships in Action (Example Workflow):

Let's consider a user sorting a TXBrowse by clicking a header:

User Clicks Header: Mouse click event is captured by HandleEvent().

Header Click Detection: MouseAtHeader() determines the click is in the header area and identifies the clicked column.

Sorting Initiation: HeaderLButtonUp() is called for the clicked column (TxBrwColumn object).

SetOrder() is Called: The SetOrder() method of the TxBrwColumn is invoked, which:

Determines the sort order (ascending/descending).

Updates the cOrder DATA member of the column.

Calls the SetOrder() method of the TXBrowse class.

SetOrder() in TXBrowse Class:

Calls SortArrayData() (if array data source) or initiates SQL sorting (if RDD/SQLRDD).

Sets the lAutoSort flag to .T..

Sets the aSortBmp bitmaps to indicate sort order in header.

Refresh() is Called: Triggers a full refresh of the browse to reflect the sorted data.

Paint() is Called: Redraws the entire browse control, including the sorted data and sort indicator bitmaps in the header.

This example illustrates how various methods from different categories work together to handle a single user action. Many other workflows, like navigation, editing, and filtering, involve similar interactions between different sets of methods.

This detailed breakdown should provide a better understanding of how the numerous methods within the TXBrowse class are interconnected and contribute to its overall functionality. Let me know if you have any specific methods or categories you'd like to explore further!
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277178#p277178 Fri, 24 Jan 2025 04:19:15 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277178#p277178
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using new Class TDeepSeek for documenting :: Reply by TimStone]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277207#p277207
I may also create a "manual" using Help and Manual that could embrace these outputs, and then make it available to you in both PDF and .hlp formats.

Tim]]>
no_email@example.com (TimStone) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277207#p277207 Sat, 25 Jan 2025 12:40:04 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277207#p277207
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using new Class TDeepSeek for documenting :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277208#p277208 I’m adding a sentence to the request for the AI to create an HTML page for me right away.
Here is the result as a PDF, for example.
https://mybergland.com/fwforum/tcontrol ... tation.pdf

Best regards,
Otto

Image]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277208#p277208 Sat, 25 Jan 2025 13:49:08 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277208#p277208
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using new Class TDeepSeek for documenting :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277209#p277209 Just at the moment I made the post, the idea occurred to me that you could also have anchor tags created. I also think a keyword directory is no problem.
Best regards,
Otto


https://winhotel-sandbox.com/fwforum/tc ... nchor.html

Image]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277209#p277209 Sat, 25 Jan 2025 13:48:43 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277209#p277209
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using new Class TDeepSeek for documenting :: Reply by TimStone]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277212#p277212
That is very nice ... but as far as I can see, 24.12 has not been released so I don't have access to that functionality.

When I do, HTML would be nice because it is easy to import into Help and Manual to make a true document.]]>
no_email@example.com (TimStone) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277212#p277212 Sat, 25 Jan 2025 16:46:33 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277212#p277212
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using new Class TDeepSeek for documenting :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277213#p277213
We are very close to publish FWH 24.12

We apologize for the delay]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277213#p277213 Sat, 25 Jan 2025 17:04:54 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45319&p=277213#p277213
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Antonio... FiveTouch posts are gone? :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277107#p277107
I have split the DBF memo fields into TXT files, all in one directory. There are 276,748 TXT files. When I now perform a search with

Code: Select all | Expand

Get-ChildItem -Path c:\www\htdocs\fwforum\data\forumsext\POST_TEXT_memo -Recurse -Filter *.txt | Select-String -Pattern "My program creates a PDF" | ForEach-Object { $_.Path } | Out-File -FilePath "search_results.txt" -Encoding ASCII
it takes about 50 seconds.

I think if you were to split the TXT files into groups and then start multiple searches simultaneously, this time could be significantly reduced.

In any case, it is a good real database to test my low-level functions.

Best regards,
Otto

Image]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277107#p277107 Tue, 21 Jan 2025 16:10:28 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277107#p277107
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Antonio... FiveTouch posts are gone? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277110#p277110
> I have split the DBF memo fields into TXT files, all in one directory. There are 276,748 TXT files. When I now perform a search with

Would you be so kind to share it ?

You may send it to me using https://wormhole.app/ or https://huggingface.co/

Thank you very much]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277110#p277110 Tue, 21 Jan 2025 23:42:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277110#p277110
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Antonio... FiveTouch posts are gone? :: Reply by Jimmy]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277115#p277115
Otto wrote: Tue Jan 21, 2025 11:10 pm I have split the DBF memo fields into TXT files, all in one directory. There are 276,748 TXT files. When I now perform a search with

it takes about 50 seconds.
50 Sec. is a long Time !

it is a old Problem when have so many Files in a Directory that it need a long Time to read all Files.
it also depends on File System :
FAT32 (Windows): The maximum number of files in a single directory is 65,534.]]>
no_email@example.com (Jimmy) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277115#p277115 Wed, 22 Jan 2025 03:24:45 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277115#p277115
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Antonio... FiveTouch posts are gone? :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277120#p277120 yes, you're right. Even TC takes a very long time to build the view in a directory with so many files.
But I think it's a good exercise for me. I simply don’t want an SQL database at the moment.
Still, I wonder why searches in SQL can be so fast.

Yesterday, I experimented further and split the directory into 4 parts, now performing the search with ripgrep and 4 parallel calls.
Now it takes 12 seconds. In the evening, I’ll test again with 8 directories.

At the moment, I’m working on creating an index file. For my purpose in a DMS system, it works well, even if the first search takes longer.
But since I can then work with the original files, I see this approach as a good fit.

This first test with the index file didn’t work yet.
Best regards,
Otto]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277120#p277120 Wed, 22 Jan 2025 07:26:33 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277120#p277120
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Antonio... FiveTouch posts are gone? :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277121#p277121 Which data should I upload?

Best regards,
Otto]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277121#p277121 Wed, 22 Jan 2025 07:28:11 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277121#p277121
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Antonio... FiveTouch posts are gone? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277122#p277122
never mind. We already found a bug we were looking for :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277122#p277122 Wed, 22 Jan 2025 07:57:21 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277122#p277122
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Antonio... FiveTouch posts are gone? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277131#p277131
Adolfo wrote: Mon Jan 20, 2025 2:40 pm Antonio, there is no Fivetouch posts in the forum :-(

I need to program a very simple Android app, whats the status of Fivetouch
Mensajes arreglados :wink:

https://forums.fivetechsupport.com/view ... hp?t=35529]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277131#p277131 Wed, 22 Jan 2025 12:02:18 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277131#p277131
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Antonio... FiveTouch posts are gone? :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277132#p277132
I conducted an exciting experiment to optimize full-text search in memo files. Here's a brief summary:

Initial Situation:

Data: Memo fields from a DBF file (forums.dbf, 921 MB, 271,585 records) were exported into 271,585 individual TXT files.
Problem: Searching in a folder containing all TXT files took 50 seconds.
Optimizations:

File Distribution:

The files were distributed across 4 folders.
Using rg.exe (ripgrep) and parallel searching reduced the time to 12–14 seconds.
Index File:

A central index file was created, containing all texts from the memo files.
Image

Direct Search with rg.exe:

The direct search with rg.exe in the index file is blazing fast, taking only 0.335 seconds.
Image

Next Steps:

Temporary Index File:
A temporary index file will be created during changes, and the main index file will be updated incrementally.
Conclusion:

rg.exe is a game-changer: It provides SQL-like speed for full-text searches.

Simplicity and Transparency: The solution uses simple tools while maintaining full control over the data.
I'm excited to hear your thoughts and suggestions!

Best regards,
Otto]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277132#p277132 Wed, 22 Jan 2025 15:11:08 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277132#p277132
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Antonio... FiveTouch posts are gone? :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277133#p277133 ]]> no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277133#p277133 Wed, 22 Jan 2025 15:28:55 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277133#p277133 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Antonio... FiveTouch posts are gone? :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277197#p277197


The outsourcing of memo fields into individual files can indeed be a practical and flexible alternative in modern systems and might better suit your DMS system.

That is exactly what I’m working on: a project where I create an index file from all the words in a directory. The index file follows the pattern: Word[TAB]Filename. My system is already working very well, but I wanted to share my approach and at the same time ask if anyone else is working on something similar. I’d love to exchange ideas and learn from your experiences!

My Solution Overview

One-time Creation of the Index File
I scan the directory and extract all words from the files.

For each word, I create an entry in the format Word[TAB]Filename and save everything in a main index file.

Ongoing Operation
During operation, the index file must be updated whenever files are deleted, edited, or added. My approach is as follows:

A. Deleting a File

I search the index file for all entries containing the filename.

These entries are removed from the index file.

B. Editing a File

First, I delete all entries in the index file that contain the filename.

Then I create a temporary index file with new entries from the edited file.

Finally, I append the temporary index file to the main index file.

C. Adding a New File

I create a temporary index file with entries from the new file.

This temporary index file is appended to the main index file.

Why This Approach?

Simplicity: The approach is easy to understand and implement.

Consistency: By deleting and recreating entries during edits, the index file always remains up to date.

Flexibility: Temporary index files allow changes to be processed in isolation before being merged into the main index file.

PS: Here’s a test

Just for info: the search is performed across 276,748 TXT files.
I split the forums DBF into individual memo files.

Search completed. Elapsed time: 0.9403415 seconds
Writing hash content to 'c:\search_results\results.txt'...
Results have been written to 'c:\search_results\results.txt'.
Writing matches with coverage to 'c:\search_results\matches_with_coverage.txt'...
Matches with coverage have been written to 'c:\search_results\matches_with_coverage.txt'.]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277197#p277197 Sat, 25 Jan 2025 08:00:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277197#p277197
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Antonio... FiveTouch posts are gone? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277200#p277200
very interesting. Nice idea! :)

Could you please share the structure of the DBF and the used index key ?

Wondering if we should use user defined indexes entries, something possible using CDXs]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277200#p277200 Sat, 25 Jan 2025 09:52:23 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277200#p277200
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Antonio... FiveTouch posts are gone? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277201#p277201
Looking into xHarbour docs I found this example. This came to my mind reading your post:

Code: Select all | Expand

// The example shows two approaches for building a custom index.
// In the first approach, the controlling index is a regular index
// which allows for relative database navigation. The second approach
// uses the custome index as controlling index and requires absolute
// database navigation. The first five logical records and physical records
// are added to the custome index.

   REQUEST Dbfcdx

   PROCEDURE Main
      USE Customer VIA "DBFCDX"
      INDEX ON Upper(LastName+FirstName) TAG NAME    TO Cust01
      INDEX ON Upper(LastName+FirstName) TAG NAMESET TO Cust01t CUSTOM

      // relative navigation with non-custom index
      OrdSetFocus( "NAME" )
      GO TOP
      FOR i:=1 TO 5
         OrdKeyAdd( "NAMESET" )
         SKIP
      NEXT

      GO TOP
      Browse()

      // absolute navigation with custom index
      OrdSetFocus( "NAMESET" )
      FOR i:=1 TO 5
         DbGoto( i )
         OrdKeyAdd( "NAMESET" )
      NEXT

      GO TOP
      Browse()

      USE
   RETURN
OrdKeyAdd()
Adds an index key to a custom built index.
Syntax
OrdKeyAdd( [<nOrder>|<cIndexName>], ;
[<cIndexFile>] , ;
[<xIndexValue>] ) --> lSuccess

Arguments
<nOrder>
A numeric value specifying the ordinal position of the custom index open in a work area. Indexes are numbered in the sequence of opening, beginning with 1. The value zero identifies the controlling index.
<cIndexName>
Alternatively, a character string holding the symbolic name of the open custom index can be passed. It is analogous to the alias name of a work area. Support for <cIndexName> depends on the RDD used to open the index. Usually, RDDs that are able to maintain multiple indexes in one index file support symbolic index names, such as DBFCDX, for example.
<cIndexFile>
<cIndexFile> is a character string with the name of the file that stores the custom index. It is only required when multiple index files are open that contain indexes having the same <cIndexName>.
<xIndexValue>
This is the index value to be added to the index for the current record. It must be of the same data type as the value returned by the index expression. If omitted, <xIndexValue> is obtained by evaluating the index expression with the data of the current record. Return
The function returns .T. (true) if the current record is successfully included in the index, otherwise .F. (false) is returned.
Description
OrdKeyAdd() is used to build a custom index whose entries are programmatically added and deleted. Custom built indexes are not automatically updated by the RDD but are initially empty. OrdKeyAdd() adds the current record to the custom index and OrdKeyDel() removes it. It is possible to add multiple index values to the index for the same record, so that the same record is found when different search values are passed to DbSeek().
If no parameters are passed, OrdKeyAdd() evaluates the index expresssion with the data of the current record to obtain <xIndexValue>. The record is added to the index when it matches the FOR condition and scoping restrictions, if they are defined. When <xIndexValue> is specified, it must have the same data type as the value of the expression &(OrdKey()).
OrdKeyAdd() fails if the record pointer is positioned on Eof(), if the specified index is not a custom index, or if the specified index does not exist.
This is important when the custom index is the controlling index. Since a custome index is initially empty, relative database navigation with SKIP positions the record pointer always at Eof(). To include records to a controlling custom index, they must be physically navigated to using DbGoto().
The recommended way of creating a custom index is to use a non-custom index as the controlling index, skip through the database and specify <cIndexName> for OrdListAdd() when the current record meets the conditions for being included in the custom index.
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277201#p277201 Sat, 25 Jan 2025 10:21:34 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277201#p277201
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Antonio... FiveTouch posts are gone? :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277206#p277206 I made this function to export the memofields:

Code: Select all | Expand


#include "fivewin.ch"

REQUEST DBFCDX
REQUEST DBFFPT
static nCount := 0
function main
    local cDBF_Dir := ".\dataTest\pages"
    local cDBF_file_noPath := "c:\fwh\samples\DataTest"
    local cDBF_file_memo := ""
    local cDBF_fil_new := "PAGES_NEW"
    local aStruc := {}
    local cTmpDbf := ""
    local cSrc := "c:\forumposts\forums.dbf" // "c:\fwh\samples\DataTest\PAGES.DBF"
    local cDst := "c:\forumposts\forumsext.dbf"   // "c:\fwh\samples\DataTest\PAGESext.dbf"
    local cTempMatchcode := ""
    local aFeld := {}  
    local aField := {}  
    local nField
    local cFieldSubdir
	 local cDBF_memofiles := ""
	 
    use (cSrc) new
    aStruc := DBStruct()
    use    

 

//cFilePath( cSrc )   // returns path of a filename
//cFileNoExt( cSrc ) // returns the filename without ext


cDBF_memofiles := cFilePath( cSrc ) + cFileNoExt( cSrc ) + "ext"

IF lisdir(cDBF_memofiles) = .f.
	lmkdir(cDBF_memofiles)
ENDIF

 
    // Adjust structure: Replace memo fields with character fields of length 50 and add prefix M_
    FOR EACH aField IN aStruc
        IF aField[2] == "M"
            aField[1] := "M_" + aField[1]  // Add prefix M_
            aField[2] := "C"
            aField[3] := 50
        ENDIF
    NEXT

    if file(cDst) = .F.
        DbCreate(cDst, aStruc)
    endif

    use

    use(cDst) new ALIAS neuedbf
    use(cSrc) new ALIAS altedbf

    select altedbf
    do while .not. eof()
        aFeld := getrec()

        // Export memo fields to txt files and save the file name in the character field
        FOR nField := 1 TO fcount()
            IF fieldType(nField) == "M"
                cFieldSubdir := cDBF_memofiles + "\" + fieldName(nField) + "_memo"
 
                // Create subdirectory for the memo field if not existing
                IF lisdir(cFieldSubdir) = .f.
                    lmkdir(cFieldSubdir)
                ENDIF
					 nCount += 1	
                cTempMatchcode := alltrim(str(recno())) + "-" + ShortUniqueIDNUM() + ALLTRIM( STR(nCount) )
                MEMOWRIT(cFieldSubdir + "\" + cTempMatchcode + ".txt", fieldGet(nField), .F. )
                aFeld[nField] := cTempMatchcode
            ENDIF
        NEXT

        select neuedbf
        APPEND_BLANK()
        saverec(aFeld)

        select altedbf
        skip
    enddo

    ? "Ende"
return 

INIT PROCEDURE PrgInit
    
    SET CENTURY ON
    SET EPOCH TO YEAR(DATE())-98
    
    SET DELETED ON
    SET EXCLUSIVE OFF
    
    REQUEST HB_Lang_DE
    
    HB_LangSelect("DE")
    
    SET DATE TO GERMAN
    
    rddsetdefault("DBFCDX")
    
    EXTERN DESCEND
    
RETURN

//----------------------------------------------------------------------------//
FUNCTION ShortUniqueIDNUM()
    local cUniqueIDNUM := substr(dtos(date()),3) + "_" +;
                       substr(time(),1,2) + ;
                       substr(time(),4,2) + ;
                       substr(time(),7,2) 

    return (cUniqueIDNUM)

//----------------------------------------------------------------------------//
FUNCTION RLOK
    if rlock()
        RETURN ""
    endif
    DO WHILE .T.
        if rlock()
            exit
        else
            MsgInfo("Infobox","Datensatz gesperrt!")
        endif
        INKEY(.01)
    ENDDO
    RETURN ""

FUNCTION FLOK
    if flock()
        RETURN ""
    endif
    DO WHILE .T.
        if flock()
            exit
        else
            MsgInfo("Infobox","Datensatz gesperrt!")
        endif
        INKEY(.01)
    ENDDO
    RETURN ""

//----------------------------------------------------------------------------//
FUNCTION APPEND_BLANK
    APPEND BLANK
    DO WHILE NETERR()
        APPEND BLANK
        INKEY(.1)
    ENDDO
    unlock
    rlok()
RETURN ""
//----------------------------------------------------------------------------//

FUNCTION unlok
    
    unlock
    
RETURN (NIL)
//----------------------------------------------------------------------------//

FUNCTION net_use(vcFile,vlExclus,vnWait,vcAlias)
    * tries to open a file for exclusive or shared use
    *
    * Syntax: NET_USE(expC1,expL1,expN1,expC2)
    * where:  expC1 = database to use, character string
    *         expL1 = .T. to use file exclusively, .F. for multi-user
    *         expN1 = seconds to wait if file isnt opened (0=forever), if >0,
    *                 the calling routine must be constructed to handle cases
    *                 where the file is not opened!
    *         expC2 = data driver
    *
    local forever := (vnWait=0)
    *
    do while (forever .or. vnWait>0)
        
        if vlExclus                               && exclusive
            use (vcFile) exclusive new
        else
            use (vcFile) shared new
        endif
        if .not. neterr()                         && USE succeeds
            RETURN (.T.)
        endif
        *
        inkey(1)                                  && wait 1 second
        vnWait--
    ENDDO
    RETURN (.F.)                                    && database opening unsuccessful!
//----------------------------------------------------------------------------//

FUNCTION getRec()
    local ary := {}
    local nFcnt, nFnum

    nFcnt = fcount()
    FOR nFnum = 1 to nFcnt
        aAdd(ary, fieldGet(nFnum))
    NEXT
    
    RETURN (ary)
//----------------------------------------------------------------------------//

FUNCTION saveRec(ary)
    local nFcnt, nFnum

    nFcnt = fcount()
    FOR nFnum = 1 to nFcnt
        fieldPut(nFnum, ary[nFnum])
    NEXT
    
    RETURN (NIL)

//----------------------------------------------------------------------------//



And I use to create the indexfile this powershell:

Code: Select all | Expand

# Pfade zu den zu durchsuchenden Verzeichnissen
$verzeichnisse = @(
    "C:\www\htdocs\fwforum\data\forumsext\Dir1",
    "C:\www\htdocs\fwforum\data\forumsext\Dir2",
    "C:\www\htdocs\fwforum\data\forumsext\Dir3",
    "C:\www\htdocs\fwforum\data\forumsext\Dir4",
    "C:\www\htdocs\fwforum\data\forumsext\Dir5",
    "C:\www\htdocs\fwforum\data\forumsext\Dir6",
    "C:\www\htdocs\fwforum\data\forumsext\Dir7",
    "C:\www\htdocs\fwforum\data\forumsext\Dir8"
)

# Pfad zur Indexdatei
$indexFile = "C:\suchergebnis\index.txt"

# Ergebnisverzeichnis sicherstellen
$ergebnisVerzeichnis = "C:\suchergebnis"
if (-not (Test-Path -Path $ergebnisVerzeichnis)) {
    New-Item -ItemType Directory -Path $ergebnisVerzeichnis | Out-Null
}

# Indexdatei initialisieren (leeren oder erstellen)
if (Test-Path $indexFile) {
    Clear-Content $indexFile
} else {
    New-Item -Path $indexFile -ItemType File | Out-Null
}

# Funktion zur Indexerstellung
function Build-Index {
    param (
        [string[]]$Directories,
        [string]$IndexPath
    )

    foreach ($dir in $Directories) {
        Write-Host "Indexiere Verzeichnis: $dir" -ForegroundColor Green
        # Alle .prg und .txt Dateien durchsuchen
        $files = Get-ChildItem -Path $dir -Recurse -Include *.prg, *.txt -File

        foreach ($file in $files) {
            Write-Host "  Verarbeite Datei: $($file.FullName)" -ForegroundColor Yellow
            try {
                # Dateiinhalt lesen
                $content = Get-Content -Path $file.FullName -Raw

                # Tokenisierung: Wörter extrahieren (nur alphanumerische Zeichen)
                $words = $content -split '\W+' | Where-Object { $_ -match '\w+' } | ForEach-Object { $_.ToLower() }

                # Einzigartige Wörter
                $uniqueWords = $words | Sort-Object -Unique

                foreach ($word in $uniqueWords) {
                    # Indexzeile: Wort<TAB>Dateipfad
                    "$word`t$($file.FullName)" | Out-File -FilePath $IndexPath -Append -Encoding ASCII
                }
            }
            catch {
                Write-Host "    Fehler beim Verarbeiten von $($file.FullName): $_" -ForegroundColor Red
            }
        }
    }

    Write-Host "Indexierung abgeschlossen." -ForegroundColor Green
}

# Funktion zur Suche im Index
function Search-Index {
    param (
        [string]$SearchTerm,
        [string]$IndexPath
    )

    $searchTerm = $SearchTerm.ToLower()
    Write-Host "Suche nach: '$searchTerm'" -ForegroundColor Cyan

    # Suche nach dem Wort am Anfang der Zeile (um genaue Übereinstimmung zu gewährleisten)
    $pattern = "^$searchTerm`t"

    $results = Select-String -Path $IndexPath -Pattern $pattern | ForEach-Object { $_.Line.Split("`t")[1] }

    # Ausgabe der gefundenen Dateien
    if ($results) {
        Write-Host "Gefundene Dateien:" -ForegroundColor Green
        $results | Sort-Object -Unique | ForEach-Object { Write-Host $_ }
    }
    else {
        Write-Host "Keine Treffer gefunden." -ForegroundColor Yellow
    }

    return $results
}

# Zeitmessung starten
$startzeit = Get-Date

# Index erstellen
Build-Index -Directories $verzeichnisse -IndexPath $indexFile

# Zeitmessung beenden
$endzeit = Get-Date
$dauer = $endzeit - $startzeit

# Dauer anzeigen
Write-Host "Indexierungsdauer: $($dauer.TotalSeconds) Sekunden" -ForegroundColor Cyan

# Größe der Indexdatei messen
$indexSize = (Get-Item $indexFile).Length
Write-Host "Größe der Indexdatei: $indexSize Bytes" -ForegroundColor Cyan

# Beispielhafte Suchanfrage
$searchBegriff = "volltxtSearch"
$gefunden = Search-Index -SearchTerm $searchBegriff -IndexPath $indexFile

# Größe der Originaldateien messen
$originalSize = ($verzeichnisse | ForEach-Object {
    Get-ChildItem -Path $_ -Recurse -Include *.prg, *.txt -File | Measure-Object -Property Length -Sum
}).Sum

Write-Host "Gesamtgröße der Originaldateien: $originalSize Bytes" -ForegroundColor Cyan

# Vergleich der Größen
$sizeRatio = [math]::Round(($indexSize / $originalSize) * 100, 2)
Write-Host "Indexgröße als Prozentsatz der Originaldateien: $sizeRatio%" -ForegroundColor Cyan

This takes hours to build the index!
But CRUD functions for index lines works fast.
Best regards,
Otto]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277206#p277206 Sat, 25 Jan 2025 11:51:17 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277206#p277206
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Antonio... FiveTouch posts are gone? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277214#p277214
https://xthefull.blogspot.com/2014/02/h ... er-to.html

Code: Select all | Expand

cNombre := "SARAH"

fast_filter( "*"+ alltrim( cNombre ) + "?", 4, 22, 28 )
Browse()


Ahora, ya estaría el filtro activado basado en subindices.

/* 
 Sustituto de SET FILTER
 cExpr  
    Expresion a buscar que forme parte del indice, podemos 
    poner *Texto? , para buscar palabra que forme parte

 nOrder
    Sobre que indice activo vamos a recorrer la lista.
    Por defecto es el indice activo.

 nRow, nCol 
     Posicion fila,columna para mostrar progreso. Se ejecuta en 
     un hilo aparte

 Return: Indice anterior

*/
function fast_filter( cExpr, nOrder, nRow, nCol )
      local PantaAnt := savescreen(0,0,MaxRow(),MaxCol())
      Local p := hb_threadStart( @Pajaritos(), nRow, nCol )
      Local nIndice := OrdNumber()

      DEFAULT nOrder TO OrdNumber()

      set order to nOrder
      INDEX ON &(IndexKey()) TAG _TEMP_ TO tHarbourt ;
               CUSTOM ADDITIVE MEMORY
       
      set order to nOrder
      go top

      DO WHILE OrdWildSeek( cExpr, .T. )
         OrdKeyAdd( "_TEMP_" )
      ENDDO
      OrdSetFocus( "_TEMP_" )
       
      hb_threadTerminateAll()
      restscreen(0 ,0 ,MaxRow(), MaxCol(), PantaAnt)

return nIndice

PROCEDURE Pajaritos( nRow, nCol )
        Local pajarito := "|",n := 0
        
        DEFAULT nRow := MaxRow(), nCol := 1

        DO WHILE .T.

           do case
              case n = 1 
                   pajarito = "|" 
              case n = 2 
                   pajarito = "/" 
              case n = 3  
                   pajarito = "-" 
              case n = 4 
                   pajarito = "\" 
              Otherwise 
                   n := 0
           end case

           DispOutAt( nRow, nCol, "Generando Consulta....[ " +  pajarito +" ]" ) //, "GR+/N" )
           ThreadSleep( 500 )
           n++
       ENDDO
RETURN
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277214#p277214 Sat, 25 Jan 2025 17:07:14 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45330&p=277214#p277214
<![CDATA[FiveWin for Harbour/xHarbour :: Extend a Fivewin class :: Author oliveiros junior]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45347&p=277195#p277195
I would like to know if it is possible to add a method to an existing class. Ex.: Add the ChangeText method to the TBtnBmp class.

If so, would there be any practical example?

I need to add some information to an object and I would like not to touch the Fivewin classes.

Thank you in advance for everyone's attention.

Oliveiros Junior]]>
no_email@example.com (oliveiros junior) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45347&p=277195#p277195 Sat, 25 Jan 2025 04:06:48 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45347&p=277195#p277195
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Extend a Fivewin class :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45347&p=277196#p277196
2) Please reconsider. It is possible to changetext of BtnBmp using the Existing methods. No need to have any additional method for this. Can you explain what exactly are you looking for.]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45347&p=277196#p277196 Sat, 25 Jan 2025 05:36:03 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45347&p=277196#p277196
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Extend a Fivewin class :: Reply by oliveiros junior]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45347&p=277215#p277215
I'm using FWH, version 23.07;

My goal is to be able to write various information about the button, different positions.

Ex.:
+------------------------------------------------------------------------------------+
| xxxxxxx ...................................................................... |
| xxxxxxx .......................................XXXXX XXXXXX( image) |
| |
+------------------------------------------------------------------------------------+

I made a multi-button Loop for testing and tried a few things that didn't work using existing methods.

As:

For nX = 1 To Len( oDlg1:aItem )

@ nLinha, nColuna + 50 BTNBMP aBtns[ nX ];
PROMPT "" RIGHT;
FLAT NOBORDER FONT oFontTxt COLOR CLR_BLACK, CLR_WHITE ;
SIZE oDlg1:nLargura - 100, 100 OF oDlg1:oPanel

aBtns[ nX ]:nRound := 20
aBtns[ nX ]:lTransparent := .F.

//aBtns[ nX ]:bPainted := { || aBtns[ nX ]:SayText( 'Linha 1',{ 0, 0, 40, 140 }, 'R', oFontTxt, { CLR_GREEN, CLR_BLACK } ) }

//aBtns[ nX ]:SayText( 'Linha 1',{ 0, 0, 40, 140 }, 'R', oFontTxt, { CLR_GREEN, CLR_BLACK } )

nLinha += 110
Next

Another need I have is to have a wide button with an image aligned to the left and for the action to only be executed if the click occurs on the image.

Thank you in advance for your attention!

Oliveiros Junior]]>
no_email@example.com (oliveiros junior) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45347&p=277215#p277215 Sun, 26 Jan 2025 07:23:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45347&p=277215#p277215
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Extend a Fivewin class :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45347&p=277223#p277223

Code: Select all | Expand

#include "fivewin.ch"

function Main()

   local o

#ifdef __XHARBOUR__
   EXTEND CLASS TestClass WITH MESSAGE Multiply  METHOD Multiply
#else
   __CLSADDMSG( TestClass():classH, "Multiply", HB_FUNCPTR( "MULTIPLY" ), HB_OO_MSG_METHOD )
#endif


   o  := TestClass():New()
   ? o:Value
   ? o:Multiply( 10 )


return nil

CLASS TestClass

   VAR Value INIT 9

ENDCLASS

function Multiply( n )

   local Self := HB_QSelf()

return ::Value * n
]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45347&p=277223#p277223 Mon, 27 Jan 2025 05:49:41 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45347&p=277223#p277223
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Extend a Fivewin class :: Reply by oliveiros junior]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45347&p=277225#p277225
Thanks,

Att.,

Oliveiros Junior]]>
no_email@example.com (oliveiros junior) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45347&p=277225#p277225 Mon, 27 Jan 2025 06:43:14 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45347&p=277225#p277225
<![CDATA[FiveWin for Harbour/xHarbour :: multi-column popup menu :: Author Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277113#p277113 (there is COLUNS option in TMenu class, but I didn't find any examples of using it :( )]]> no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277113#p277113 Wed, 22 Jan 2025 02:15:44 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277113#p277113 <![CDATA[FiveWin for Harbour/xHarbour :: Re: multi-column popup menu :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277116#p277116
We are checking it...]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277116#p277116 Wed, 22 Jan 2025 03:38:36 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277116#p277116
<![CDATA[FiveWin for Harbour/xHarbour :: Re: multi-column popup menu :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277125#p277125

Code: Select all | Expand

function ColPopUp()

   local oPop

   MENU oPop POPUP 2007 ;
      SELECT "STATES" ;  // alias
      COLUMNS 1, 2 ;
      HEADERS "One", "Two"

   ENDMENU

return oPop
Image]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277125#p277125 Wed, 22 Jan 2025 08:57:54 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277125#p277125
<![CDATA[FiveWin for Harbour/xHarbour :: Re: multi-column popup menu :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277129#p277129

Code: Select all | Expand

//----------------------------------------------------------------------------//
//   Author: Cristobal Navarro
//   Sample demo Features MENUS, using databases and arrays
//----------------------------------------------------------------------------//

#include "FiveWin.ch"

Static oWnd
Static oFontMnu

function Main()

   local oMenu

   DEFINE FONT oFontMnu NAME "Segoe UI Symbol" SIZE 0, -14
   
   DbUseArea( .T., , "Customer.dbf" )
   DbUseArea( .T., , "utf8_01.dbf" )
   DbUseArea( .T., , "states.dbf" )
   //DbGoto( 3 )
   DEFINE WINDOW oWnd TITLE "Test Menu From Databases and Arrays: " MENU MenuDatabase() ;
      FROM 20, 40 TO 650, 1200 PIXEL

   oWnd:bRClicked  := { | nR, nC | MenuDatabase( .T., .F., nR, nC ) }
   CtrlMove( oWnd )

   ACTIVATE WINDOW oWnd ON INIT MenuDatabase( .F., .T., , ) MAXIMIZED

   RELEASE oFontMnu

return nil

//----------------------------------------------------------------------------//

Function MenuDatabase( lPopup, lSys, nR, nC )

   local oMenu
   DEFAULT lPopup  := .F.
   DEFAULT lSys    := .F.

   if !lPopup
      if !lSys
         MENU oMenu 2013 ;
            COLORMENU METRO_STEEL, CLR_WHITE ;
            COLORLEFT CLR_WHITE, METRO_STEEL ;
            COLORRIGHT CLR_WHITE, METRO_STEEL ;
            COLORSELECT CLR_HCYAN, CLR_HCYAN, Rgb( 0, 0, 1 ) ; //CLR_WHITE, CLR_WHITE, CLR_BLUE ;
            COLORSEPARATOR CLR_RED ;
            COLORBOX CLR_WHITE
      else
         REDEFINE SYSMENU oMenu OF oWnd 2013 ;
            COLORMENU METRO_STEEL, CLR_WHITE ;
            COLORLEFT CLR_WHITE, METRO_STEEL ;
            COLORRIGHT CLR_WHITE, METRO_STEEL ;
            COLORSELECT CLR_WHITE, CLR_WHITE, CLR_BLUE ;
            COLORSEPARATOR CLR_RED ;
            COLORBOX CLR_WHITE
         
         SEPARATOR
      endif
   else
      MENU oMenu 2013 POPUP FONT oFontMnu ;
         COLORMENU METRO_STEEL, CLR_WHITE ;
         COLORLEFT CLR_WHITE, METRO_STEEL ;
         COLORRIGHT CLR_WHITE, METRO_STEEL ;
         COLORSELECT CLR_WHITE, CLR_WHITE, CLR_BLUE ;
         COLORSEPARATOR CLR_RED ;
         COLORBOX CLR_WHITE
   endif
   if lPopup
      MENUITEM "Databases and Arrays Test and Font" SEPARATOR OF oMenu BOLD //ITALIC
      SEPARATOR
   endif
   MENUITEM Alias( 1 ) // COLORMENU CLR_RED, CLR_YELLOW
      MENU SELECT Alias( 1 ) LIMIT 16 COLUMNS 1, 4, 5
      ENDMENU
   MENUITEM Alias( 2 )
      MENU SELECT Alias( 2 ) LIMIT 06 COLUMNS 1, 2, 3
      ENDMENU
   MENUITEM Alias( 3 )
      MENU SELECT Alias( 3 ) LIMIT -1 COLUMNS 2
      ENDMENU
   MENUITEM Alias( 2 ) + "_EXPAND"
      MENU SELECT Alias( 2 ) LIMIT 06 COLUMNS 1, 2, 3 EXPAND
      ENDMENU
   MENUITEM Upper( "FieldNames_" ) + Alias( 1 )
      MENU SELECT ( Alias( 1 ) )->( DbStruct() ) LIMIT -1 COLUMNS 2, 1, 3 //, 4
      ENDMENU
   MENUITEM Upper( "FieldNames_" ) + Alias( 1 ) + "_EXPAND"
      MENU SELECT ( Alias( 1 ) )->( DbStruct() ) LIMIT -1 COLUMNS 1, 2, 3, 4 ;
         EXPAND NOFORM HEADERS "Name", "Type", "Length", "Decs"
      ENDMENU
   MENUITEM Upper( "FieldNames" ) + "_EXPAND_FORM_ACTIONS"
      MENU SELECT ( Alias( 1 ) )->( DbStruct() ) LIMIT -1 COLUMNS 1, 2, 3, 4 EXPAND ;
         HEADERS "Name", "Type", "Length", "Decs" ACTION { | oI | MyAction( oI ) }
         //LEFTWIDTH if( lSys, 24, 1 ) ;
         //LOGOMENU "..\bitmaps\fivetechv.png" ;
      ENDMENU
   MENUITEM "EXIT" ACTION oWnd:End() WHEN ( !lPopup .and. !lSys )
   if lPopup
      ENDMENU
      if nC < oWnd:nRight - 400
         ACTIVATE MENU oMenu AT nR, nC OF oWnd  // Limit zone for show menu
      else
         oMenu:End()    // Release Menus created
      endif
   else
      if lSys
         SEPARATOR
         MENUITEM "Reset Menu"  ACTION oMenu:Reset()
         ENDSYSMENU
      else
         ENDMENU
      endif
   endif

Return oMenu

//----------------------------------------------------------------------------//

Function MyAction( oI )
     //oI:SetCheck(.T.)
     ? "Object Item: ", oI, ;
       "Position into Menu Parent: ", oI:nPos, ;
       "oItem cPrompt:", oI:cPrompt, ;
       "oItem Id: ", oI:nId, ;
       "Object Menu Parent of Item: ", oI:oMenu, ;
       "Position of Menu Parent: ", oI:oMenu:nPos
     ? "Object Menu Principal: ", Valtype( GetaMenusAux()[ 1 ] ), GetaMenusAux()[ 1 ]:lMenuBar
     ? "Items of Menu Principal: ", Len( GetaMenusAux()[ 1 ]:aMenuItems )
     ? "Menu Parent of Menu of Item Selected", GetParentAuxMenus( oI:oMenu ), ;
       "Items of this Menu: ", Len( GetParentAuxMenus( oI:oMenu ):aMenuItems ), ;
       "Separators, they are also counted"
     ? "Len Items Menu 5: ", Len( GetaMenusAux()[ 5 ]:aMenuItems )
     ? "Total Menus Create: ", Len( GetaMenusAux() )

Return nil

//----------------------------------------------------------------------------//

Function CtrlMove( oDlg )

   local oFontWD2
   local nRow      := oDlg:nBottom - 150
   local nCol      := oDlg:nRight  - 350
   local nSize     := 32
   local oSay

   @ nRow - 64, 20 GROUP TO nRow + 54, oDlg:nRight - 460 OF oDlg PIXEL PROMPT "  Notes:  "
   @ nRow - 64, oDlg:nRight - 450 GROUP TO nRow + 54, oDlg:nRight - 80 OF oDlg PIXEL PROMPT "  Menu " + Alias( 1 ) + " Changes: "
   @ nRow - 24, 80 SAY " - Press RIGHT BUTTON of Mouse for Test Menu POPUP: [ MAX -> oWnd:nRight - 400 ]" ;
      PIXEL OF oDlg COLOR CLR_WHITE, METRO_OLIVE FONT oFontMnu SIZE 550, 24
   @ nRow + 12, 80 SAY " - Press over ICON Application for Test SYSMENU" PIXEL ;
      OF oDlg COLOR CLR_WHITE, METRO_OLIVE FONT oFontMnu SIZE 550, 24
   @ nRow - 24, nCol - nSize - 24 SAY oSay PROMPT " Controls for movement: " + Alias( 1 ) PIXEL ;
      OF oDlg COLOR CLR_WHITE, METRO_OLIVE FONT oFontMnu SIZE 230, 22

   oFontWD2 := TFont():New( 'Wingdings 3', 0, -21, .f., .f., 0, 0, 400, .f., .f., .f., 2,3, 2, 1,, 18 )
   @ nRow, nCol BTNBMP PROMPT Chr( HexToDec( "72" ) ) SIZE nSize, nSize + 1 PIXEL OF oDlg FLAT  ; //BITMAP aBmp[ 1 ]
      TOOLTIP FWString( "Top" ) + " " + Alias( 1 ) FONT oFontWD2 ACTION ( ATTop() )
   @ nRow, nCol + nSize * 1 + 1 BTNBMP PROMPT Chr( HexToDec( "76" ) ) SIZE nSize, nSize + 1 PIXEL OF oDlg FLAT ;
      TOOLTIP FWString( "Move Up" ) + " " + Alias( 1 ) FONT oFontWD2  ACTION ( Retrocede() )
   @ nRow, nCol + nSize * 2 + 2 BTNBMP PROMPT Chr( HexToDec( "77" ) ) SIZE nSize, nSize + 1 PIXEL OF oDlg FLAT ;
      TOOLTIP FWString( "Move Down" ) + " " + Alias( 1 ) FONT oFontWD2  ACTION ( Avanza() )
   @ nRow, nCol + nSize * 3 + 3 BTNBMP PROMPT Chr( HexToDec( "73" ) ) SIZE nSize, nSize + 1 PIXEL OF oDlg FLAT ;
      TOOLTIP FWString( "Bottom" ) + " " + Alias( 1 ) FONT oFontWD2  ACTION ( ATBottom() )
   oFontWD2:End()
   AEval( oDlg:aControls, { |o| If( o:ClassName() == "TBTNBMP", ( o:SetColor( CLR_WHITE, METRO_OLIVE ), o:nRound := 0 ), nil ) } )
Return nil

//----------------------------------------------------------------------------//

Function Avanza( nAr )

   local nRec    := ( Alias( 1 ) )->( RecNo() )
   local nPos    := 0
   local x
   local oMnu    := GetaMenusAux()[ 2 ]
   local n
   local aItems  := {}
   DEFAULT nAr   := 1
   //? oWnd:oMenu:hMenu, Len( GetaMenusAux()[ 1 ]:aMenuItems ), GetaMenusAux()[ 2 ]:aMenuItems[ 4 ]:cPrompt
   //? GetaMenusAux()[ 1 ]:aMenuItems[ 1 ]:bAction:hMenu, oMnu:hMenu
   if !Empty( oMnu )
      if oMnu:nLimit > 0
         ( Alias( nAr ) )->( DbGoTo( ( oMnu:nLimit * oMnu:nPage ) + 1 ) )
         if ( Alias( nAr ) )->( !Eof() )
            oMnu:nPage++
            aItems   := oMnu:aMenuItems
            x        := 0
            Do While ( Alias( nAr ) )->( !Eof() )
                x++
                if x > oMnu:nLimit
                   Exit
                endif
                For n = 1 to Len( oMnu:aCols )
                   aItems[ x +  ( 2 * n ) + oMnu:nLimit * ( n - 1 ) ]:SetPrompt( ( Alias( nAr ) )->( FieldGet( oMnu:aCols[ n ] ) ) )
                Next n
                ( Alias( nAr ) )->( DbSkip() )
            Enddo
         endif
      endif
   endif
   ( Alias( nAr ) )->( DbGoTo( nRec ) )

Return nil

//----------------------------------------------------------------------------//

Function Retrocede( nAr )

   local nRec    := ( Alias( 1 ) )->( RecNo() )
   local nPos    := 0
   local x
   local oMnu    := GetaMenusAux()[ 2 ]
   local n
   local aItems  := {}
   DEFAULT nAr   := 1
   if !Empty( oMnu )
      if oMnu:nLimit > 0
         ( Alias( nAr ) )->( DbGoTo( ( oMnu:nLimit * ( oMnu:nPage - 2 ) ) + 1 ) )
         if ( Alias( nAr ) )->( !Bof() )
            oMnu:nPage--
            aItems   := oMnu:aMenuItems
            x        := 0
            Do While ( Alias( nAr ) )->( !Bof() )
                x++
                if x > oMnu:nLimit
                   Exit
                endif
                For n = 1 to Len( oMnu:aCols )
                   aItems[ x +  ( 2 * n ) + oMnu:nLimit * ( n - 1 ) ]:SetPrompt( ( Alias( nAr ) )->( FieldGet( oMnu:aCols[ n ] ) ) )
                Next n
                ( Alias( nAr ) )->( DbSkip( 1 ) )
            Enddo
         endif
      endif
   endif
   ( Alias( nAr ) )->( DbGoTo( nRec ) )   

Return nil

//----------------------------------------------------------------------------//

Function ATTop( nAr )

   local nRec    := ( Alias( 1 ) )->( RecNo() )
   local nPos    := 0
   local x
   local oMnu    := GetaMenusAux()[ 2 ]
   local n
   local aItems  := {}
   DEFAULT nAr   := 1
   if !Empty( oMnu )
      if oMnu:nLimit > 0
         ( Alias( nAr ) )->( DbGoTop() )
         if ( Alias( nAr ) )->( !Eof() )
            oMnu:nPage := 1
            aItems   := oMnu:aMenuItems
            x        := 0
            Do While ( Alias( nAr ) )->( !Eof() )
                x++
                if x > oMnu:nLimit
                   Exit
                endif
                For n = 1 to Len( oMnu:aCols )
                   aItems[ x +  ( 2 * n ) + oMnu:nLimit * ( n - 1 ) ]:SetPrompt( ( Alias( nAr ) )->( FieldGet( oMnu:aCols[ n ] ) ) )
                Next n
                ( Alias( nAr ) )->( DbSkip() )
            Enddo
         endif
      endif
   endif
   ( Alias( nAr ) )->( DbGoTo( nRec ) )

Return nil

//----------------------------------------------------------------------------//

Function ATBottom( nAr )

   local nRec    := ( Alias( 1 ) )->( RecNo() )
   local nPos    := 0
   local x
   local oMnu    := GetaMenusAux()[ 2 ]
   local n
   local aItems  := {}
   DEFAULT nAr   := 1
   if !Empty( oMnu )
      if oMnu:nLimit > 0
         ( Alias( nAr ) )->( DbGoTo( ( Alias( 1 ) )->( LastRec() ) - oMnu:nLimit + 1 ) )
         if ( Alias( nAr ) )->( !Eof() )
            oMnu:nPage := if( ( ( Alias( nAr ) )->( LastRec() ) % oMnu:nLimit ) = 0, ;
                              ( ( Alias( nAr ) )->( LastRec() ) / oMnu:nLimit ), ;
                              Int( ( Alias( nAr ) )->( LastRec() ) / oMnu:nLimit ) + 1 )
            aItems   := oMnu:aMenuItems
            x        := 0
            Do While ( Alias( nAr ) )->( !Eof() )
                x++
                if x > oMnu:nLimit
                   Exit
                endif
                For n = 1 to Len( oMnu:aCols )
                   aItems[ x +  ( 2 * n ) + oMnu:nLimit * ( n - 1 ) ]:SetPrompt( ( Alias( nAr ) )->( FieldGet( oMnu:aCols[ n ] ) ) )
                Next n
                ( Alias( nAr ) )->( DbSkip() )
            Enddo
         endif
      endif
   endif
   ( Alias( nAr ) )->( DbGoTo( nRec ) )

Return nil

//----------------------------------------------------------------------------//

]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277129#p277129 Wed, 22 Jan 2025 10:53:21 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277129#p277129
<![CDATA[FiveWin for Harbour/xHarbour :: Re: multi-column popup menu :: Reply by Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277146#p277146

Code: Select all | Expand

fld:={1,2}

  MENU oPop POPUP 2015  COLUMNS fld ;
    MENUITEM oCl  PROMPT {"one", "two"}
  ENDMENU
Thanks for your help. I tried to make a simple example. Everything works, but the menu has only 1 column that shows the glued values “one ‘+’two” What am I doing wrong?]]>
no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277146#p277146 Thu, 23 Jan 2025 01:26:22 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277146#p277146
<![CDATA[FiveWin for Harbour/xHarbour :: Re: multi-column popup menu :: Reply by Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277161#p277161 no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277161#p277161 Thu, 23 Jan 2025 11:39:11 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277161#p277161 <![CDATA[FiveWin for Harbour/xHarbour :: Re: multi-column popup menu :: Reply by Ariel]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277168#p277168 no_email@example.com (Ariel) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277168#p277168 Thu, 23 Jan 2025 14:31:27 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277168#p277168 <![CDATA[FiveWin for Harbour/xHarbour :: Re: multi-column popup menu :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277171#p277171
Natter wrote: Thu Jan 23, 2025 6:39 pm The array works fine. Why do some kind of initial column and separator between the columns appear ? Is it possible to get rid of them ?
Please run this sample and tell me your opinion

Code: Select all | Expand

//----------------------------------------------------------------------------//
#include "Fivewin.ch"
//----------------------------------------------------------------------------//

Function Main()

   local oWnd

   DEFINE WINDOW oWnd TITLE "Test Menu MultiColumn: " ;
      FROM 20, 40 TO 650, 1200 PIXEL

   oWnd:bRClicked  := { | nR, nC | MyPopMnu( oWnd, nR, nC ) }

   ACTIVATE WINDOW oWnd

Return nil

//----------------------------------------------------------------------------//

Function MyPopMnu( oWnd, nR, nC )

   local oPop

   MENU oPop POPUP 2015
      MENUITEM "Array" 
      MENU SELECT { { "one1", "two1" }, { "one2", "two2" } }  COLUMNS 1, 2 HEADERS "Col-1", "Col-2"
      ENDMENU
   ENDMENU
   ACTIVATE MENU oPop  AT nR, nC OF oWnd

Return oPop

//----------------------------------------------------------------------------//

]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277171#p277171 Thu, 23 Jan 2025 18:33:47 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277171#p277171
<![CDATA[FiveWin for Harbour/xHarbour :: Re: multi-column popup menu :: Reply by Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277173#p277173 no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277173#p277173 Fri, 24 Jan 2025 02:23:48 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277173#p277173 <![CDATA[FiveWin for Harbour/xHarbour :: Re: multi-column popup menu :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277191#p277191
Image]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277191#p277191 Fri, 24 Jan 2025 16:56:50 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277191#p277191
<![CDATA[FiveWin for Harbour/xHarbour :: Re: multi-column popup menu :: Reply by Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277193#p277193
https://cloud.mail.ru/public/jnLg/3ETyhvUcV]]>
no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277193#p277193 Sat, 25 Jan 2025 02:08:53 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277193#p277193
<![CDATA[FiveWin for Harbour/xHarbour :: Re: multi-column popup menu :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277217#p277217
Natter wrote: Sat Jan 25, 2025 9:08 am Strange, I compiled your example exactly. The result looks like this

https://cloud.mail.ru/public/jnLg/3ETyhvUcV
Ah!, ok,
Please, edit PDMENU.PRG ( source/classes ) and search HSYSBITMAP
Copy line and remove HSYSBITMAP <n>
Add new PDMENU.PRG in your project]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277217#p277217 Sun, 26 Jan 2025 14:05:49 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277217#p277217
<![CDATA[FiveWin for Harbour/xHarbour :: Re: multi-column popup menu :: Reply by Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277219#p277219 no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277219#p277219 Mon, 27 Jan 2025 01:00:38 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277219#p277219 <![CDATA[FiveWin for Harbour/xHarbour :: Re: multi-column popup menu :: Reply by cnavarro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277232#p277232
Natter wrote: Mon Jan 27, 2025 8:00 am It works, thanks ! Is it possible to specify a vertical separator between columns ?
Try with this sample and change colors

Code: Select all | Expand

//----------------------------------------------------------------------------//
#include "Fivewin.ch"
//----------------------------------------------------------------------------//

Static oFontMnu

Function Main()

   local oWnd

   DEFINE FONT oFontMnu NAME "Segoe UI Symbol" SIZE 0, -14

   DEFINE WINDOW oWnd TITLE "Test Menu MultiColumn: " ; // MENU MenuDatabase() ;
      FROM 20, 40 TO 650, 1200 PIXEL

   oWnd:bRClicked  := { | nR, nC | MyPopMnu( oWnd, nR, nC ) }

   ACTIVATE WINDOW oWnd // ON INIT MenuDatabase( .F., .T., , ) MAXIMIZED

Return nil

//----------------------------------------------------------------------------//

Function MyPopMnu( oWnd, nR, nC )

   local oPop
   // local fld := { 1, 2 }

   MENU oPop 2013 POPUP FONT oFontMnu ;
         COLORMENU METRO_STEEL, CLR_WHITE ;
         COLORLEFT CLR_WHITE, METRO_STEEL ;
         COLORRIGHT CLR_WHITE, METRO_STEEL ;
         COLORSELECT CLR_WHITE, CLR_WHITE, CLR_BLUE ;
         COLORSEPARATOR CLR_RED ;
         COLORBOX CLR_WHITE

   // MENU oPop POPUP 2015   //;       COLUMNS fld 
      MENUITEM "Array"   // oCl // PROMPT {"one", "two"}
      MENU SELECT { { "one1", "two1" }, { "one2", "two2" } }  COLUMNS 2, 1 HEADERS "Col-1", "Col-2"
      ENDMENU
   ENDMENU
   ACTIVATE MENU oPop  AT nR, nC OF oWnd

Return oPop

//----------------------------------------------------------------------------//

]]>
no_email@example.com (cnavarro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277232#p277232 Mon, 27 Jan 2025 15:58:21 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45334&p=277232#p277232
<![CDATA[FiveWin for Harbour/xHarbour :: xbrowse, dbf and codeblock :: Author JoséQuintas]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277139#p277139 Image

Using DBF.
When define a codeblock for skip, xbrowse update fail.

Code: Select all | Expand

   @ 70, 10 XBROWSE xControl ;
      DATASOURCE Alias() ;
      SIZE nDlgWidth - 24, nDlgHeight - 100 PIXEL ;
      OF xDlg ;
      ON DBLCLICK ( (nRow), (nCol), (nFlags), FWBrowseENTER( xDlg, xControl ) )

   WITH OBJECT xControl
      :SetRdd()
      :bGoTop    := { || ( nSelect )->( FazBrowseTop() ) }
      :bGoBottom := { || ( nSelect )->( FazBrowseBottom() ) }
      :bSkip     := { | n | ( nSelect )->( FazBrowseSkip( n ) ) }
      //:bBof      := { || Bof() }
      //:bEof      := { || Eof() }
      //:bBookMark := { | n | iif( n == nil, RecNo(), DbGoto( n ) ) }
   ENDWITH
   ...
   STATIC FUNCTION FazBrowseSkip( nSkip )

   LOCAL nSkipped := 0

   IF Empty( nSkip  )
      RETURN 0
   ENDIF
   IF nSkip > 0
      DO WHILE nSkipped < nSkip
         SKIP
         IF Eof()
            SKIP -1
            EXIT
         ENDIF
         nSkipped++
      ENDDO
   ELSE
      DO WHILE nSkipped > nSkip
         SKIP -1
         IF Bof()
            SKIP
            EXIT
         ENDIF
         nSkipped--
      ENDDO
   ENDIF

   RETURN nSkipped
   
]]>
no_email@example.com (JoséQuintas) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277139#p277139 Wed, 22 Jan 2025 18:49:59 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277139#p277139
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xbrowse, dbf and codeblock :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277140#p277140

Code: Select all | Expand

   @ 70, 10 XBROWSE xControl ;
      DATASOURCE Alias() ;
      SIZE nDlgWidth - 24, nDlgHeight - 100 PIXEL ;
      OF xDlg ;
      ON DBLCLICK ( (nRow), (nCol), (nFlags), FWBrowseENTER( xDlg, xControl ) )
XBrowse automatically generates all navigation codeblocks internally and correctly for all known datasources like arrays, hashes, dbf, ado-recordsets and all other known classes.

Please do not write our own navigation codeblocks.

Also, another small note:

Code: Select all | Expand

      SIZE nDlgWidth - 24, nDlgHeight - 100 PIXEL ;
You can simply write

Code: Select all | Expand

 SIZE -24,-100 PIXEL
This works even when the dialog is resized

Finally, end with

Code: Select all | Expand

xControl:CreateFromCode()
]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277140#p277140 Wed, 22 Jan 2025 22:32:54 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277140#p277140
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xbrowse, dbf and codeblock :: Reply by JoséQuintas]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277147#p277147
nageswaragunupudi wrote: Thu Jan 23, 2025 5:32 am XBrowse automatically generates all navigation codeblocks internally and correctly for all known datasources like arrays, hashes, dbf, ado-recordsets and all other known classes.
Please do not write our own navigation codeblocks.
Yes, for a standard navigation.
What to do when I need a not default navigation for dbf?
I think codeblocks are available on xbrowse to do things like this, in same way as harbour tbrowse.
Am I wrong ?]]>
no_email@example.com (JoséQuintas) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277147#p277147 Thu, 23 Jan 2025 05:28:06 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277147#p277147
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xbrowse, dbf and codeblock :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277149#p277149

Code: Select all | Expand

::bGoTop    := {|| ( ::cAlias )->( DbGoTop() ) }
::bGoBottom := {|| ( ::cAlias )->( DbGoBottom() ) }
::bSkip     := {| n | ( ::cAlias )->( DbSkipper( IfNil( n, 1 ) ) ) }
::bBof      := {|| ( ::cAlias )->( Bof() ) }
::bEof      := {|| ( ::cAlias )->( Eof() ) }
::bBookMark := {| n | iif( n == nil
                          ( ::cAlias )->( RecNo() )
                          ( ::cAlias )->( DbGoto( n );
                         ) ) }

::bKeyNo    := {| n | iif( n == nil
                         ( ::cAlias )->( OrdKeyNo() )
                         ( ::cAlias )->( OrdKeyGoto( n );
                         ) ) }
::bKeyCount := {|| ( ::cAlias )->( If( eof() .and. bof(), 0, OrdKeyCount() ) ) }
Note: There are minor variations for SQLRDD, ADS, Large DBFCDX

If we need a different navigational behavior, we need to change these codeblocks consistent with each other.]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277149#p277149 Thu, 23 Jan 2025 06:25:16 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277149#p277149
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xbrowse, dbf and codeblock :: Reply by JoséQuintas]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277154#p277154

Code: Select all | Expand

   WITH OBJECT xControl
      :SetRdd()
      :bGoTop    := {|| ( :cAlias )->( DbGoTop() ) }
      :bGoBottom := {|| ( :cAlias )->( DbGoBottom() ) }
      :bSkip     := {| n | ( :cAlias )->( DbSkipper( IfNil( n, 1 ) ) ) }
      :bBof      := {|| ( :cAlias )->( Bof() ) }
      :bEof      := {|| ( :cAlias )->( Eof() ) }
      :bBookMark := {| n | iif( n == nil,;
         ( :cAlias )->( RecNo() ),;
         ( :cAlias )->( DbGoto( n );
         ) ) }

      //:bGoTop    := { || ( nSelect )->( FazBrowseTop() ) }
      //:bGoBottom := { || ( nSelect )->( FazBrowseBottom() ) }
      //:bSkip     := { | n | ( nSelect )->( FazBrowseSkip( n ) ) }
      //:bBof      := { || Bof() }
      //:bEof      := { || Eof() }
      //:bBookMark := { | n | iif( n == nil, RecNo(), DbGoto( n ) ) }
   ENDWITH
   
With same codeblocks, it is expected same result.

Will test again, may be harbour behaviour about WITH OBJECT construction/execution
I discover about this some months ago, after began to use fivewin.]]>
no_email@example.com (JoséQuintas) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277154#p277154 Thu, 23 Jan 2025 07:17:17 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277154#p277154
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xbrowse, dbf and codeblock :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277155#p277155 The codeblock bSkip uses the function:
nSkipped := DbSkipper( nRecs ) // xHarbour
nSkipped := __DbSkipper( nRecs ) // Harbour

The functionality is similar to this function

Code: Select all | Expand

function MyDbfSkipper( nRecs )

   local nKeyFrom := OrdKeyNo()
   
   DBSKIP( nRecs )
   if Eof()
      DbGoBottom()
   elseif Bof(
      DbGoTop()
   endif
   
return OrdKeyNo() - nKeyFrom
]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277155#p277155 Thu, 23 Jan 2025 07:25:25 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277155#p277155
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xbrowse, dbf and codeblock :: Reply by JoséQuintas]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277158#p277158 It is it !
Harbour behaviour using WITH OBJECT !
Check this code:

Code: Select all | Expand

#include "hbclass.ch"

PROCEDURE Main()

   LOCAL a, b, x

   SetMode(30,100)
   CLS

   a := AnyClass():New()
   b := AnyClass():New()

   WITH OBJECT a
      :Value := 10
      x := { || :Value } // created here, seems a:Value
   ENDWITH
   WITH OBJECT b
      ? a:Value
      ? b:Value
      ? eval( x ) // executed here, results b:Value
   ENDWITH
   Inkey(0)

   RETURN

CREATE CLASS AnyClass

   VAR Value INIT 0

   ENDCLASS
seems that result will be 10, 10, 0
but result is 10, 0, 0

x is created inside WITH a, but do not have defined object, it is not a:value
when used inside WITH b, x return b:value not a:value
The same occurs when define codeblocks for xbrowse.

Solution is to use full name.
WITH OBJECT need caution when creating codeblock.
I forgot about this.

This works ok, with full name.

Code: Select all | Expand


   WITH OBJECT xControl
      xControl:SetRdd()
      xControl:bGoTop    := {|| ( xControl:cAlias )->( DbGoTop() ) }
      xControl:bGoBottom := {|| ( xControl:cAlias )->( DbGoBottom() ) }
      xControl:bSkip     := {| n | ( xControl:cAlias )->( DbSkipper( IfNil( n, 1 ) ) ) }
      xControl:bBof      := {|| ( xControl:cAlias )->( Bof() ) }
      xControl:bEof      := {|| ( xControl:cAlias )->( Eof() ) }
      xControl:bBookMark := {| n | iif( n == nil,;
         ( xControl:cAlias )->( RecNo() ),;
         ( xControl:cAlias )->( DbGoto( n );
         ) ) }
]]>
no_email@example.com (JoséQuintas) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277158#p277158 Thu, 23 Jan 2025 07:42:04 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277158#p277158
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xbrowse, dbf and codeblock :: Reply by JoséQuintas]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277160#p277160
May be this expains why a external database works, and internal may not.
As example using mysql.

Internal

Code: Select all | Expand

WITH OBJECT xbrowse
   :bGoTop := { || :Rs:MoveFirst() } // may use wrong object, anything:Rs:MoveFirst()
ENDWITH   
External

Code: Select all | Expand

WITH OBJECT xBrowse
   :bGoTop := RS:MoveNext() // use right object, RS
ENDWITH
I had same problem using ADO, but I forgot about this.
Not easy to remember issues on not common situations.
May be interesting to include about this on documentation of xbrowse, and on source code too.

Code: Select all | Expand

   // Code-blocks for navitation
   // Caution: Use allways full name for codeblocks, WITH OBJECT may fail

   DATA bGoTop,;     // codeblock for going to first row
        bGoBottom,;  // codeblock for going to last row
        bSkip,;      // codeblock for skiping rows, it receives the number of rows
]]>
no_email@example.com (JoséQuintas) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277160#p277160 Thu, 23 Jan 2025 08:32:01 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277160#p277160
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xbrowse, dbf and codeblock :: Reply by JoséQuintas]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277180#p277180

Code: Select all | Expand

      xControl:bSkip     := {| n | ( xControl:cAlias )->( DbSkipper( IfNil( n, 1 ) ) ) }
Xbrowse requires to skip NIL records.
When xbrowse requires NIL records, it is needed to change to 1.

Code: Select all | Expand

METHOD Skip( n ) CLASS TXBrowse

   local nStart
   local nSkipped := 0

   if !::lClosed
      TRY
         if Empty( ::aFilter )
            nSkipped := Eval( ::bSkip, n, Self )
         else
            nStart      := ::nFltRow
            ::GoFltRow( ::nFltRow + IfNil( n, 1 ) )
            nSkipped    := ::nFltRow - nStart
         endif
      CATCH
         ::nLen      := 0
         ::lClosed   := .t.
      END
   endif

return nSkipped
Looking to method skip, one more test about Nil

Could be changed to

Code: Select all | Expand

hb_Default( @n, 1 )
If needed for xharbour:

Code: Select all | Expand

FUNCTION hb_Default( a, b )
   IF valType( a ) != ValType( b )
       a := b
     ENDIF
     RETURN Nil
New source

Code: Select all | Expand

METHOD Skip( n ) CLASS TXBrowse

   local nStart
   local nSkipped := 0

   if !::lClosed
      TRY
         hb_Default( @n, 1 )
         if Empty( ::aFilter )
            nSkipped := Eval( ::bSkip, n, Self )
         else
            nStart      := ::nFltRow
            ::GoFltRow( ::nFltRow + n )
            nSkipped    := ::nFltRow - nStart
         endif
      CATCH
         ::nLen      := 0
         ::lClosed   := .t.
      END
   endif

return nSkipped
Not sure if it is needed the TRY/CATCH.
This is the reason why we see xbrowse fail, but do not know that anything is wrong on bSkip codeblock. (as example the Nil)]]>
no_email@example.com (JoséQuintas) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277180#p277180 Fri, 24 Jan 2025 05:44:29 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277180#p277180
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xbrowse, dbf and codeblock :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277192#p277192
1)
seems that result will be 10, 10, 0
but result is 10, 0, 0
Looking at the code, any programmer should expect the result to be 10,0,0 and in fact the result is 10,0,0.

2)
WITH OBJECT xbrowse
:bGoTop := { || :Rs:MoveFirst() } // may use wrong object, anything:Rs:MoveFirst()
ENDWITH
Please check again. XBrowse program does not have any such defective code.

In contrast,

Code: Select all | Expand

::bGoTop := { || ::oRs:MoveFirst() }
This works perfectly.

Not only XBrowse, there is no module in FWH using such defective code.

3)
May be interesting to include about this on documentation of xbrowse, and on source code too.
// Code-blocks for navitation
// Caution: Use allways full name for codeblocks, WITH OBJECT may fail[/quote]

This is nothing specific to xBrowse or Fivewin. This is what every (x)Harbour programmer is expected to know.

4)
This is the reason why we see xbrowse fail, but do not know that anything is wrong on bSkip codeblock. (as example the Nil)
XBrowse never fails on Skip().
We do not expect any programmer to use non numeric values.

5)
We appreciate that a function like hb_default is safer than IfNil.

6)
we see xbrowse fail
To the best of our knowledge and experience, xbrowse never fails on such issues.
If you find that XBrowse is failing at times, you may like to help FWH and our community by providing a sample program to demonstrate such a failure.

Thanks again for your interest and time to help improve xbrowse.]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277192#p277192 Fri, 24 Jan 2025 19:13:14 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277192#p277192
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xbrowse, dbf and codeblock :: Reply by JoséQuintas]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277258#p277258
nageswaragunupudi wrote: Sat Jan 25, 2025 2:13 am Please check again. XBrowse program does not have any such defective code.
That was only a sample about harbour behaviour, comparing internal and external use.

Code: Select all | Expand

WITH OBJECT xBrowse
   :bGoTop := { || :oRs:MoveFirst() } // internal may fail, not defined main object on codeblock
   :bGoTop := { || xBrowse:oRs:MoveFirst() } // internal ok, main object on codeblock is defined
   :bGoTop := { || oRs:MoveFirst() } // external ok, main object on codeblock is defined
ENDWITH
]]>
no_email@example.com (JoséQuintas) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277258#p277258 Tue, 28 Jan 2025 15:44:14 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45336&p=277258#p277258
<![CDATA[FiveWin for Harbour/xHarbour :: Determine lengt in Pixel of cVar :: Author Marc Venken]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45354&p=277266#p277266
Can't find the code in the current forumData. Anyone has it ?]]>
no_email@example.com (Marc Venken) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45354&p=277266#p277266 Wed, 29 Jan 2025 01:24:27 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45354&p=277266#p277266
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Determine lengt in Pixel of cVar :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45354&p=277269#p277269

Code: Select all | Expand

? oBtn:GetWidth( cText, [oFont] )
 ? oDlg:GetWidth( cText, [oFont] )
]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45354&p=277269#p277269 Wed, 29 Jan 2025 02:49:09 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45354&p=277269#p277269
<![CDATA[FiveWin for Harbour/xHarbour :: Re: new Class TDeepSeek in next FWH 24.12 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277102#p277102 DeepSeek R1

To use it from FWH Class TDeepSeek we have to specify model="deepseek-reasoner"

By default we are using

DATA cModel INIT "deepseek-chat"

so in order to use it we have to change this:

DATA cModel INIT "deepseek-reasoner"

Prices: (the cheapest of all and the best AI)
💰 $0.14 / million input tokens (cache hit)
💰 $0.55 / million input tokens (cache miss)
💰 $2.19 / million output tokens]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277102#p277102 Tue, 21 Jan 2025 13:19:38 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277102#p277102
<![CDATA[FiveWin for Harbour/xHarbour :: Re: new Class TDeepSeek in next FWH 24.12 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277128#p277128 https://platform.deepseek.com/ to pay five USD using PayPal]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277128#p277128 Wed, 22 Jan 2025 10:40:11 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277128#p277128 <![CDATA[FiveWin for Harbour/xHarbour :: Re: new Class TDeepSeek in next FWH 24.12 :: Reply by Jimmy]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277224#p277224
Antonio Linares wrote: Wed Jan 22, 2025 5:40 pm https://platform.deepseek.com/ to pay five USD using PayPal
NOT FOUND 404
use this instead
https://www.deepseek.com/]]>
no_email@example.com (Jimmy) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277224#p277224 Mon, 27 Jan 2025 06:22:40 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277224#p277224
<![CDATA[FiveWin for Harbour/xHarbour :: Re: new Class TDeepSeek in next FWH 24.12 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277226#p277226 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277226#p277226 Mon, 27 Jan 2025 08:35:54 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277226#p277226 <![CDATA[FiveWin for Harbour/xHarbour :: Re: new Class TDeepSeek in next FWH 24.12 :: Reply by Jimmy]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277230#p277230
Antonio Linares wrote: Mon Jan 27, 2025 3:35 pm The URL I provided works fine here
i have read that DeepSeek Website was hacked so that might be the Reason why i can´t connect to the Website.]]>
no_email@example.com (Jimmy) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277230#p277230 Mon, 27 Jan 2025 15:11:05 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277230#p277230
<![CDATA[FiveWin for Harbour/xHarbour :: Re: new Class TDeepSeek in next FWH 24.12 :: Reply by TomH]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277235#p277235 Additionally, I asked it about the cause of this incident (after enabling web search), and here is the response it provided:

-----------------
Yes, according to reports from multiple media outlets, DeepSeek has recently suffered a large-scale cyber attack. Below is a summary of the relevant information:

1.Overview of the Attack
DeepSeek announced on its official service status page that its online services were subjected to a massive malicious attack, which temporarily restricted registration functionality. However, registered users can still log in normally. To mitigate the attack, DeepSeek has temporarily restricted registration methods for non-Chinese mainland phone numbers (+86).

2.Background of the Attack
The attack occurred after DeepSeek released its new AI models, Janus-Pro and JanusFlow, which demonstrated exceptional performance in multimodal understanding and generation tasks, even surpassing OpenAI's DALL-E 3 and Stable Diffusion in certain benchmark tests. The low cost and high performance of DeepSeek's models have caused significant turbulence in global tech stocks, particularly leading to a sharp decline in the stock prices of U.S. tech giants. This may be one of the motivations behind the attack.

3.Impact of the Attack
The attack caused anomalies in DeepSeek's website and API, with some users reporting issues with logging in or registering. Despite this, DeepSeek stated that it has taken measures to ensure normal usage for existing users and expressed gratitude for their understanding and support.

4.History of Security Vulnerabilities
It is worth noting that DeepSeek has previously been found to have security vulnerabilities. For example, in December 2024, researchers discovered a prompt injection vulnerability in DeepSeek's chatbot, which could potentially lead to user account takeovers. However, this vulnerability has since been patched.

In summary, DeepSeek has indeed been targeted by a large-scale cyber attack recently, but the company has taken steps to address the issue and ensure the normal operation of core services. The attack may be related to DeepSeek's rapid rise in the AI field and its impact on the global tech market.


-----------------



I also found out that DeepSeek released "Janus Pro" the day before yesterday. https://huggingface.co/deepseek-ai]]>
no_email@example.com (TomH) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277235#p277235 Mon, 27 Jan 2025 20:04:25 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277235#p277235
<![CDATA[FiveWin for Harbour/xHarbour :: Re: new Class TDeepSeek in next FWH 24.12 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277239#p277239 ]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277239#p277239 Mon, 27 Jan 2025 23:57:21 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277239#p277239 <![CDATA[FiveWin for Harbour/xHarbour :: Re: new Class TDeepSeek in next FWH 24.12 :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277245#p277245 The whole world is in great excitement. Some stocks lose 18% of their value overnight. But our forum remains calm.
AI news cannot shake us.

Best regards,
Otto]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277245#p277245 Tue, 28 Jan 2025 09:39:10 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277245#p277245
<![CDATA[FiveWin for Harbour/xHarbour :: Re: new Class TDeepSeek in next FWH 24.12 :: Reply by TimStone]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277259#p277259
We remain calm because we use tools, and the stock market will not be of concern to us. The company can continue to function well even if investors are afraid they will not get their payouts. We care about the developers not the guys sitting on computers all day playing games with stocks.]]>
no_email@example.com (TimStone) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277259#p277259 Tue, 28 Jan 2025 16:54:49 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277259#p277259
<![CDATA[FiveWin for Harbour/xHarbour :: Re: new Class TDeepSeek in next FWH 24.12 :: Reply by Compuin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277275#p277275
Antonio Linares wrote: Tue Jan 28, 2025 6:57 am We are going to enhance FWH Class TDeepSeek to be able to use "Janus Pro" :)
Hello Master,

What is "Janus Pro" ?]]>
no_email@example.com (Compuin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277275#p277275 Wed, 29 Jan 2025 09:18:10 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277275#p277275
<![CDATA[FiveWin for Harbour/xHarbour :: Re: new Class TDeepSeek in next FWH 24.12 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277277#p277277
A new multimodal AI model from DeepSeek

This means that it is able to process text and also images! :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277277#p277277 Wed, 29 Jan 2025 09:25:42 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277277#p277277
<![CDATA[FiveWin for Harbour/xHarbour :: Re: new Class TDeepSeek in next FWH 24.12 :: Reply by Compuin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277278#p277278 no_email@example.com (Compuin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277278#p277278 Wed, 29 Jan 2025 09:26:55 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45297&p=277278#p277278 <![CDATA[FiveWin for Harbour/xHarbour :: MsgInfo() doubt :: Author wartiaga]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45350&p=277229#p277229 Is there any way to center the text in the following msginfo(),msgyesno(),msgAlert() functions? delimit the size of the first line and center the rest on the second line?

Thanks in advance.]]>
no_email@example.com (wartiaga) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45350&p=277229#p277229 Mon, 27 Jan 2025 11:49:12 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45350&p=277229#p277229
<![CDATA[FiveWin for Harbour/xHarbour :: Re: MsgInfo() doubt :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45350&p=277237#p277237
If we want a different appearance, we need to write our own functions.]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45350&p=277237#p277237 Mon, 27 Jan 2025 21:49:23 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45350&p=277237#p277237
<![CDATA[FiveWin for Harbour/xHarbour :: Re: MsgInfo() doubt :: Reply by wartiaga]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45350&p=277260#p277260
nageswaragunupudi wrote: Tue Jan 28, 2025 4:49 am All Msg.... () functions (eg. MsgInfo(), MsgYesNo(), ... etc) display the messages using Windows API function MessageBoxEx(...) and the display is by Windows OS and we have no control on that.

If we want a different appearance, we need to write our own functions.
Ok, thank you Mr. Nages!]]>
no_email@example.com (wartiaga) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45350&p=277260#p277260 Tue, 28 Jan 2025 18:07:09 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45350&p=277260#p277260
<![CDATA[FiveWin for Harbour/xHarbour :: Re: MsgInfo() doubt :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45350&p=277263#p277263
viewtopic.php?p=266623&hilit=I+use+a+di ... le#p266623]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45350&p=277263#p277263 Tue, 28 Jan 2025 23:53:00 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45350&p=277263#p277263
<![CDATA[FiveWin for Harbour/xHarbour :: Re: MsgInfo() doubt :: Reply by wartiaga]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45350&p=277281#p277281
Otto wrote: Wed Jan 29, 2025 6:53 am I posted my metromsginfo() here:

viewtopic.php?p=266623&hilit=I+use+a+di ... le#p266623
Thank You Otto!]]>
no_email@example.com (wartiaga) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45350&p=277281#p277281 Wed, 29 Jan 2025 11:14:49 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45350&p=277281#p277281
<![CDATA[FiveWin for Harbour/xHarbour :: Tbtnbmp Clck :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277270#p277270 no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277270#p277270 Wed, 29 Jan 2025 03:29:09 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277270#p277270 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Tbtnbmp Clck :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277271#p277271 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277271#p277271 Wed, 29 Jan 2025 04:27:48 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277271#p277271 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Tbtnbmp Clck :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277273#p277273 no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277273#p277273 Wed, 29 Jan 2025 05:02:48 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277273#p277273 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Tbtnbmp Clck :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277279#p277279 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277279#p277279 Wed, 29 Jan 2025 09:27:11 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277279#p277279 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Tbtnbmp Clck :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277283#p277283
Antonio Linares wrote: Wed Jan 29, 2025 4:27 pm Then you may need to modify the Class source code, or dinamically modify the Method LButtonDown()
I tried this afternoon and I not found a solution]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277283#p277283 Wed, 29 Jan 2025 12:08:28 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277283#p277283
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Tbtnbmp Clck :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277286#p277286
1 means the Windows message has been processed and no further action should be taken

0 means that you require standard Windows behavior]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277286#p277286 Wed, 29 Jan 2025 12:35:53 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277286#p277286
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Tbtnbmp Clck :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277293#p277293
on method Lbuttondown I rem

::refresh()

on cicle conditional

if GetFocus() == ::hWnd

it seem run ok now

only now the problem is when I over th emouse into a btnbmp it change the size and it seem bad to see it]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277293#p277293 Thu, 30 Jan 2025 01:06:36 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45355&p=277293#p277293
<![CDATA[FiveWin for Harbour/xHarbour :: xBrowse record selector color :: Author Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45357&p=277299#p277299
Is it possible to change the record selector color for the current row (i.e. use :nResSelColor as a code block) ?]]>
no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45357&p=277299#p277299 Thu, 30 Jan 2025 09:32:37 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45357&p=277299#p277299
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xBrowse record selector color :: Reply by Iris Gesser]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45357&p=277323#p277323
I am not sure if this is what you need.
Mr. Rao once helped me with the colors in xbrowse.

Code: Select all | Expand

  Function MyColors( oBrw )
        local aColors := { , }

       If (cust->resstatus = "###Cancelled" .and. cust->BOOKINGOK = " ")
           aColors := { CLR_BLACK, CLR_STORNO }
       else
          if ((cust->resstatus = "Waitlisted" .or. cust->resstatus = "Reserved"  ).and. cust->BOOKINGOK = " ")
              aColors := {CLR_BLACK,  CLR_BUCHUNG}    
          else
             aColors  := { CLR_BLACK,CLR_WHITE }
       	  endif
       endif

   Return aColors

//-----------------------
  Function MyColors_Focus( oBrw )
        local aColors := { , }
	
				
       If (cust->resstatus = "###Cancelled" .and. cust->BOOKINGOK = " ")
           aColors := { CLR_WHITE, CLR_STORNO_FOKUS }
       else
          if ((cust->resstatus = "Waitlisted" .or. cust->resstatus = "Reserved"  ).and. cust->BOOKINGOK = " ")
              aColors := {CLR_WHITE,  CLR_BUCHUNG_FOKUS}    
          else
             aColors  := { CLR_BLACK,CLR_WHITE }
        endif
       endif
    Return aColors
and then this for xbrowse

Code: Select all | Expand

   WITH OBJECT oBrw
      :MakeTotals()
      :lFooter          := .T.
      :l2007            := .f.
      :lRecordSelector  := .F.
      :nMarqueeStyle    := MARQSTYLE_HIGHLROW
      :bClrStd          :=  { || MyColors( oBrw ) } 			//{ || { CLR_GREEN,  CLR_WHITE } }
      :bClrSelFocus     :=  { || MyColors_Focus( oBrw ) }	//{ CLR_WHITE, RGB( 0x33, 0x66, 0xCC ) } }
      :bClrSel          :=  { || MyColors_Focus( oBrw ) }	//{ CLR_WHITE, RGB( 0x33, 0x66, 0xCC ) } }
      :SetColor( CLR_BLUE, CLR_WHITE)		//@IA 20200819
      :nRowHeight       := 80
     // :oFont						:= oFntFocus
      
    
      :CreateFromCode()
   END
//------------
Kind regards
Iris]]>
no_email@example.com (Iris Gesser) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45357&p=277323#p277323 Thu, 30 Jan 2025 15:28:40 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45357&p=277323#p277323
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xBrowse record selector color :: Reply by Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45357&p=277331#p277331 I was interested in coloring the pseudo column RecordSelector.]]> no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45357&p=277331#p277331 Fri, 31 Jan 2025 00:42:52 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45357&p=277331#p277331 <![CDATA[FiveWin for Harbour/xHarbour :: Re: xBrowse record selector color :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45357&p=277333#p277333 We will keep your requirement in mind and try to provide this feature soon.]]> no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45357&p=277333#p277333 Fri, 31 Jan 2025 01:32:31 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45357&p=277333#p277333 <![CDATA[FiveWin for Harbour/xHarbour :: multi dimensional array :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45364&p=277340#p277340
{"Campo1",.t.,1,"nomedbf",{"test1","test2","test3"} ,0}

I wish add/edit only the subarray {"test1","test2","test3"}


but an init I have {"Campo1",.t.,1,"nomedbf",{} ,0}

and I wish edit only the sub array {} 5 field of main array]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45364&p=277340#p277340 Fri, 31 Jan 2025 07:07:59 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45364&p=277340#p277340
<![CDATA[FiveWin for Harbour/xHarbour :: Re: multi dimensional array :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45364&p=277356#p277356

Code: Select all | Expand

   local aArray := {"Campo1",.t.,1,"nomedbf",{"test1","test2","test3"} ,0}

   //
   XBROWSER aArray[ 5 ] FASTEDIT
   // or
   XBROWSER { aArray } SETUP ( oBrw:aCols[ 5 ]:nEditType := 1 )
   // or
   XBROWSER aArray FASTEDIT SETUP ( oBrw:aCols[ 1 ]:bEditWhen := { |o|o:oBrw:nArrayAt = 5 } )
]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45364&p=277356#p277356 Fri, 31 Jan 2025 18:12:01 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45364&p=277356#p277356
<![CDATA[FiveWin for Harbour/xHarbour :: Re: multi dimensional array :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45364&p=277357#p277357
nageswaragunupudi wrote: Sat Feb 01, 2025 1:12 am

Code: Select all | Expand

   local aArray := {"Campo1",.t.,1,"nomedbf",{"test1","test2","test3"} ,0}

   //
   XBROWSER aArray[ 5 ] FASTEDIT
   // or
   XBROWSER { aArray } SETUP ( oBrw:aCols[ 5 ]:nEditType := 1 )
   // or
   XBROWSER aArray FASTEDIT SETUP ( oBrw:aCols[ 1 ]:bEditWhen := { |o|o:oBrw:nArrayAt = 5 } )
Too Hard for me I must found another solution]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45364&p=277357#p277357 Sat, 01 Feb 2025 02:59:15 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45364&p=277357#p277357
<![CDATA[FiveWin for Harbour/xHarbour :: Using DeepSeek locally using Ollama :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277288#p277288

Code: Select all | Expand

// Developed by FiveTech Software, using parts by Charles OhChul

#include "FiveWin.ch"
#include "c:\harbour\contrib\hbcurl\hbcurl.ch"

//----------------------------------------------------------------------------//

CLASS TOLlama
    
   DATA   cModel
   DATA   cResponse
   DATA   cUrl
   DATA   hCurl
   DATA   nError INIT 0
   DATA   nHttpCode INIT 0

   METHOD New( cModel )
   METHOD Send( cPrompt )    
   METHOD End()    
   METHOD GetValue( cHKey )    

ENDCLASS        

//----------------------------------------------------------------------------//

METHOD New( cModel ) CLASS TOLlama

   hb_default( @cModel, "deepseek-r1:32b" )

   ::cModel = cModel
   ::cUrl = "http://localhost:11434/api/chat"
   ::hCurl = curl_easy_init()
    
return Self    

//----------------------------------------------------------------------------//

METHOD End() CLASS TOLlama

    curl_easy_cleanup( ::hCurl )
    ::hCurl = nil

return nil    

//----------------------------------------------------------------------------//

METHOD GetValue( cHKey ) CLASS TOLlama

   local uValue := hb_jsonDecode( ::cResponse )

   hb_default( @cHKey, "content" )

   if cHKey == "content"
      TRY 
         uValue = uValue[ "message" ][ "content" ]
      CATCH
         uValue = uValue[ "error" ][ "message" ]
      END   
   endif

return uValue

//----------------------------------------------------------------------------//

METHOD Send( cPrompt ) CLASS TOLlama 

   local aHeaders, cJson, hRequest := { => }, hMessage1 := { => }

   curl_easy_setopt( ::hCurl, HB_CURLOPT_POST, .T. )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_URL, ::cUrl )

   aHeaders := { "Content-Type: application/json" }

   curl_easy_setopt( ::hCurl, HB_CURLOPT_HTTPHEADER, aHeaders )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_USERNAME, '' )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_DL_BUFF_SETUP )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_SSL_VERIFYPEER, .F. )

   hRequest[ "model" ]       = ::cModel
   hMessage1[ "role" ]       = "user"
   hMessage1[ "content" ]    = cPrompt
   hRequest[ "messages" ]    = { hMessage1 }
   hRequest[ "stream" ]      = .F.
   hRequest[ "temperature" ] = 0.5

   cJson = hb_jsonEncode( hRequest )
   curl_easy_setopt( ::hCurl, HB_CURLOPT_POSTFIELDS, cJson )
   ::nError = curl_easy_perform( ::hCurl )
   curl_easy_getinfo( ::hCurl, HB_CURLINFO_RESPONSE_CODE, @::nHttpCode )

   if ::nError == HB_CURLE_OK
      ::cResponse = curl_easy_dl_buff_get( ::hCurl )
   else
      ::cResponse := "Error code " + Str( ::nError )
   endif
    
return ::cResponse

//----------------------------------------------------------------------------//
Example of use:

Code: Select all | Expand

#include "FiveWin.ch"

function Main()

    local oChat := TOLlama():New( "deepseek-r1:32b" )

    oChat:Send( "tell me the meaning of life" )
    ? oChat:GetValue()

    oChat:End()

return nil
To start Ollama local server once ollama is installed:

ollama run deepseek-r1:32b]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277288#p277288 Wed, 29 Jan 2025 15:53:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277288#p277288
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using DeepSeek locally using Ollama :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277292#p277292
' Create journal entries in the format: Account, Counteraccount, Description, Net Amount, VAT Rate

Used accounts (SKR03 as base):

1400 – Accounts receivable from goods and services (Debtor) 8400 – Sales of goods (20%/10% VAT) 4800 – VAT (20%) 2500 – Input VAT (10%) 5000 – Goods receipt (for credit notes) Positions:

Laptop Computer – 1 unit, €1273, 20% VAT Return of book “Advanced Computing” – -1 unit, €3.96, 10% VAT Book “Computing for Dummies” – 2 units, €2.48, 10% VAT Return of IBM 5150 Desktop – -1 unit, €25, 0% VAT Network cables – 250 units, €0.75, 20% VAT
If specific accounts are missing, a list of required additions should be output.'

Best regards,
Otto]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277292#p277292 Wed, 29 Jan 2025 23:38:14 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277292#p277292
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using DeepSeek locally using Ollama :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277301#p277301

Code: Select all | Expand

#include "FiveWin.ch"

function Main()

    local oChat := TOLlama():New( "deepseek-r1:32b" )
    local cPrompt

    TEXT INTO cPrompt
Create journal entries in the format: Account, Counteraccount, Description, Net Amount, VAT Rate

Used accounts (SKR03 as base):

1400 - Accounts receivable from goods and services (Debtor) 8400 - Sales of goods (20%/10% VAT) 4800 - VAT (20%) 2500 - Input VAT (10%) 5000 - Goods receipt (for credit notes) Positions:

Laptop Computer - 1 unit, €1273, 20% VAT Return of book “Advanced Computing” - -1 unit, €3.96, 10% VAT Book “Computing for Dummies” - 2 units, €2.48, 10% VAT Return of IBM 5150 Desktop - -1 unit, €25, 0% VAT Network cables - 250 units, €0.75, 20% VAT
If specific accounts are missing, a list of required additions should be output.'    
   ENDTEXT

    oChat:Send( cPrompt )
    fw_memoEdit( oChat:GetValue() )

    oChat:End()

return nil    
<think>
Alright, let's try to figure out how to create the journal entries based on the information given. So, first, I need to understand what the user is asking for. They want me to generate journal entries using specific accounts from SKR03, which is a German accounting standard.

Looking at the accounts provided:

- 1400: Accounts receivable from goods and services (Debtor)
- 8400: Sales of goods with VAT rates 20% and 10%
- 4800: VAT (20%)
- 2500: Input VAT (10%)
- 5000: Goods receipt for credit notes

And the positions listed are various items with quantities, prices, and VAT rates. So, I think these are either sales or returns that need to be recorded.

I notice that some items have negative units, which probably means they're being returned. So, a return would typically involve debiting the account for goods received (maybe 5000) and crediting accounts like 8400 for sales and 2500 for input VAT since it's a return.

For each item:

1. **Laptop Computer**: 1 unit, €1273, 20% VAT. Since the laptop is sold, we need to record this as a sale with output VAT. So, debit 1400 (Debtor) and credit 8400 (Sales). Then, since it's 20%, the output VAT would go into account 4800.

Wait, but in the example provided earlier, when items were returned, they used 5000. So maybe for sales, we don't use 5000? Or perhaps 5000 is only for credit notes. I think so because 5000 is for goods receipt on credit notes.

So, the first item is a sale, so it should be:

Debit: 1400 (Accounts Receivable)
Credit: 8400 (Sales) and 4800 (VAT Output)

2. **Return of book "Advanced Computing"**: -1 unit, €3.96, 10% VAT. This is a return, so we need to reverse the sale. So, debit 8400 and 2500 (since it's input VAT) because when you sell something with input tax, returning it would give back that input VAT.

But wait, in the initial example, they debited 5000 for goods received on a credit note. Do I need to include 5000 here? Maybe not, since this is just reversing a sale.

3. **Book "Computing for Dummies"**: 2 units, €2.48 each, so total €4.96, with 10% VAT. This is another sale, similar to the laptop but at a different VAT rate.

So, Debit: 1400
Credit: 8400 and 2500 (since it's 10% VAT).

Wait, no, because when you sell goods with input VAT, the output VAT would be in account 4800 for 20% and maybe another account for 10%. But looking back, in the given accounts, only 4800 is specified as VAT (20%), so perhaps we need a separate account for 10% output VAT. The user didn't mention it, but since they have sales with both 20% and 10%, maybe 8400 includes those or needs to split.

Wait, the given accounts are:

- 8400: Sales of goods (with 20%/10% VAT)
So, perhaps 8400 is used for both, but then we need separate VAT accounts for each rate. But in the initial list, only 4800 is a VAT account at 20%, and 2500 is input VAT at 10%. So maybe output VAT at 10% isn't specified yet.

This could be an issue because if we need to record sales with 10% VAT, but the provided accounts don't have an output VAT account for 10%, then perhaps we need to add that. But in the initial problem statement, the user said "if specific accounts are missing, a list of required additions should be output."

So, when processing each item:

- For items with 20% VAT: Use 8400 Sales, 4800 Output VAT
- For items with 10% VAT: We need an account for output VAT at 10%, but it's not provided. So, we might have to add a new account, maybe 4805 or similar.

But wait, in the initial example given by the user, they used 4800 for 20% and 2500 for input VAT on returns. So perhaps for output VAT at 10%, we need another account. Since it's not provided, maybe we should add one.

Alternatively, if all sales through 8400 have either 20% or 10% VAT, and the VAT accounts are separate, but only 4800 is given for 20%, perhaps the output VAT for 10% is in another account that's not listed yet. So, we might need to create a new account for output VAT at 10%.

But since the user said to use the provided accounts and list any missing ones, I think we should proceed with that.

So, let's outline each transaction:

1. Laptop Computer: Sold 1 unit
- Debit: 1400 (Accounts Receivable) €1273 + VAT 20% = €1527.6
Wait, no, the net amount is €1273, and VAT is calculated on top.

Wait, actually, in accounting, when recording sales with VAT, you can either record gross (including VAT) or split into net and VAT. Since the user provided accounts for both sales and VAT, it's likely that we need to split them.

So, for each sale:

- Debit: 1400 (Accounts Receivable) for the total amount including VAT.
- Credit: 8400 (Sales) for the net amount.
- Credit: VAT account for the tax amount.

But in the initial example, they didn't do that. Instead, they had separate entries for sales and VAT.

Wait, looking back at the user's example:

They showed:

- Debit: 1400
- Credit: 8400 (Sales)
- Debit/Credit: 4800

So perhaps it's better to record each sale with its net amount in 8400 and the VAT in 4800 for 20%, and another account for 10%.

But since only 4800 is given, we need to check.

Wait, let me clarify:

In SKR03, sales are usually recorded gross (including tax) in the sales account. However, sometimes it's split into net and tax.

But given that 8400 is Sales of goods with 20%/10% VAT, perhaps the sales amount is gross. So when you sell something with 20% VAT, the sales amount includes the tax. Similarly for 10%.

Wait, but in Germany, sales are usually recorded net, and then the output VAT is a separate account.

But I'm not entirely sure. Let's assume that sales are recorded net, and VAT is recorded separately.

So, for each item:

- Sales (net amount) goes to 8400
- Output VAT goes to 4800 if 20%, or perhaps another account if 10%.

But since the user only provided 4800 as VAT (20%), and 2500 as input VAT (10%), we might need an output VAT account for 10%. Let's say 4801 is needed.

So, to process each item:

Laptop Computer:
- Net sales: €1273
- Output VAT: 20% of 1273 = €254.6
- So, Debit 1400 for €1527.6 (net + VAT)
- Credit 8400 for €1273
- Credit 4800 for €254.6

But wait, if we record gross in 1400, then yes.

Alternatively, maybe we split it into two entries:

- Debit: 1400 (Accounts Receivable) €1527.6
- Credit: 8400 (Sales) €1273
- Credit: 4800 (VAT Payable) €254.6

That makes sense.

Similarly, for the item with 10% VAT:

Let's say it's another product sold with 10% VAT.

But in our case, we have a return (debit note), so perhaps that's a different scenario.

Wait, no, let me process each transaction step by step.

First, from the user's example:

They showed two entries: one for sales and one for VAT. So likely, they split the gross amount into net and tax.

So, I'll proceed with that approach.

Now, processing each item:

1. Sold Laptop Computer:
- Net amount: €1273
- VAT 20%: €254.6
- Gross amount: €1273 + €254.6 = €1527.6

So, the journal entry would be:

Debit | Credit
------|-------
1400 | 8400 (€1273)
1400 | 4800 (€254.6)

Wait, no. Typically, you wouldn't debit 1400 twice. Instead, the total amount due is €1527.6, so:

Debit: 1400 (Accounts Receivable) €1527.6
Credit: 8400 (Sales) €1273
Credit: 4800 (VAT Payable) €254.6

Yes, that's correct.

Similarly, for a return or debit note:

If it's a credit note issued to the customer, reducing accounts receivable and sales.

But in our case, perhaps we're just creating entries for each transaction as they happen.

Wait, actually, I think the user is providing an example of how to structure the journal entries, not specific transactions. So perhaps I should explain the process with an example.

In any case, moving forward, let's outline the steps:

1. Identify each sale and its VAT rate.
2. Calculate net amount and VAT amount.
3. Record the gross amount in accounts receivable (or cash if paid).
4. Credit sales for the net amount.
5. Credit VAT payable for the tax amount.

Now, considering that some items may have different VAT rates, we need separate VAT accounts or a single account with subaccounts.

But since only 4800 is given for 20%, and no output VAT account for 10%, perhaps we need to add one.

So, let's say:

- 4800: Output VAT (20%)
- 4801: Output VAT (10%)

If these are not provided, then we should list them as missing.

Therefore, when processing each item with 10% VAT, we'll need to use 4801, which is not in the initial list. So, we'll note that it's missing and needs to be added.
</think>

To create journal entries for sales transactions with different VAT rates using the provided accounts, follow these steps:

### Step-by-Step Explanation:

1. **Identify the Accounts Needed:**
- **1400:** Accounts Receivable (Debit for amounts owed by customers)
- **8400:** Sales of Goods (Credit for net sales amounts)
- **4800:** Output VAT (20%) (Credit for VAT on 20% rate sales)
- **Missing Account Needed:**
- **4801:** Output VAT (10%) (Credit for VAT on 10% rate sales)

2. **Calculate Net and VAT Amounts:**
For each sale, determine the net amount and the VAT based on the applicable rate.

3. **Record Journal Entries:**
Post entries to reflect the gross amount in Accounts Receivable, net sales in Sales of Goods, and VAT in respective Output VAT accounts.

### Example Journal Entries:

**Example 1: Sale with 20% VAT**

- **Transaction:** Sold a laptop for €1273 (net) + 20% VAT.

- **VAT Calculation:** €1273 * 20% = €254.6
- **Gross Amount:** €1273 + €254.6 = €1527.6

**Journal Entry:**

| Date | Account Title | Debit (€) | Credit (€) |
|------------|-------------------------|-----------|------------|
| YYYY-MM-DD | Accounts Receivable | 1527.6 | |
| | Sales of Goods | | 1273.00 |
| | Output VAT (20%) | | 254.60 |

**Example 2: Sale with 10% VAT**

- **Transaction:** Sold an item for €1000 (net) + 10% VAT.

- **VAT Calculation:** €1000 * 10% = €100
- **Gross Amount:** €1000 + €100 = €1100

**Journal Entry:**

| Date | Account Title | Debit (€) | Credit (€) |
|------------|-------------------------|-----------|------------|
| YYYY-MM-DD | Accounts Receivable | 1100.00 | |
| | Sales of Goods | | 1000.00 |
| | Output VAT (10%) | | 100.00 |

### Missing Account:

- **4801:** Output VAT (10%)

This account is necessary to record VAT for sales with a 10% rate, as the provided accounts only include an output VAT account for 20%. Failure to use a separate account can lead to inaccuracies in tax reporting.

### Conclusion:

Always ensure that all required accounts are set up before recording transactions. If a needed account is missing (like Output VAT 10%), it should be created to maintain accurate financial records and comply with tax obligations.
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277301#p277301 Thu, 30 Jan 2025 10:30:51 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277301#p277301
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using DeepSeek locally using Ollama :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277312#p277312 Thank you so much.
Is this result provided entirely by the local installation?

Otherwise, due to data protection regulations, it would be a problem. The local solution without cloud dependency is ideal.

Is it difficult to install Ollama? What hardware are you using?

Once again, many thanks.

And once again, heartfelt thanks for doing the great research work for us and sharing your knowledge with us.

Best regards,
Otto]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277312#p277312 Thu, 30 Jan 2025 12:08:15 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277312#p277312
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using DeepSeek locally using Ollama :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277314#p277314
> Thank you so much.

You are really welcome

> Is this result provided entirely by the local installation?

Yes, 100%

> The local solution without cloud dependency is ideal.

Yes it is.

> Is it difficult to install Ollama?

Really easy. They provide an automatic installer.

> What hardware are you using?

iMac Intel Xeon and an external GPU Nvidia GeForce RTX 3060.
It goes slow, I would try on a faster computer, maybe a modern iMac.

> Once again, many thanks.
My pleasure to be of help

> And once again, heartfelt thanks for doing the great research work for us and sharing your knowledge with us.
I enjoy AI very much :D]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277314#p277314 Thu, 30 Jan 2025 14:19:59 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277314#p277314
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using DeepSeek locally using Ollama :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277319#p277319
y por otro lado me gustaría realmente recibir una capacitación virtual de ese tema, por que tengo demasiadas dudas sobre como funciona, que son los modelos, como integrarlo a nuestra app, si se puede o no hacer que la inteligencia artificial corra funciones o acciones (no se si asi se llame) sobre la maquina, si le podemos poner limites, etc, etc, etc.

Podrías tener en cuenta lo del curso virtual, específicamente para inteligencia artificial?

Gracias de antemano]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277319#p277319 Thu, 30 Jan 2025 14:46:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277319#p277319
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using DeepSeek locally using Ollama :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277320#p277320
> para cuando la versión de FW que tiene esa clase?

Pues deberiamos publicarla cuanto antes, estoy pendiente de que Rao me confirme que estamos preparados. Por mi parte las clases para IA funcionan bien y de hecho las hemos publicado aqui en los foros para que podais ir usándolas ya.

>
y por otro lado me gustaría realmente recibir una capacitación virtual de ese tema, por que tengo demasiadas dudas sobre como funciona, que son los modelos, como integrarlo a nuestra app, si se puede o no hacer que la inteligencia artificial corra funciones o acciones (no se si asi se llame) sobre la maquina, si le podemos poner limites, etc, etc, etc.

Podrías tener en cuenta lo del curso virtual, específicamente para inteligencia artificial?
>

Podriamos hacer un webinar para Inteligencia Artificial, para resolver dudas y ver ejemplos. De todas formas hay que entender que si se quiere usar un modelo local que no comparta datos privados externamente, lo ideal es la Clase TOLlama publicada ayer. Además de local es 100% gratuita. Para hacer que la IA haga cosas es preciso tener "vision" y de hecho DeepSeek acaba de sacar un modelo "multimodal" que tiene visión pero aún no lo hemos implementado. Ha salido hace tan solo unos dias.]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277320#p277320 Thu, 30 Jan 2025 14:57:35 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277320#p277320
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using DeepSeek locally using Ollama :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277322#p277322
Realmente sabemos que necesitamos empezar a usar la AI, necesitamos aprovechar tu conocimiento, propongamos una fecha, precio y temario, para ver si mas colegas se suman, creo que es realmente necesario empezar a trabajar en ese tema.

Muchas gracias por tu trabajo :D]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277322#p277322 Thu, 30 Jan 2025 15:19:19 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277322#p277322
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using DeepSeek locally using Ollama :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277326#p277326
Por "visión" me refiero a la capacidad de darle una imagen y que la IA la reconozca y detalle su contenido. Esto lo hace el modelo multimodal (un modelo que soporta, texto, imagenes, etc. todo a la vez) de OpenAI pero es de pago. Sin embargo el equipo de DeepSeek ha sacado el modelo "Janus Pro" que es multimodal también y que soporta "visión" y si funciona en local entonces seria 100% gratis.
Estamos investigando para implementarlo cuanto antes.

Cuando la IA es capaz de reconocer imagenes entonces es capaz de "ver" la pantalla del ordenador y asi podemos hacer que la IA interactue con nuestras apps y con el ordenador :-)

Si eres tan amable de ayudarme a organizar el webinar como lo hiciste la vez anterior, con mucho gusto dedicamos un par de dias a implementarlo enfocados en la IA. Gracias!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277326#p277326 Thu, 30 Jan 2025 22:12:51 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277326#p277326
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using DeepSeek locally using Ollama :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277342#p277342
it allows us to see each generated token from the AI engine

Important: a modified Harbour hbcurl.lib is required!
https://groups.google.com/g/harbour-dev ... BFolviEAAJ

ollama2.prg

Code: Select all | Expand

#include "FiveWin.ch"

static oChat, oOutput
static nStartTime, nTokenCount

function Main()

   local oDlg, cOutput := "", oBtn, oFont
   local oPrompt, cPrompt := Space( 100 )
   
   oChat = TOLlama():New( "deepseek-r1:32b" )
   FW_SetUnicode( .T. )
   
   DEFINE FONT oFont NAME "system-ui" SIZE 0, -16 BOLD

   DEFINE DIALOG oDlg TITLE "Ollama DeepSeek" SIZE 1200, 600

   @ 5.5, 0.7 GET oOutput VAR cOutput MULTILINE SIZE 590, 200 READONLY FONT oFont

   @ 18.7, 1 SAY "Prompt:" 
   @ 21.5, 4 GET oPrompt VAR cPrompt SIZE 510, 15 
   @ 15.5, 92 BUTTON oBtn PROMPT "Send" SIZE 40, 15 ACTION SendPrompt( cPrompt, oOutput, oBtn, oPrompt ) DEFAULT
   
   ACTIVATE DIALOG oDlg CENTERED

   oChat:End()
   oFont:End()

return nil

function SendPrompt( cPrompt, oOutput, oBtn, oPrompt )

   local cToken

   nStartTime = Seconds()  
   nTokenCount = 0  

   oBtn:Disable()
   oChat:SendStream( AllTrim( cPrompt ), { | cBuffer | ShowTokens( cBuffer ) } )
   ShowTokenStats()
   oBtn:Enable()
   oPrompt:SetFocus()
    
return nil    

function ShowTokens( cBuffer )

    local hResponse := hb_jsonDecode( cBuffer )

    oOutput:Append( hResponse[ "message" ][ "content" ] )
    nTokenCount++
    SysRefresh()

return nil    

function ShowTokenStats()

    local nElapsedTime := Seconds() - nStartTime
    local nTokensPerSecond := iif(nElapsedTime > 0, nTokenCount / nElapsedTime, 0)
 
    oOutput:Append( StrTran( "Tokens por segundo: " + Str( nTokensPerSecond, 10, 2 ), ".", "," ) )
    SysRefresh()
 
 return nil
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277342#p277342 Fri, 31 Jan 2025 10:02:52 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277342#p277342
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using DeepSeek locally using Ollama :: Reply by wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277400#p277400 no he podido generar la libcurl en 64 bits me interesa
podrias disponer esa lib con tus cambio y publicar la clase donde se utiliza
gracias por compartir tus conocimientos con todos
Un abrazo
Wilson]]>
no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277400#p277400 Mon, 03 Feb 2025 14:07:06 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277400#p277400
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using DeepSeek locally using Ollama :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277401#p277401
Los nuevos builds de Harbour y xHarbour en 32 y 64 bits ya estan disponibles desde:

https://github.com/FiveTechSoft/harbour ... our_builds

Gracias a Enrico por su inestimable ayuda! :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277401#p277401 Mon, 03 Feb 2025 14:29:46 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45356&p=277401#p277401
<![CDATA[FiveWin for Harbour/xHarbour :: is this True ? :: Author Jimmy]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277380#p277380
i have read somewhere that harbour Programm are :
And then the programs generated with it are just programs with tokens that are interpreted at runtime, not even real, linked programs.
]]>
no_email@example.com (Jimmy) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277380#p277380 Mon, 03 Feb 2025 04:27:24 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277380#p277380
<![CDATA[FiveWin for Harbour/xHarbour :: Re: is this True ? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277381#p277381
In fact Harbour provides a compiler option to avoid the pcode use and just generates straigth C code.

Who has said that, has a very little idea of virtual machines... :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277381#p277381 Mon, 03 Feb 2025 04:53:40 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277381#p277381
<![CDATA[FiveWin for Harbour/xHarbour :: Re: is this True ? :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277383#p277383
¿Es esto una broma, Jimmy? jajajajajaja.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277383#p277383 Mon, 03 Feb 2025 05:05:00 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277383#p277383
<![CDATA[FiveWin for Harbour/xHarbour :: Re: is this True ? :: Reply by Jimmy]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277389#p277389
the man answers :
https://www.xbaseforum.de/viewtopic.php?t=236&start=3 ( ramses 03 Feb 2025, 12:58, start from last Msg )
This contains tokens at the beginning of the file which are then processed and interpreted at runtime.
i can not believe this.]]>
no_email@example.com (Jimmy) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277389#p277389 Mon, 03 Feb 2025 08:05:08 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277389#p277389
<![CDATA[FiveWin for Harbour/xHarbour :: Re: is this True ? :: Reply by paquitohm]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277391#p277391
Jimmy wrote: Mon Feb 03, 2025 11:27 am hi,

i have read somewhere that harbour Programm are :
And then the programs generated with it are just programs with tokens that are interpreted at runtime, not even real, linked programs.
https://github.com/dmajkic/harbour-core ... /pcode.txt

And UT for Harbour on web at https://carles9000.github.io]]>
no_email@example.com (paquitohm) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277391#p277391 Mon, 03 Feb 2025 08:28:58 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277391#p277391
<![CDATA[FiveWin for Harbour/xHarbour :: Re: is this True ? :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277393#p277393
Jimmy wrote: Mon Feb 03, 2025 3:05 pm hi,

the man answers :
https://www.xbaseforum.de/viewtopic.php?t=236&start=3 ( ramses 03 Feb 2025, 12:58, start from last Msg )
This contains tokens at the beginning of the file which are then processed and interpreted at runtime.
i can not believe this.
You should. Please open the generated C source file and you will see.]]>
no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277393#p277393 Mon, 03 Feb 2025 09:02:34 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277393#p277393
<![CDATA[FiveWin for Harbour/xHarbour :: Re: is this True ? :: Reply by Jimmy]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277397#p277397
Antonio Linares wrote: Mon Feb 03, 2025 11:53 am Harbour apps are real apps that use pcode (not tokens) but they are true executables.

Who has said that, has a very little idea of virtual machines... :)
now i understand a little more how harbour/PCODE work.

what is the difference between "interpreted at runtime" and "a Clipper VirtualMachine() that will
process those pcode bytes." :?:]]>
no_email@example.com (Jimmy) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277397#p277397 Mon, 03 Feb 2025 10:39:33 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277397#p277397
<![CDATA[FiveWin for Harbour/xHarbour :: Re: is this True ? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277402#p277402
A CPU is able to do lots of different tasks. You can think of a CPU as a "wild horse", so powerful and at the same time risky as it has a lot of energy and many different actions that can be performed.

The idea of building a virtual machine is to reduce all those possibilites into a bunch of them, so the "horse" is under control, and no matter what errors we may do with the code, or what errors the users may do, the "horse" will remain in control.

Thats basically why we build a virtual machine. We just want to allow a bunch of different actions so the app will never become "out of control" most of the times ending with a GPF. The "horse" will deliver its power with control. No way to loose that control.

That is what made Clipper so robust and thats why Harbour behaves the same way :-)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277402#p277402 Mon, 03 Feb 2025 14:41:14 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45372&p=277402#p277402
<![CDATA[FiveWin for Harbour/xHarbour :: FW_ADOEXPORTTODBF :: Author Jack]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45377&p=277413#p277413 Could we have a description of parameters for :

FW_AdoExportToDBF(...
and
FW_AdoImportFromDBF(...

Thanks,

Philippe from Belgium]]>
no_email@example.com (Jack) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45377&p=277413#p277413 Tue, 04 Feb 2025 06:10:40 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45377&p=277413#p277413
<![CDATA[FiveWin for Harbour/xHarbour :: Re: FW_ADOEXPORTTODBF :: Reply by Cgallegoa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45377&p=277421#p277421
FW_AdoExportToDBF( oRs, cDbf, lEditStruct )
FW_AdoImportFromDBF( oCn, cDbf, cAdoTable, cColPrefix, nMultiRowSize, aFields, cAutoIncFld )
Regards,]]>
no_email@example.com (Cgallegoa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45377&p=277421#p277421 Tue, 04 Feb 2025 09:45:29 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45377&p=277421#p277421
<![CDATA[FiveWin for Harbour/xHarbour :: Ollama + DeepSeek working fine with Harbour/xHarbour :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45369&p=277367#p277367

Working 100% locally. No private data is sent to the web.

Image]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45369&p=277367#p277367 Sat, 01 Feb 2025 14:16:42 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45369&p=277367#p277367
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Ollama + DeepSeek working fine with Harbour/xHarbour :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45369&p=277368#p277368 14b --verbose

eval rate: 30.11 tokens/s

ollama run deepseek-r1:32b --verbose

eval rate: 3.21 tokens/s]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45369&p=277368#p277368 Sat, 01 Feb 2025 15:45:27 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45369&p=277368#p277368
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Ollama + DeepSeek working fine with Harbour/xHarbour :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45369&p=277379#p277379 https://www.kerlig.com/blog/run-deepsee ... y-on-macOS]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45369&p=277379#p277379 Mon, 03 Feb 2025 02:55:31 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45369&p=277379#p277379 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Ollama + DeepSeek working fine with Harbour/xHarbour :: Reply by Lailton]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45369&p=277394#p277394
It is really amazing!
We need a good PC to run it with a good experience, but it is really fantastic!

Thank you]]>
no_email@example.com (Lailton) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45369&p=277394#p277394 Mon, 03 Feb 2025 09:40:36 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45369&p=277394#p277394
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Ollama + DeepSeek working fine with Harbour/xHarbour :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45369&p=277425#p277425 https://youtu.be/PkIoGitVZXw?si=dF6V4--VbXyCIiWL]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45369&p=277425#p277425 Tue, 04 Feb 2025 13:29:41 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45369&p=277425#p277425 <![CDATA[FiveWin for Harbour/xHarbour :: Re: New FWH 24.09 :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=44966&p=277202#p277202 no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=44966&p=277202#p277202 Sat, 25 Jan 2025 11:04:52 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=44966&p=277202#p277202 <![CDATA[FiveWin for Harbour/xHarbour :: Re: New FWH 24.09 :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=44966&p=277428#p277428 no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=44966&p=277428#p277428 Tue, 04 Feb 2025 14:20:30 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=44966&p=277428#p277428 <![CDATA[FiveWin for Harbour/xHarbour :: Mysql embedded :: Author Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45380&p=277420#p277420 Mysql embedded ?]]> no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45380&p=277420#p277420 Tue, 04 Feb 2025 09:27:01 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45380&p=277420#p277420 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Mysql embedded :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45380&p=277427#p277427 But still with FWH we can still use embedded server and FWH comes with all the required dll/libs and FWH MySQL/maria built-in library supports it.

To start with:
viewtopic.php?f=3&t=33798

and
mysqlmbd.prg and mysql_emb.prg in the samples folder.]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45380&p=277427#p277427 Tue, 04 Feb 2025 14:17:02 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45380&p=277427#p277427
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Mysql embedded :: Reply by Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45380&p=277438#p277438 no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45380&p=277438#p277438 Wed, 05 Feb 2025 01:15:20 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45380&p=277438#p277438 <![CDATA[FiveWin for Harbour/xHarbour :: Changing the visibility of the scroll bar :: Author Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45374&p=277399#p277399
There is an object of type TXBrowse. I need to hide/show its vertical scroll while working. How can I do this ?]]>
no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45374&p=277399#p277399 Mon, 03 Feb 2025 12:02:04 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45374&p=277399#p277399
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Changing the visibility of the scroll bar :: Reply by MaxP]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45374&p=277448#p277448
try this

Code: Select all | Expand

#include "Fivewin.ch"

FUNCTION MAIN()
        LOCAL   oWnd, oBtn1, oBtn2

        DEFINE WINDOW oWnd TITLE "TEST" COLOR "N/W" FROM 10, 10 TO 30, 70 VSCROLL

        @ 8, 10 BUTTON oBtn1 PROMPT "GO ON" SIZE 50, 20 ACTION ShowScrollBar( oWnd:hWnd, .T. ) OF oWnd
        
        @ 8, 20 BUTTON oBtn2 PROMPT "GO OFF" SIZE 50, 20 ACTION ShowScrollBar( oWnd:hWnd, .F. ) OF oWnd

        ACTIVATE WINDOW oWnd
RETURN NIL

#pragma BEGINDUMP

#include <windows.h>
#include <winioctl.h>
#include <stdio.h>
#include <shlobj.h>
#include "hbapi.h"
#include "hbapiitm.h"
#include "hbapifs.h"
#include "hbvm.h"
#include "hbstack.h"

HB_FUNC( SHOWSCROLLBAR )

{
        ShowScrollBar( (HWND)hb_parnl( 1 ), SB_VERT, hb_parl( 2 ) ) ;
}

#pragma ENDDUMP
Massimo]]>
no_email@example.com (MaxP) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45374&p=277448#p277448 Wed, 05 Feb 2025 09:40:18 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45374&p=277448#p277448
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Changing the visibility of the scroll bar :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45374&p=277460#p277460
Just a comment, for 64 bits we must use:

ShowScrollBar( (HWND)hb_parnll( 1 ), SB_VERT, hb_parl( 2 ) ) ;]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45374&p=277460#p277460 Thu, 06 Feb 2025 00:39:59 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45374&p=277460#p277460
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Changing the visibility of the scroll bar :: Reply by Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45374&p=277461#p277461 no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45374&p=277461#p277461 Thu, 06 Feb 2025 01:10:29 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45374&p=277461#p277461 <![CDATA[FiveWin for Harbour/xHarbour :: WS_BORDER 8388608 :: Author jair]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45381&p=277422#p277422 Tengo un problema con el borde en un get que utiliza un componente llamado tvget y necesito cambiar el grosor del borde a uno muy fino.]]> no_email@example.com (jair) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45381&p=277422#p277422 Tue, 04 Feb 2025 12:54:28 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45381&p=277422#p277422 <![CDATA[FiveWin for Harbour/xHarbour :: Re: WS_BORDER 8388608 :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45381&p=277441#p277441

Code: Select all | Expand

   vwirts@ig.com.br
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45381&p=277441#p277441 Wed, 05 Feb 2025 04:27:18 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45381&p=277441#p277441
<![CDATA[FiveWin for Harbour/xHarbour :: Re: WS_BORDER 8388608 :: Reply by jair]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45381&p=277458#p277458 no_email@example.com (jair) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45381&p=277458#p277458 Wed, 05 Feb 2025 16:10:58 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45381&p=277458#p277458 <![CDATA[FiveWin for Harbour/xHarbour :: Re: WS_BORDER 8388608 :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45381&p=277462#p277462
https://www.facebook.com/vagner.wirts?c ... g2NQ%3D%3D

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45381&p=277462#p277462 Thu, 06 Feb 2025 03:22:28 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45381&p=277462#p277462
<![CDATA[FiveWin for Harbour/xHarbour :: Re: WS_BORDER 8388608 :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45381&p=277464#p277464

Code: Select all | Expand

mailto:  vwirts@terra.com.br
Tks Gilmer.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45381&p=277464#p277464 Thu, 06 Feb 2025 03:43:36 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45381&p=277464#p277464
<![CDATA[FiveWin for Harbour/xHarbour :: Request Xbrowse Feature :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45333&p=277112#p277112

Code: Select all | Expand

@ 10, 550 COMBOBOX oBrw:oSortCbx VAR oBrw:cSortOrder  SIZE 150,400 PIXEL OF oDlg
the command

Code: Select all | Expand

@ 10, 70 COMBOBOX nWild ITEMS { "Starting With", "Containing" } ;
      ON CHANGE ( oBrw:lSeekWild := ( nWild == 2 ), ;
                  oBrw:Seek( If( oBrw:lSeekWild, oBrw:cSeek, "" ) ), ;
                  oBrw:SetFocus() ) ;
      SIZE 70,400 PIXEL OF oDlg

in a single combobox i.e. have for example

in addition to the fields in which to search, there is also the possibility of searching with the "Starting With" and "Containing" options


so for example in the case of the customer archive having a combobox like this

FIRST
LAST
separator
"Starting With"
"Containing"


perhaps this possibility could be added with an automatic command of the type

@ 10, 550 COMBOBOX oBrw:oSortCbx VAR oBrw:cSortOrder SIZE 150,400 PIXEL OF oDlg AUTOWILD

and xbrowse will automatically fill in the options "Starting With" and "Containing" in the ITems od Combobox]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45333&p=277112#p277112 Wed, 22 Jan 2025 01:19:43 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45333&p=277112#p277112
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Request Xbrowse Feature :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45333&p=277465#p277465 no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45333&p=277465#p277465 Thu, 06 Feb 2025 04:10:39 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45333&p=277465#p277465 <![CDATA[FiveWin for Harbour/xHarbour :: Consulta sobre busquedas en Mariadb por mas de un campo :: Author jose_murugosa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45365&p=277341#p277341 Leí en algún topic de hace mas de un año que se planeaba agregar esta posibilidad...
Gracias desde ya por vuestra atención.]]>
no_email@example.com (jose_murugosa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45365&p=277341#p277341 Fri, 31 Jan 2025 08:01:04 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45365&p=277341#p277341
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Consulta sobre busquedas en Mariadb por mas de un campo :: Reply by jose_murugosa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45365&p=277392#p277392 no_email@example.com (jose_murugosa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45365&p=277392#p277392 Mon, 03 Feb 2025 09:00:47 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45365&p=277392#p277392 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Consulta sobre busquedas en Mariadb por mas de un campo :: Reply by vilian]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45365&p=277398#p277398 you can try by this way:

Code: Select all | Expand

oRs := oBD:Query("SELECT field1,field2,field3,Concat(field1,field2) AS chave FROM tablecust ORDER BY chave
oRs:Seek( vGet1+vGet2 )
]]>
no_email@example.com (vilian) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45365&p=277398#p277398 Mon, 03 Feb 2025 11:00:29 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45365&p=277398#p277398
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Consulta sobre busquedas en Mariadb por mas de un campo :: Reply by jose_murugosa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45365&p=277471#p277471 I will prove and inform you

Regards.]]>
no_email@example.com (jose_murugosa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45365&p=277471#p277471 Thu, 06 Feb 2025 10:21:57 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45365&p=277471#p277471
<![CDATA[FiveWin for Harbour/xHarbour :: AEvalWhen problems RESOLVED :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45389&p=277485#p277485
Image

at init the btnbmp must be as you see it on picture
I not wish disabled because then I see a gray button ( bad to see)

I wish activate the btnbmp when the valid when Of the get is valid
each button have a baction


the problem is when I insert a valid mail the btnbmp is not activated ,it is disable

this is the test to try

Code: Select all | Expand


#include "FiveWin.ch"
#include "Constant.ch"

 #define DLG_nColorDlg     RGB(245,245,235)
 #define DLG_nColortitle1  RGB(219,230,244)
 #define DLG_nColortitle2  RGB(207,221,239)
 #define DLG_nColorBar1    RGB(250,250,245)
 #define DLG_nColorBar2    RGB(245,245,235)
 #define DLG_nColorBtn1    RGB(245,245,235)
 #define DLG_nColorBtn2    RGB(250,250,245)
 #define DLG_nColorBtnB    RGB(195,195,185)


Function test()
 local oDlg
 local aGet:=array(2)
  local oSay:=array(2)
 local oBtnSel:= array(2)
 local cCodEmail:=space(30)
 local cCodEmailPec:=space(30)
 local cMailName:=""

 local nRow:=10,nCol:=10
 local nInterlinea:= 30
 local nSizeHGet:= 24

   local nBottom:= 20
   local nRight := 100
   local nHt    := nBottom * DLG_CHARPIX_H
   local nWd    := Max( nRight * DLG_CHARPIX_W, 180 )
   local oCursorBtn :=TCursor():New(,'HAND')

   local  oFont := TFont():New("Tahoma", 0, 18, , )
   local  oBold := TFont():New("Tahoma", 0, 16, , .t.)


DEFINE DIALOG oDlg SIZE nWd, nHt PIXEL TRUEPIXEL ;
       FONT oFont  TiTle "Account Invio" COLOR CLR_BLACK, DLG_nColorDlg  ;
       STYLE nOR( DS_MODALFRAME, WS_POPUP, WS_CAPTION, WS_SYSMENU, ;
                  WS_MINIMIZEBOX)

    @ nRow, 320 SAY oSay[1] PROMPT  "email" SIZE 100,25  PIXEL OF oDlg TRANSPARENT  FONT oFont
    @ nRow, 420 GET aGet[1] VAR cCodEmail SIZE 160,nSizeHGet PIXEL OF oDlg;
    ON CHANGE ( oDlg:AEvalWhen(), oDlg:Update() )

   @  nRow, oDlg:nWidth-148  BTNBMP oBtnSel[1] ;
      PROMPT "Account Invio" LEFT                 ;
      RESOURCE "SEL_PIE", "", "SEL_VUO", "" ;
      SIZE 130, nSizeHGet PIXEL FLAT NOROUND GDIP  OF oDlg ;
      WHEN ValidaEmail( cCodEmail )  UPDATE  ;
      ACTION  Account_Invio_Email()

                        /*  ACTION (Account_Invio_Email(), ;
                        IIF(  !empty(cMailName),;
                        oBtnSel[2]:SETFILE("SEL_PIE"),;
                        oBtnSel[2]:SETFILE("SEL_VUO") ) ) ; */

    nRow+=nInterlinea
   @ nRow, 320 SAY oSay[2] PROMPT  "email PEC" SIZE 100,25  PIXEL OF oDlg TRANSPARENT  FONT oFont
   @ nRow, 420 GET aGet[2] VAR cCodEmailPec SIZE 160,nSizeHGet PIXEL OF oDlg;
                     ON CHANGE ( oDlg:AEvalWhen(), oDlg:Update() )



   @  nRow, oDlg:nWidth-148  BTNBMP oBtnSel[2] ;
      PROMPT "Account Invio" LEFT                 ;
      RESOURCE "SEL_PIE", "", "SEL_VUO", "" ;
      SIZE 130, nSizeHGet PIXEL FLAT NOROUND GDIP  OF oDlg ;
      WHEN ValidaEmail( cCodEmailPec )  UPDATE  ;
      ACTION Account_Invio_Email()




            /*  ACTION (Account_Invio_Email(), ;
                        IIF(  !empty(cMailName),;
                        oBtnSel[2]:SETFILE("SEL_PIE"),;
                        oBtnSel[2]:SETFILE("SEL_VUO") ) ) ; */





                For n= 1 to 2
             oBtnSel[n]:bClrGrad := { | lPressed | If( ! lPressed,;
                 { { 1, DLG_nColorBar1, DLG_nColorBar1} },;
                 { { 1, DLG_nColorBar2, DLG_nColorBar2} } ) }
             oBtnSel[n]:nClrBorder := DLG_nColorBtnB
             oBtnSel[n]:oCursor:=   oCursorBtn
             oBtnSel[n]:nClrFocusRect := DLG_nColorBar2
             oBtnSel[n]:nDeepFocusRect := 0
             next

             ACTIVATE DIALOG oDlg CENTERED


RETURN NIL

function validaEmail(cEmail) //Nageswarao
   static preCompiled
   DEFAULT preCompiled := hb_regexComp("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$")
      return !Empty( hb_regex( preCompiled, alltrim( cEmail ) ) )

function  Account_Invio_Email ()
            Msginfo("Email")
   return nil
I make now a test
? validaEmail("silvio.falconi@gmail.com")
return .f. so the function of Rao not run ok ?]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45389&p=277485#p277485 Fri, 07 Feb 2025 06:56:24 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45389&p=277485#p277485
<![CDATA[FiveWin for Harbour/xHarbour :: Re: AEvalWhen problems resolved :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45389&p=277486#p277486 it need hbpcre.lib]]> no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45389&p=277486#p277486 Fri, 07 Feb 2025 06:55:38 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45389&p=277486#p277486 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Incorrect Font Display :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45205&p=277489#p277489
Can you please provide me your email address?
Or please write to my email
nageswaragunupudi[at]gmail[dot]com]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45205&p=277489#p277489 Fri, 07 Feb 2025 10:37:41 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45205&p=277489#p277489
<![CDATA[FiveWin for Harbour/xHarbour :: ChatGpt+Xbrowse+Set Filter :: Author Marc Venken]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45392&p=277510#p277510
It confirmed my idea, but is it true ... ??

I use Xbrowse and the aBarget a Lot, and therefore my question :

The best way to filter data :

Folowing many discussies in the forum, i know that Mr. Rao is in favor for a optimised set filter to ....
I think that with my code (see below) I do just that and yes, It is quite fast.

But I have still a unansered question :

Indexes build normaly optimised and as a sample here a tag on BRANDID and also FABRIKAN (no index on NAAM)

Folowing typical filter :

"PRO" $ UPPER( BRANDID ) .AND. "RANGER" $ UPPER( NAAM ) .AND. "ABOUT" $ UPPER( FABRIKAN )

1. A Filter is working from left to right, processing : BrandID, Naam, Fabrikan

Since there is a TAG on BRANDID, the filter is FAST since it has the 1 tag, then keeping the resultdata and process them with the Naam FILTER as a Loop, since there is NO tag for the 2de part of the filter etc ...

If I change the incomming filter string in a order that first ALL indexed fields are beeing processed and then the NOT having a TAG fields
is this always better ?

For the argument, let say that the field BRANDID has no tag, will the current filter be slow because he has not found a TAG on brandid and need to process ALL data from top to bottem.

2. This is correct thinking or not ?

ChatGPT also thinks that arranging the filter with field that have tag as first filters are faster.

ChatGpt second option :

rearrange the filter string also that field with a tag are in front of the Filterstring
then process like this :

1 First field : ORDSCOPE the selection and put the result in a Array (1 filter is done)
2 field : Ordscope (the Array) and generate a newArray (2 filters are done)
3 field : Process the NewArray itself inside a loop excluding the data not needed (because of no index)

Give the result data back to xBrowse

Before I try to code one of these options, I would love to hear the ideas of this from Forum and FWTeam.

Thank







Code: Select all | Expand

FUNCTION Marc_SETFILTER( oBrw ) 

   LOCAL cFilter := ""
   LOCAL n, oCol, uVal, cType, cVal1, cVal2, nGevonden
   LOCAL nZoekKnop, cExprt
   LOCAL cAlias:= alias()
   FOR n := 1 TO Len( oBrw:aCols )
      oCol  := oBrw:aCols[ n ]
      IF ! Empty( uVal := oCol:uBarGetVal )
         IF !Empty( cFilter )
            cFilter  += " .AND. "
         ENDIF
         cType    := ValType( uVal )
         if cType = "C"
           nGevonden = at("++",uVal)  //  I do this for multiple search in 1 go
         endif
         if cType = "C"
           nZoekKnop = at("²",uVal)  //  To force a extra key to activated the search in browse
         endif

         DO CASE
          CASE cType == 'C' .and. nZoekKnop > 0  
            uVal     := Upper( AllTrim( uVal ) )
            cVal1 = substr(uVal,1,nZoekknop-2)
            cFilter += '"' + cVal1 + '" $ UPPER( ' + oCol:CExpr + " )"
          CASE cType == 'C' .and. nGevonden > 0
            uVal     := Upper( AllTrim( uVal ) )
            cVal1 = substr(uVal,1,nGevonden-1)
            cVal2 = substr(uVal,nGevonden+2)

            cFilter += '"' + cVal1 + '" $ UPPER( ' + oCol:CExpr + " )"
            cFilter += " .AND. "
            cFilter += '"' + cVal2 + '" $ UPPER( ' + oCol:CExpr + " )"
         CASE cType == 'C'
            uVal     := Upper( AllTrim( uVal ) )
            cFilter += '"' + uVal + '" $ UPPER( ' + oCol:CExpr + " )"
         CASE cType == 'D'
            cFilter  += oCol:cExpr + " = " + ( uVal )
         OTHERWISE
            cFilter  += oCol:cExpr + " == " + cValToChar( uVal )
         ENDCASE
      ENDIF
   NEXT
   IF Empty( cFilter )
      IF ! Empty( dbFilter() )
         dbClearFilter()
         oBrw:Refresh()
      ENDIF
   ELSE

      IF !( dbFilter() == cFilter )
         oClp:SetText(cFilter)  // For personel creating of Indexes to use more times
         if !empty(cAlias)
           SET FILTER TO &cFilter
           oClp:SetText(cFilter)
           GO TOP
         else
           msginfo("Error.... Geen Alias beschikbaar")
         endif

         oBrw:Refresh()
      ENDIF

   ENDIF
   oBrw:maketotals() 
   oBrw:SetFocus()
RETURN NIL

]]>
no_email@example.com (Marc Venken) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45392&p=277510#p277510 Sat, 08 Feb 2025 07:48:43 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45392&p=277510#p277510
<![CDATA[FiveWin for Harbour/xHarbour :: Re: ChatGpt+Xbrowse+Set Filter :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45392&p=277514#p277514
User defined temporary indexes in memory with just the required keys!

viewtopic.php?p=277214#p277214]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45392&p=277514#p277514 Sat, 08 Feb 2025 09:54:20 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45392&p=277514#p277514
<![CDATA[FiveWin for Harbour/xHarbour :: Re: ChatGpt+Xbrowse+Set Filter :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45392&p=277519#p277519 What does "fast" mean to you?
Best regards,
Otto]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45392&p=277519#p277519 Sat, 08 Feb 2025 10:45:17 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45392&p=277519#p277519
<![CDATA[FiveWin for Harbour/xHarbour :: Re: ChatGpt+Xbrowse+Set Filter :: Reply by Marc Venken]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45392&p=277525#p277525
178 fields and 2300 records .

Filtering is mostly between 1-3 secs, so no problem here. (FAST = ok)

I'm not looking for a other solution, since it works great for my purpose.

I just want to know if the set filter to .... works indeed like I descripte in the post and is pulling the index fields in front of the set filter to
command would speed up. I thinks I just need to try it )))))

I see it more as a educational post...]]>
no_email@example.com (Marc Venken) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45392&p=277525#p277525 Sat, 08 Feb 2025 12:06:26 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45392&p=277525#p277525
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Graph/Chart Scrollable :: Reply by richard-service]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=42691&p=277556#p277556
Antonio Linares wrote: Thu Aug 08, 2024 12:10 pm Dear Richard,

We were considering to use a scrollpanel and use it to scroll the graph to each side

Would that be a good solution ?
any sample file for try?]]>
no_email@example.com (richard-service) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=42691&p=277556#p277556 Sun, 09 Feb 2025 12:32:21 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=42691&p=277556#p277556
<![CDATA[FiveWin for Harbour/xHarbour :: Create shortcut for accessing URL :: Author don lowenstein]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45395&p=277522#p277522 Has anyone had success doing this?

Thanks in advance for any assistance.]]>
no_email@example.com (don lowenstein) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45395&p=277522#p277522 Sat, 08 Feb 2025 11:25:52 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45395&p=277522#p277522
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Create shortcut for accessing URL :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45395&p=277528#p277528
Not sure if you mean this:

Code: Select all | Expand

PROCEDURE CreateURLShortcut(cFileName, cURL)
   LOCAL hFile

   // Ensure the filename ends with .url
   IF AT(".url", LOWER(cFileName)) == 0
      cFileName += ".url"
   ENDIF

   // Create and write to the file
   hFile := FCreate(cFileName)
   IF hFile != -1
      FWrite(hFile, "[InternetShortcut]" + Chr(13) + Chr(10))
      FWrite(hFile, "URL=" + cURL + Chr(13) + Chr(10))
      FClose(hFile)
   ELSE
      ? "Error creating file:", cFileName
   ENDIF
RETURN

// Usage:
CreateURLShortcut("MyWebShortcut.url", "https://www.example.com")
or maybe this:

Code: Select all | Expand

PROCEDURE CreateLNKShortcut(cLnkPath, cURL)
   LOCAL oShell, oShortcut

   // Initialize COM (if not already done)
   IF !Empty(GetActiveObject("WScript.Shell"))
      oShell := CreateObject("WScript.Shell")
   ELSE
      ? "COM initialization failed."
      RETURN
   ENDIF

   // Create the shortcut
   oShortcut := oShell:CreateShortcut(cLnkPath)
   oShortcut:TargetPath := "rundll32.exe"
   oShortcut:Arguments := "url.dll,FileProtocolHandler " + cURL
   oShortcut:Save()
RETURN

// Usage:
CreateLNKShortcut("MyWebShortcut.lnk", "https://www.example.com")
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45395&p=277528#p277528 Sat, 08 Feb 2025 13:35:46 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45395&p=277528#p277528
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Create shortcut for accessing URL :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45395&p=277534#p277534
viewtopic.php?p=274664#p274664]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45395&p=277534#p277534 Sat, 08 Feb 2025 14:27:07 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45395&p=277534#p277534
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Create shortcut for accessing URL :: Reply by don lowenstein]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45395&p=277540#p277540 I'll test them on Monday.

Antonio, it's good to hear from you. I hope all is well with you and yours.

Don]]>
no_email@example.com (don lowenstein) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45395&p=277540#p277540 Sat, 08 Feb 2025 16:45:27 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45395&p=277540#p277540
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Create shortcut for accessing URL :: Reply by don lowenstein]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45395&p=277541#p277541
That's a testament to how good the Fivewin libraries and community are.
I feel privileged to be part of it.

Sincerely, Don]]>
no_email@example.com (don lowenstein) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45395&p=277541#p277541 Sat, 08 Feb 2025 16:50:27 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45395&p=277541#p277541
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Create shortcut for accessing URL :: Reply by don lowenstein]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45395&p=277566#p277566
This worked perfectly - Thanks.]]>
no_email@example.com (don lowenstein) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45395&p=277566#p277566 Mon, 10 Feb 2025 07:18:24 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45395&p=277566#p277566
<![CDATA[FiveWin for Harbour/xHarbour :: Quickbooks Online :: Author Randal]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45402&p=277581#p277581
From what I understand, Intuit is going to stop offering the desktop version.

Randal Ferguson]]>
no_email@example.com (Randal) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45402&p=277581#p277581 Tue, 11 Feb 2025 04:33:44 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45402&p=277581#p277581
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Quickbooks Online :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45402&p=277602#p277602
chatgpt:
Yes, many developers have integrated with QuickBooks Online (QBO). For integration, the most commonly used SDK is **Intuit’s QuickBooks Online SDK**. It provides a seamless way to interact with QBO’s API. Here’s a breakdown:

### Common SDKs for QuickBooks Online Integration:
1. **QuickBooks Online SDKs:**
- **.NET SDK**: Great for C# developers.
- **Java SDK**: Perfect for Java developers.
- **PHP SDK**: Suitable for PHP-based applications.

2. **REST API Directly**: If you don’t want to rely on the SDKs or are using a language like Python, JavaScript, or Harbour (your stack), you can interact directly with the QuickBooks Online REST API. This gives you more control but requires manual handling of OAuth2 authentication and API calls.

### Key Points for Integration:
- **Authentication**: QuickBooks Online uses **OAuth 2.0** for authentication. You’ll need to register your app in Intuit’s Developer Portal to get API keys and set up the redirect URIs.
- **API Documentation**: The [QuickBooks Online API documentation](https://developer.intuit.com/app/develo ... et-started) provides detailed guidance on endpoints for customer management, invoices, payments, etc.
- **Sandbox Environment**: Intuit offers a sandbox for testing integrations before going live.

### Regarding QuickBooks Desktop:
You’re correct that Intuit is phasing out the desktop versions of QuickBooks for certain markets, pushing users towards QuickBooks Online. However, if you're working with legacy desktop systems, they rely on the **QuickBooks Desktop SDK** or **QBXML** (for SOAP-based integrations). But for long-term solutions, shifting to QuickBooks Online integration makes the most sense.
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45402&p=277602#p277602 Tue, 11 Feb 2025 15:19:49 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45402&p=277602#p277602
<![CDATA[FiveWin for Harbour/xHarbour :: error in time format Resolved :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45405&p=277606#p277606
I don't understand why the input format (attempt) is passed incorrectly

in archive I have
Tentrata 17.01.2025 15.59.26
tuscita 17.01.2025 16.00.00

so i must have only 34 secs

I tried to insert a debug with logfile function and I have saw

this is the test

if you need the archives I can send you the files dbf


Code: Select all | Expand

 
#include "FiveWin.ch"



request dbfcdx
request dbffpt

request hb_lang_it
request hb_codepage_itwin



 function Main()
    local nRow:= 10,nCol:= 2
    local nInterlinea:= 40
    local oWnd

       RddSetDefault( "DBFCDX" )
       HB_LANGSELECT( "IT" )
       HB_SETCODEPAGE( "ITWIN" )
       SetHandleCount( 100 )
       FWNumFormat( "E", .t. )

       SET DATE FORMAT "dd-mm-yyyy"
       SET DELETED     ON
       SET CENTURY     ON
       SET EPOCH TO    year( date() ) - 20
       SET MULTIPLE    OFF
       SetGetColorFocus(nRGB( 203, 225, 252 ))
       SetMGetColorFocus(nRGB( 203, 225, 252 ))

         test()

         return nil


Function test()
local cUser

cUser:="silvio"

? Calcola_TempoAccesso(cUser)

return nil


Function Calcola_TempoAccesso(cUser)
   Local oUtenti, oTabAct, cString := ""
   Local cStatus, dAccessDate, nTotalTime := 0
   Local tEntrata, tUscita
   Local nMinutes, nSeconds, nHours
   Local nArea := Select()

   tEntrata := ""
   tUscita  := ""
   nMinutes := 0
   nSeconds := 0
   nHours   := 0

   // Apri l'archivio oUtenti e controlla lo stato dell'utente
   oUtenti := TDatabase():Open( , "Utenti", "DBFCDX", .T. )
   oUtenti:SetOrder(1) // username
   oUtenti:GoTop()

   Do While !oUtenti:Eof()
      If AllTrim(oUtenti:UserName) == AllTrim(cUser)  
         cStatus := AllTrim(oUtenti:Status)
         dAccessDate := oUtenti:Fecha
         Exit
      EndIf
      oUtenti:Skip()
   EndDo

   // Se l'utente è ancora connesso, restituisci "Attualmente connesso"
   IF cStatus == "Ã"
      oUtenti:Close()
      Select (nArea)
      Return "Attualmente connesso"
   ELSE
      // Se l'utente non è connesso, calcola il tempo di accesso per quella data
      oTabAct := TDatabase():Open( , "tabact", "DBFCDX", .T. )
      oTabAct:SetOrder(2)
      oTabAct:GoTop()

      Do While !oTabAct:Eof()
         If AllTrim(oTabAct:Usuario) == AllTrim(cUser) .And. oTabAct:Fecha == dAccessDate
            If At("Entrata", AllTrim(oTabAct:Accion)) > 0
               tEntrata := AllTrim(oTabAct:Hora)  // Memorizza l'orario di entrata

               // Debug: Mostra l'orario di entrata appena letto
            *   ? "Orario di Entrata letto: ", tEntrata

               // Verifica il formato di tEntrata
               If Len(tEntrata) == 5
                  tEntrata := tEntrata + ":00"  // Aggiungi ":00" se non ci sono i secondi
               EndIf

               // Debug: Mostra l'orario di entrata dopo modifica
               * ? "Orario di Entrata dopo modifica: ", tEntrata
               logfile("silvio.txt", "Orario di Entrata dopo modifica: "+ tEntrata)

            ElseIf At("Uscita", AllTrim(oTabAct:Accion)) > 0
               tUscita := AllTrim(oTabAct:Hora)  // Memorizza l'orario di uscita
               // Debug: Mostra l'orario di uscita
              * ? "Orario di Uscita (tUscita): ", tUscita

               // Verifica il formato di tUscita
               If Len(tUscita) == 5
                  tUscita := tUscita + ":00"  // Aggiungi ":00" se non ci sono i secondi
               EndIf

               // Debug: Mostra l'orario di uscita dopo modifica

               logfile("silvio.txt", "Orario di Uscita dopo modifica: "+ tUscita)

               // Calcola la differenza in secondi
               nTotalTime += TimeDifferenceInSeconds(tEntrata, tUscita)
            EndIf
         EndIf
         oTabAct:Skip()
      EndDo

      If nTotalTime > 0
         // Converto la differenza in secondi nei formati giusti (ore, minuti, secondi)
         nHours   := Int(nTotalTime / 3600)            // Ore intere (3600 secondi in un'ora)
         nMinutes := Int((nTotalTime % 3600) / 60)    // Minuti rimanenti
         nSeconds := nTotalTime % 60                  // Secondi rimanenti

         If nHours > 0
            cString := Str(nHours, 6, 0) + " ore, " + Str(nMinutes, 2, 0) + " minuti e " + Str(nSeconds, 2, 0) + " secondi"
         ElseIf nMinutes > 0
            cString := Str(nMinutes, 6, 0) + " minuti e " + Str(nSeconds, 2, 0) + " secondi"
         Else
            cString := Str(nSeconds, 6, 0) + " secondi"
         EndIf
      Else
         cString := "Nessun dato di accesso trovato per la data " + dtoc(dAccessDate)
      EndIf

      oTabAct:Close()
   EndIf

   Select (nArea)
   oUtenti:Close()

   Return cString

   Function TimeDifferenceInSeconds(cStartTime, cEndTime)
   Local nStartHour, nStartMinute, nStartSecond
   Local nEndHour, nEndMinute, nEndSecond
   Local nStartSeconds, nEndSeconds
   Local nTimeDifference


    logfile("silvio.txt", "*Orario di Entrata : "+ cStartTime)
    logfile("silvio.txt", "*Orario di Uscita : "+ cEndTime)

   // Verifica se i parametri sono in formato stringa "hh:mm:ss"
   If Len(cStartTime) == 8 .And. Len(cEndTime) == 8
      // Estrarre ore, minuti e secondi
      nStartHour   := Val(SubStr(cStartTime, 1, 2)) // ore di inizio
      nStartMinute := Val(SubStr(cStartTime, 4, 2)) // minuti di inizio
      nStartSecond := Val(SubStr(cStartTime, 7, 2)) // secondi di inizio

      nEndHour   := Val(SubStr(cEndTime, 1, 2)) // ore di fine
      nEndMinute := Val(SubStr(cEndTime, 4, 2)) // minuti di fine
      nEndSecond := Val(SubStr(cEndTime, 7, 2)) // secondi di fine

      // Calcola i secondi totali dall'inizio della giornata
      nStartSeconds := (nStartHour * 3600) + (nStartMinute * 60) + nStartSecond
      nEndSeconds   := (nEndHour * 3600) + (nEndMinute * 60) + nEndSecond

      // Calcola la differenza in secondi
      nTimeDifference := nEndSeconds - nStartSeconds

      // Restituisci la differenza in secondi
      Return nTimeDifference
   Else
     * ? "Errore: Gli orari non sono nel formato corretto"
      Return 0
   EndIf

]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45405&p=277606#p277606 Wed, 12 Feb 2025 02:20:27 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45405&p=277606#p277606
<![CDATA[FiveWin for Harbour/xHarbour :: Re: error in time format Resolved :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45405&p=277607#p277607
The problem was that the calculation of the difference between the time of entry and exit was done inside the loop, and therefore it was added multiple times in the case in which multiple "Entrance" and "Exit" records were present for the same user.

Moving the calculation of nTotalTime out of the Do While loop is definitely the correct solution, because you only need to calculate the difference between the entry and exit once for each login session]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45405&p=277607#p277607 Wed, 12 Feb 2025 02:20:11 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45405&p=277607#p277607
<![CDATA[FiveWin for Harbour/xHarbour :: Using Ollama + Microsoft Phi4 AI from [x]Harbour+FWH :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45406&p=277608#p277608

Code: Select all | Expand

// from cmd run: ollama serve

#include "FiveWin.ch"

static oChat, oOutput
static nStartTime, nTokenCount

function Main()

   local oDlg, cOutput := "", oBtn, oFont
   local oPrompt, cPrompt := Space( 100 )
   
   oChat = TOLlama():New( "phi4" ) 
   FW_SetUnicode( .T. )
   
   DEFINE FONT oFont NAME "system-ui" SIZE 0, -16 BOLD

   DEFINE DIALOG oDlg TITLE "Ollama Phi4" SIZE 1200, 600

   @ 5.5, 0.7 GET oOutput VAR cOutput MULTILINE SIZE 590, 200 READONLY FONT oFont

   @ 18.7, 1 SAY "Prompt:" 
   @ 21.5, 4 GET oPrompt VAR cPrompt SIZE 510, 15 
   @ 15.5, 92 BUTTON oBtn PROMPT "Send" SIZE 40, 15 ACTION SendPrompt( cPrompt, oOutput, oBtn, oPrompt ) DEFAULT
   
   ACTIVATE DIALOG oDlg CENTERED

   oChat:End()
   oFont:End()

return nil

function SendPrompt( cPrompt, oOutput, oBtn, oPrompt )

   local cToken

   nStartTime = Seconds()  
   nTokenCount = 0  

   oBtn:Disable()
   oChat:SendStream( AllTrim( cPrompt ), { | cBuffer | ShowTokens( cBuffer ) } )
   ShowTokenStats()
   oBtn:Enable()
   oPrompt:SetFocus()
    
return nil    

function ShowTokens( cBuffer )

    local hResponse 
    
    hb_jsonDecode( cBuffer, @hResponse )

    oOutput:Append( hResponse[ "message" ][ "content" ] )
    nTokenCount++
    SysRefresh()

return nil    

function ShowTokenStats()

    local nElapsedTime := Seconds() - nStartTime
    local nTokensPerSecond := iif(nElapsedTime > 0, nTokenCount / nElapsedTime, 0)
 
    oOutput:Append( StrTran( "Tokens por segundo: " + Str( nTokensPerSecond, 10, 2 ), ".", "," ) )
    SysRefresh()
 
 return nil
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45406&p=277608#p277608 Wed, 12 Feb 2025 02:29:29 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45406&p=277608#p277608
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Using Ollama + Microsoft Phi4 AI from [x]Harbour+FWH :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45406&p=277609#p277609 Rankings
Image
Image]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45406&p=277609#p277609 Wed, 12 Feb 2025 02:50:12 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45406&p=277609#p277609
<![CDATA[FiveWin for Harbour/xHarbour :: Re: FTP Best Options ? :: Reply by Eroni]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=42866&p=277612#p277612 I am using this code from Otto to upload a file pdf to my ftp site.
Looks like the file is sended but with zero bytes. The file is showed when I open the directory by Filezila, but with zero bytes. And the function FTPPUTFILE returns false.
Any ideas?
Thanks in advance.
Otto wrote: Sat Mar 04, 2023 2:16 am Hello Tim,

I am working on the same problem right now.
FTP should be replaced with secure FTP.
I don't have an example here yet.

For FTP I use the following function.

I wanted to change now unlike you to cURL: https:// and send with cURL.

curl --cacert /path/to/cacert.pem https://example.com

But I get this error: SSL certificate verify result: unable to get local issuer certificate (20)

Do you send with cURL and https?

Best regards,
Otto

Code: Select all | Expand


function download()
   local oInternet := TInternet():New()
   local oFTP := TFTP():New( "192.168.0.230", oInternet,"remanco", "pwremanco" )
   local aFiles
   local handle
   *----------------------------------------------------------

   if ! Empty( oFTP:hFTP )

      FtpSetCurrentDirectory(oFTP:hFTP, "/usr/cheshire/boh/")

      aFiles = oFTP:Directory("rms.dat" )

      IF len(aFiles) > 0
            AEval( aFiles, { | aFile | FtpGetFile ( oFTP:hFTP, aFile[ 1 ], "c:\remanco\" + aFile[ 1 ] ,.t.,0,0,0 )  } )
      ENDIF

   else
        //  MsgAlert( "oFTP:hFTP is null" )
   endif

   oInternet:End()

return nil




function f_senden( cDatei )
   local oInternet := TInternet():New()
   local oFTP := TFTP():New( "ftp.test.info", oInternet, "salettainfo", "pwsaletta" )
   local aInfo := {}
   local I := 0
   local cAktivInfoDir := Setup():AppPath + "report" //Setup():Daten() + "\xReport"
 
   *----------------------------------------------------------

   if Empty( oFTP:hFTP )
      MsgStop( "Cannot connect to the specified FTP site!" )
      return nil
   endif



   if ! Empty( oFTP:hFTP )

      select EMPFAREP
      do while .not. eof()

            if  FTPPUTFILE(  oFTP:hFTP,  cAktivInfoDir + "\"+ cDatei, "/salettainfo/AktivInfo/1" + Alltrim(EMPFAREP->email)  , 0, 0 ) = .t.

            else
               msginfo("konnte nicht gesendet werden:   "   +   cAktivInfoDir + "\" + cDatei + CRLF +;
                  "/salettainfo/AktivInfo/" + cDatei  )
            endif

         select EMPFAREP
         skip
      enddo
   else

      MsgAlert( "oFTP:hFTP is null" )

   endif


   ferase (  cAktivInfoDir + "\" + cDatei)

   oInternet:End()
    logfile( "aktivInfo.log", {  "nach senden ", } )
return nil
//----------------------------------------------------------------------------//

]]>
no_email@example.com (Eroni) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=42866&p=277612#p277612 Wed, 12 Feb 2025 06:03:55 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=42866&p=277612#p277612
<![CDATA[FiveWin for Harbour/xHarbour :: activate an online button :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45410&p=277627#p277627

Code: Select all | Expand

 DEFINE BUTTONBAR oBar OF oDlg  SIZE 100,70  TOP NOBORDER  2015
then on activate I cal the functions

Code: Select all | Expand

Btnbar(1,oDlg:oBar,oDlg,oDbf,oBrw,aBtnBrow[4]),;
to activate the buttonbar oBar (different menu barchange.prg thanks to Cristobal )

but the button number 6 is hided at init

and then the function Hide_Radio2(oRadio2,.f.,oSay,oLines,oBar) to show or not the button number 6

but when I try to make oBar:aControls[6]:show()

Code: Select all | Expand

 
 Error description: Error BASE/1004  Metodo non disponibile: ACONTROLS
   Args:
     [   1] = U   

Stack Calls
===========
   Called from: source\PConti.prg => ACONTROLS( 0 )
   Called from: source\PConti.prg => HIDE_RADIO2( 681 )
   
   
It tells me it can't find the aControls method.....why ?


please try this small test

Code: Select all | Expand

// developed by Cristobal Navarro

#include 'fivewin.ch'
#include 'xbrowse.ch'
#include "constant.ch"

Function test()

   local oDlg,oDbf,oFont
   local oBar

   local  nBottom   := 27.2
   local  nRight    := 89
   local  nWd       := Max( nRight * DLG_CHARPIX_W, 180 )
   local  nHt       := nBottom * DLG_CHARPIX_H

   DEFINE DIALOG oDlg SIZE nWd, nHt PIXEL TRUEPIXEL;
         TiTle "test"
      oDlg:lHelpIcon := .F.      

   @ 90,  10 Button "Second bar" size 100,18 PIXEL OF oDlg action Btnbar(2,oDlg:oBar,oDlg)
   @ 90, 200 Button "First bar"  size 100,18 PIXEL OF oDlg action Btnbar(1,oDlg:oBar,oDlg)

   @ 90, 400 Button "hide/show button"  size 100,18 PIXEL OF oDlg action Hide_button(oDlg:oBar)

   ACTIVATE DIALOG oDlg  CENTER   ;
          ON INIT ( Btnbar(0,oBar,oDlg), Btnbar(1,oDlg:oBar,oDlg ))
RETURN NIL

//----------------------------------------------------------------------------//

Function Btnbar(nBar,oBar,oDlg)  // ,aBtnBar

   local aBtnBar
   local x

   if Valtype( oBar ) = "O"
      For x := Len( oBar:aControls ) to 1 step - 1
         oBar:Del( x )
      Next x
   endif

  Do case
  case nbar = 0
     DEFINE BUTTONBAR oBar OF oDlg  SIZE 80,70  TOP NOBORDER  2015

  case nbar = 1
   aBtnBar := array(6)
   DEFINE BUTTON aBtnBar[1] OF oBar PROMPT "New"       action msginfo()
   DEFINE BUTTON aBtnBar[2] OF oBar PROMPT "Modify"    action msginfo()
   DEFINE BUTTON aBtnBar[3] OF oBar PROMPT "Duplicate" action msginfo()
   DEFINE BUTTON aBtnBar[4] OF oBar PROMPT "Del"       action msginfo()
   DEFINE BUTTON aBtnBar[5] OF oBar PROMPT "Print"     action msginfo()
   DEFINE BUTTON aBtnBar[6] OF oBar PROMPT "Help"      action msginfo("Help")
   
              aBtnBar[6]:hide()
              
  case nbar = 2
   aBtnBar := array(2)
   DEFINE BUTTON aBtnBar[1] OF oBar PROMPT "Del"       action msginfo("Del")
   DEFINE BUTTON aBtnBar[2] OF oBar PROMPT "Print"     action msginfo("Print")

  endcase

return oBar

//----------------------------------------------------------------------------//


Function Hide_button(oBar)
        oBar:arcontrols[6]:show()
   return nil

]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45410&p=277627#p277627 Wed, 12 Feb 2025 16:16:35 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45410&p=277627#p277627
<![CDATA[FiveWin for Harbour/xHarbour :: Re: activate an online button :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45410&p=277634#p277634
ON INIT ( Btnbar(0,@oBar,oDlg), Btnbar(1,oDlg:oBar,oDlg ))]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45410&p=277634#p277634 Wed, 12 Feb 2025 22:37:09 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45410&p=277634#p277634
<![CDATA[FiveWin for Harbour/xHarbour :: Re: activate an online button :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45410&p=277635#p277635 no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45410&p=277635#p277635 Wed, 12 Feb 2025 23:28:48 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45410&p=277635#p277635 <![CDATA[FiveWin for Harbour/xHarbour :: Show, hide of the frame :: Author Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45413&p=277638#p277638 no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45413&p=277638#p277638 Thu, 13 Feb 2025 01:52:52 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45413&p=277638#p277638 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Show, hide of the frame :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45413&p=277639#p277639
You can not change standard attributes of all windows as they are controlled by the operating system.

Anyhow, as a workaround, please review samples\skin1.prg and samples\skin2.prg]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45413&p=277639#p277639 Thu, 13 Feb 2025 02:06:55 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45413&p=277639#p277639
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Show, hide of the frame :: Reply by Natter]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45413&p=277640#p277640 no_email@example.com (Natter) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45413&p=277640#p277640 Thu, 13 Feb 2025 02:26:42 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45413&p=277640#p277640 <![CDATA[FiveWin for Harbour/xHarbour :: sintax error for a filter :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45415&p=277656#p277656
cFilter:= "MARRIED='.T.'"

Image

Code: Select all | Expand

rror description: Error BASE/1071  Argument error: =
   Args:
     [   1] = L   .T.
     [   2] = C   .T.

Stack Calls
===========
   Called from: .\source\classes\database.prg => (b)COMPILE( 1305 )
he tells me it's wrong why?]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45415&p=277656#p277656 Thu, 13 Feb 2025 13:50:47 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45415&p=277656#p277656
<![CDATA[FiveWin for Harbour/xHarbour :: Re: sintax error for a filter :: Reply by MaxP]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45415&p=277662#p277662
if MARRIED field is logical type

Code: Select all | Expand

cFilter:= "MARRIED=.T."
Massimo]]>
no_email@example.com (MaxP) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45415&p=277662#p277662 Fri, 14 Feb 2025 03:11:20 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45415&p=277662#p277662
<![CDATA[FiveWin for Harbour/xHarbour :: Re: sintax error for a filter :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45415&p=277663#p277663
MaxP wrote: Fri Feb 14, 2025 10:11 am Hi Silvio,

if MARRIED field is logical type

Code: Select all | Expand

cFilter:= "MARRIED=.T."
Massimo
Sorry I found the solution tonight]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45415&p=277663#p277663 Fri, 14 Feb 2025 03:18:16 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45415&p=277663#p277663
<![CDATA[FiveWin for Harbour/xHarbour :: set check menu opoup from btnbmp :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45417&p=277667#p277667
look this small sample

Code: Select all | Expand

#include "fivewin.ch"

function Main()

   local oDlg, aBtn[ 4 ]

   DEFINE DIALOG oDlg SIZE 600,300 PIXEL TRUEPIXEL

   @ 40,180 BTNBMP aBtn[ 2 ] PROMPT "btnbmp" SIZE 100,40 PIXEL OF oDlg CENTER ;
      ACTION ::ShowPopUp( PopupObject( Self ) )

   ACTIVATE DIALOG oDlg CENTERED

return nil

function PopupObject(oBtn)

   local oPop

   MENU oPop POPUP
      MENUITEM "One"   ACTION test(oPop,oBtn);
      CHECKED

      MENUITEM "Two"
   ENDMENU

return oPop


Function test(oPop,oBtn)
   local n
   Msginfo("change")
   
for n=1 to len(oPop:aItems)
oPop:aItems[n]:SetCheck(.f.)
next n

oBtn:refresh()

return nil





  
and I wish checked a item of this menu How I must make ?

it not found aItems

If I make oPop:aItems[2]:SetCheck(.t.)

not run make error]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45417&p=277667#p277667 Fri, 14 Feb 2025 04:53:41 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45417&p=277667#p277667
<![CDATA[FiveWin for Harbour/xHarbour :: Odbc error on Linux :: Author Massimo Linossi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45418&p=277672#p277672 I wish to ask you a suggestion to find the I am making an error.
This bash on a Linux machine works perfectly. Using a command-line utility from MS I can extract some records from another server with SQL-Server.

Code: Select all | Expand

#!/bin/bash
cUser='admin'
cPass='Max61'
cServer='125.15.13.12'
cQuery="SELECT ut codice_cliente, rag nominativo, cf codice_fiscale, piv partita_iva FROM ute WHERE rag like '%MAX%'"
/opt/mssql-tools18/bin/sqlcmd -S $cServer -U $cUser -P $cPass -d BEG_DATI -p -Q "$cQuery" -C
exit 0
This code made on harbour on the same machine gives ERROR BASE/0 Parameter error: SQLCONNECT

Code: Select all | Expand

#require "hbodbc"
***********************************
Function Main()

LOCAL cConnString, hDbc, hStmt, cQuery, cResult, nFetch 

REQUEST HB_LANG_IT
HB_LANGSELECT("IT")
REQUEST DBFCDX
REQUEST DBFFPT
RddRegister( "DBFCDX", 1 )
RddSetDefault("DBFCDX")
SET(_SET_AUTORDER,1)
SET AUTOPEN ON

SET DATE BRITISH
SET DELETED ON
SET CENTURY ON
SET EPOCH TO YEAR(DATE())

// Define the ODBC connection string (replace with your actual details)
cConnString := "Driver={ODBC Driver 18 for SQL Server};Server=125.15.13.12;Database=SQL_DATI;UID=admin;PWD=Max61;"

// Initialize the connection handle (hDbc) using SQLConnect
hDbc := SQLConnect( cConnString )

// Check if the connection was successful

IF hDbc == NIL
    ? "Connection failed!"
    RETURN
ENDIF
   
Return nil 
Thanks a lot for your attention.
Massimo]]>
no_email@example.com (Massimo Linossi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45418&p=277672#p277672 Fri, 14 Feb 2025 08:47:53 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45418&p=277672#p277672
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Odbc error on Linux :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45418&p=277675#p277675
https://www.linuxquestions.org/question ... 175642938/

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45418&p=277675#p277675 Fri, 14 Feb 2025 09:06:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45418&p=277675#p277675
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Odbc error on Linux :: Reply by Massimo Linossi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45418&p=277680#p277680 But the problem is that I don't understand where is the error in the ODBC connection string for SQL-SERVER.
Using the MS connection utility works perfectly so the ODBC is correct.
Massimo]]>
no_email@example.com (Massimo Linossi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45418&p=277680#p277680 Fri, 14 Feb 2025 12:09:55 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45418&p=277680#p277680
<![CDATA[FiveWin for Harbour/xHarbour :: Send e-mail (CDO) server SMTP GMAIL with oAuth2 :: Author mauri.menabue]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45399&p=277549#p277549 I need help to be able to send emails from one of my FiveWin 32 bit applications
through the use of one or more gmail SMTP servers with recent oAuth2 authentication.
On the English forum Antonio replies, however, the code provided is pseudo code provided by deepseek and not
I have the experience needed to turn it into production-usable code.
Thanks to everyone Maurizio Menabue]]>
no_email@example.com (mauri.menabue) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45399&p=277549#p277549 Sun, 09 Feb 2025 07:16:46 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45399&p=277549#p277549
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Send e-mail (CDO) server SMTP GMAIL with oAuth2 :: Reply by Lailton]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45399&p=277579#p277579
We will provide support for the oAuth2 on the next version FWH
with samples to send e-mail using GMail/Outlook(Office365).]]>
no_email@example.com (Lailton) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45399&p=277579#p277579 Mon, 10 Feb 2025 21:30:22 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45399&p=277579#p277579
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Send e-mail (CDO) server SMTP GMAIL with oAuth2 :: Reply by mauri.menabue]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45399&p=277590#p277590
TIA]]>
no_email@example.com (mauri.menabue) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45399&p=277590#p277590 Tue, 11 Feb 2025 09:15:29 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45399&p=277590#p277590
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Send e-mail (CDO) server SMTP GMAIL with oAuth2 :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45399&p=277597#p277597
Lailton wrote: Tue Feb 11, 2025 4:30 am Hi Maurizio,

We will provide support for the oAuth2 on the next version FWH
with samples to send e-mail using GMail/Outlook(Office365).
Outlook 2010 too?]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45399&p=277597#p277597 Tue, 11 Feb 2025 13:55:31 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45399&p=277597#p277597
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Send e-mail (CDO) server SMTP GMAIL with oAuth2 :: Reply by Lailton]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45399&p=277687#p277687 Soon I will share some screen here. :D]]> no_email@example.com (Lailton) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45399&p=277687#p277687 Fri, 14 Feb 2025 21:12:50 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45399&p=277687#p277687 <![CDATA[FiveWin for Harbour/xHarbour :: xhb 1.31 xcc :: Author jair]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277610#p277610 I really need xharbour latest version compiled with xcc is there anyone here who can compile this xcc version of xharbour 1.31]]> no_email@example.com (jair) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277610#p277610 Wed, 12 Feb 2025 04:50:57 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277610#p277610 <![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277613#p277613
Could you please explain why you need to use xcc ? thanks]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277613#p277613 Wed, 12 Feb 2025 06:18:10 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277613#p277613
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by jair]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277621#p277621 Image
Sin fronteras:
Image

Tengo un sistema compilado con xharbour comercial xcc 1.22 y sqlrdd. Intenté compilar con el xharbour simple bcc77, pero me generó una cantidad muy grande de errores, imposibilitando el cambio de xhb 1.22 a xharbour, sin contar que aún usan tvget y otros componentes de terceros. Compilé con xharbour 1.30 con él, pero tiene SAY y GET que, en varias pantallas, necesitan ser transparentes y presentar bordes, generando un problema de que, si no pongo los bordes, la información se ve muy borrosa, y si pongo los bordes a presentar, se dañan los bordes, ya que las pantallas de estos sistemas son genéricas.
e geradas apartir de dicionarios de dados ou seja as definicoes podem ser feitas pelo usuario inclusive ai gerar um problema que os get sobrepoem a area reservada para os campos SAY ja tentei resolver de varias maneiras mais nao deu certo o ideal seria que funcionasse bcc77 e xharbour simples mais nao funcioa de o caminho mais pratico em vista a grande numero de alteracoes necessarias para funcionar com bcc77 seria funcioanr na versao xcc mesmo que ai sim teria o minumo possivel o quase nenhuma alteração.
y generados a partir de diccionarios de datos, es decir, las definiciones las puede hacer el usuario, incluso generando un problema donde el get se superpone al área reservada para los campos SAY. He intentado solucionarlo de varias formas pero no ha funcionado. Lo ideal sería que funcionara en bcc77 y xharbour simple, pero no funciona. Lo más práctico, en vista de la gran cantidad de cambios necesarios para trabajar con bcc77, sería trabajar en la versión xcc, aunque entonces habría los mínimos cambios posibles o casi ninguno.]]>
no_email@example.com (jair) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277621#p277621 Wed, 12 Feb 2025 11:14:35 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277621#p277621
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by jair]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277622#p277622 Ya en la versión 1.31 nuestro gran amigo Enrico cambió]]> no_email@example.com (jair) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277622#p277622 Wed, 12 Feb 2025 11:40:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277622#p277622 <![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277623#p277623 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277623#p277623 Wed, 12 Feb 2025 13:03:16 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277623#p277623 <![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277624#p277624 no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277624#p277624 Wed, 12 Feb 2025 13:36:15 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277624#p277624 <![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277625#p277625
It is included in the xHarbour commercial demo

I am emailing it to you]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277625#p277625 Wed, 12 Feb 2025 14:08:25 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277625#p277625
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277641#p277641
jair wrote: Wed Feb 12, 2025 11:50 am Good morning!
I really need xharbour latest version compiled with xcc is there anyone here who can compile this xcc version of xharbour 1.31
Do you have a working version of XCC? The one I tried is too old:
Pelles ISO C Compiler, Version 3.00.0 (Beta)
Copyright (c) Pelle Orinius 1999-2005
]]>
no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277641#p277641 Thu, 13 Feb 2025 04:19:20 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277641#p277641
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277642#p277642 https://smorgasbordet.com/pellesc/]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277642#p277642 Thu, 13 Feb 2025 04:26:12 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277642#p277642 <![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277643#p277643 no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277643#p277643 Thu, 13 Feb 2025 05:04:03 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277643#p277643 <![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by jair]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277644#p277644 http://www.xharbour.org/files/download/ ... 72_xcc.zip

Good morning!
I am using the
compilation that
there is this link here]]>
no_email@example.com (jair) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277644#p277644 Thu, 13 Feb 2025 06:09:25 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277644#p277644
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277645#p277645
XCC -D__WIN32__ -D_HAVE_SQLITE_CONFIG_H -DHAVE_CONFIG_H -DHARBOUR_CONF -DOPENSSL_NO_DEPRECATED -DHB_NO_DV_MEMCPY -DHB_NO_BACKGROUND -DHB_GUI -D__XCC__ -DNEED_DUMMY_RETURN -DNULL=0 -DMINILZO_HAVE_CONFIG_H -W2 -I"source\rtl\zlib" -I"contrib\pdflite\include" -I"contrib\png" -I"contrib\tiff" -I"contrib\jpeg" -I"include" -I"e:\fw\xcc\include" -I"obj\xc" -I"contrib\sixapi\include" -I"contrib\freeimage\include" -I"contrib\gd\include" -I"contrib\xwt\include" -I"contrib\xwt\src\xwt_win" -I"e:\fw\xcc\include\win" -Ze -Zx -Tx86-coff -W2 -Foobj\xc\pngrutil.obj contrib\png\pngrutil.c
contrib\png\pngrutil.c(1100): warning #2118: Parameter 'info_ptr' is not referenced.
contrib\png\pngrutil.c(3349): fatal error: Internal error: put_tokens.

This is line 3349:

Code: Select all | Expand

         static PNG_CONST png_uint_32 row_mask[2/*PACKSWAP*/][3/*depth*/][6] =
         {
            /* Little-endian byte masks for PACKSWAP */
            { S_MASKS(1,0), S_MASKS(2,0), S_MASKS(4,0) },  <--- LINE 3349
            /* Normal (big-endian byte) masks - PNG format */
            { S_MASKS(1,1), S_MASKS(2,1), S_MASKS(4,1) }
         };
I don't understand the problem. The function put_token is inside the compiler XCC itself.]]>
no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277645#p277645 Thu, 13 Feb 2025 06:21:41 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277645#p277645
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277646#p277646
https://github.com/xHarbour-org/xharbou ... ourBuilder

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277646#p277646 Thu, 13 Feb 2025 09:28:36 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277646#p277646
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277652#p277652 no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277652#p277652 Thu, 13 Feb 2025 11:43:26 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277652#p277652 <![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277661#p277661

Code: Select all | Expand

xLINK: error: Unresolved external symbol '_xCCGetLargestConsoleWindowSize referenced from gtwin.lib(gtwin.obj)'.
Definitely something's wrong... :-(]]>
no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277661#p277661 Fri, 14 Feb 2025 02:45:53 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277661#p277661
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277666#p277666
Are you linking xhb.lib ? It seems to be there (maybe used or exported)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277666#p277666 Fri, 14 Feb 2025 04:49:55 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277666#p277666
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277670#p277670 no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277670#p277670 Fri, 14 Feb 2025 08:31:55 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277670#p277670 <![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277671#p277671
https://learn.microsoft.com/en-us/windo ... windowsize

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277671#p277671 Fri, 14 Feb 2025 08:41:58 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277671#p277671
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277674#p277674 ]]> no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277674#p277674 Fri, 14 Feb 2025 09:05:55 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277674#p277674 <![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by jair]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277683#p277683 Según la persona que escribió esto, de esta manera podría generar la versión xhb para xcc

git clone https://github.com/xHarbour-org/xharbour.git\xharbour2

C:\Program Files\Microsoft Visual Studio\2022\Community

abre uma janela dos, e cola esse comando :
set XBUILD_VC8=YES
cd \xharbour
make_vc.bat
cd \xharbour\xHarbourBuilder\xHarbour-Builder
xbldfull

comando :
set XBUILD_VC8=YES && cd \xharbour && make_vc.bat && cd \xharbour\xHarbourBuilder\xHarbour-Builder && xbldfull]]>
no_email@example.com (jair) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277683#p277683 Fri, 14 Feb 2025 12:47:06 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277683#p277683
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277684#p277684
https://github.com/FiveTechSoft/harbour ... vc2022.zip]]>
no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277684#p277684 Fri, 14 Feb 2025 13:27:35 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277684#p277684
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xhb 1.31 xcc :: Reply by jair]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277694#p277694 El sistema actual es con xcc 1.22 y five win año 2010 necesito generar una compilación con la nueva versión de five win para cambiar la base de datos de sqlrdd al sql nativo de fivewin mariadb.]]> no_email@example.com (jair) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277694#p277694 Sat, 15 Feb 2025 13:33:22 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45407&p=277694#p277694 <![CDATA[FiveWin for Harbour/xHarbour :: Text scroll and time graph :: Author JoséQuintas]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45400&p=277565#p277565 Image

Image is my MySQL backup from harbour.
I do not think how to do this on fivewin.

Graph routine is simple, I update each second, to do not slow proccess.

Code: Select all | Expand

/*
ZE_GRAFTEMPO - GRAFICOS DE PROCESSAMENTO
1990.05 - José Quintas
*/

#include "inkey.ch"
#include "set.ch"

#define GRAFMODE 1
#define GRAFTIME 2
#define GRAF_SEC_OLD  1
#define GRAF_SEC_INI  2
#define GRAF_TXT_BAR  3
#define GRAF_TXT_TEXT 4

FUNCTION GrafProc( nRow, nCol )

   THREAD STATIC GrafInfo := { 1, "X" }
   LOCAL mSetDevice

   hb_Default( @nRow, MaxRow() - 1 )
   hb_Default( @nCol, MaxCol() - 2 )
   IF GrafInfo[ GRAFTIME ] != Time()
      mSetDevice := Set( _SET_DEVICE, "SCREEN" )
      @ nRow, nCol SAY "(" + Substr( "|/-\", GrafInfo[ GRAFMODE ], 1 ) + ")" COLOR SetColorMensagem()
      GrafInfo[ GRAFMODE ] = iif( GrafInfo[ GRAFMODE ] == 4, 1, GrafInfo[ GRAFMODE ] + 1 )
      Set( _SET_DEVICE, mSetDevice )
      GrafInfo[ GRAFTIME ] := Time()
   ENDIF

   RETURN .T.

FUNCTION GrafTempo( xContNow, xContTotal )

   THREAD STATIC aStatic := { 0, 0, "", "" }
   LOCAL nSecondsNow, nSecondsRemaining, nSecondsElapsed, nCont, nPos, cTxt, cCorAnt
   LOCAL nPercent, cTexto, mSetDevice

   xContNow := iif( xContNow == NIL, "", xContNow )
   IF Empty( aStatic[ GRAF_TXT_BAR ] )
      aStatic[ GRAF_TXT_BAR ] := Replicate( ".", MaxCol() )
      FOR nCont = 1 to 10
         nPos := Int( Len( aStatic[ GRAF_TXT_BAR ] ) / 10 * nCont )
         cTxt := lTrim( Str( nCont, 3 ) ) + "0%" + Chr(30)
         aStatic[ GRAF_TXT_BAR ] := Stuff( aStatic[ GRAF_TXT_BAR ], ( nPos - Len( cTxt ) ) + 1, Len( cTxt ), cTxt )
      NEXT
      aStatic[ GRAF_TXT_BAR ] := Chr(30) + aStatic[ GRAF_TXT_BAR ]
   ENDIF
   mSetDevice := Set( _SET_DEVICE, "SCREEN" )
   DO CASE
   CASE ValType( xContNow ) == "C"
      cTexto                  := xContNow
      aStatic[ GRAF_SEC_INI ] := Int( Seconds() )
   CASE xContTotal == NIL
      nPercent := xContNow
   CASE xContNow >= xContTotal
      nPercent := 100
   CASE xContTotal == 0
      nPercent := 0
   OTHERWISE
      nPercent := xContNow / xContTotal * 100
   ENDCASE
   xContNow   := iif( ValType( xContNow ) != "N", 0, xContNow )
   xContTotal := iif( ValType( xContTotal ) != "N", 0, xContTotal )

   cCorAnt := SetColor()
   SetColor( SetColorMensagem() )
   nSecondsNow := Int( Seconds() )
   IF nPercent == NIL
      aStatic[ GRAF_SEC_OLD ] := nSecondsNow
      Mensagem()
      @ MaxRow(), 0 SAY aStatic[ GRAF_TXT_BAR ]
      aStatic[ GRAF_TXT_TEXT ] := cTexto

   ELSEIF nPercent == 100 .OR. ( nSecondsNow != aStatic[ GRAF_SEC_OLD ] .AND. nPercent != 0 )
      aStatic[ GRAF_SEC_OLD ] := nSecondsNow
      nSecondsElapsed   := nSecondsNow - aStatic[ GRAF_SEC_INI ]
      DO WHILE nSecondsElapsed < 0
         nSecondsElapsed += ( 24 * 3600 ) // Acima de 24 horas
      ENDDO
      nSecondsRemaining := nSecondsElapsed / nPercent * ( 100 - nPercent )
      @ MaxRow()-1, 0 SAY aStatic[ GRAF_TXT_TEXT ] + " " + Ltrim( Transform( xContNow, PicVal(14,0) ) ) + "/" + Ltrim( Transform( xContTotal, PicVal(14,0) ) )
      cTxt := "Gasto:"
      cTxt += " " + Ltrim( Str( Int( nSecondsElapsed / 3600 ), 10 ) ) + "h"
      cTxt += " " + Ltrim( Str( Mod( Int( nSecondsElapsed / 60 ), 60 ), 10, 0 ) ) + "m"
      cTxt += " " + Ltrim( Str( Mod( nSecondsElapsed, 60 ), 10, 0 ) ) + "s"
      cTxt += Space(3)
      cTxt += "Falta:"
      cTxt += " " + Ltrim( Str( Int( nSecondsRemaining / 3600 ), 10 ) ) + "h"
      cTxt += " " + Ltrim( Str( Mod( Int( nSecondsRemaining / 60 ), 60 ), 10, 0 ) ) + "m"
      cTxt += " " + Ltrim( Str( Mod( nSecondsRemaining, 60 ), 10, 0 ) ) + "s"
      @ Row(), Col() SAY Padl( cTxt, MaxCol() - Col() - 4 )
      GrafProc()
      @ MaxRow(), 0 SAY Left( aStatic[ GRAF_TXT_BAR ], Len( aStatic[ GRAF_TXT_BAR ] ) * nPercent / 100 ) COLOR SetColorFocus()
   ENDIF
   SetColor( cCorAnt )
   SET( _SET_DEVICE, mSetDevice )

   RETURN .T.
I can use automatic as example:

Code: Select all | Expand

USE ( file )
GrafTempo( "processing" )
DO WHILE ! Eof()
   GrafTempo( RecNo(), LastRec() )
   SKIP
ENDDO
or

Code: Select all | Expand

USE ( file )
INDEX ON field->x FOR GrafTempo( RecNo(), LastRec() )
or manual

Code: Select all | Expand

USE ( File ) INDEX ( file )
nAtual := 0
nTotal := LastRec()
DO WHILE ! Eof()
   GrafTempo( nAtual++, nTotal )
   SKIP
ENDDO
Image

On minigui I use windows type panel, to me it is like an user control.
It is simple too.

main dialog

Code: Select all | Expand


#include "hmg.ch"
#include "i_altsyntax.ch"

REQUEST HB_CODEPAGE_PTISO

PROCEDURE Main

   LOCAL oControl, aControlList := Array(6), nColor, nRow
   LOCAL nCurrent := 0, nTotal := 100, xDlg := "A"

   DEFINE WINDOW (xDlg) ;
      ROW 0 COL 0 ;
      WIDTH 1024 HEIGHT 768 ;
      TITLE "test" ;
      WINDOWTYPE MAIN ;
      ON INIT SetBackImage( xDlg )

      FOR EACH oControl, nRow, nColor IN aControlList, ;
         { 80, 160, 240, 320, 400, 480 }, ;
         { COLOR_SKYBLUE, COLOR_PERU, COLOR_GOLD, COLOR_VIOLET, COLOR_PEACHPUFF, COLOR_YELLOWGREEN }
         oControl := GraphTime():New( "A", nRow, 10, 500, 50, "working", nColor )
      NEXT

      DEFINE BUTTON BUTTON_1
         ROW      40
         COL      10
         CAPTION      'Click Me!'
         ACTION      AEval( aControlList, { | e | e:SetValues( nCurrent += 2, nTotal ) } )
         DEFAULT      .T.
      END BUTTON

   END WINDOW

   ACTIVATE WINDOW A

   RETURN

FUNCTION SetBackImage( xDlg )

   LOCAL hBrush

   DoMethod( xDlg, "DISABLEUPDATE" )
   DEFINE BKGBRUSH hBrush PATTERN IMAGE "imw10.png" IN ( xDlg )
   DoMethod( xDlg, "ENABLEUPDATE" )
   (hBrush)

   RETURN Nil
The "user control", using window type panel, and textbox over textbox

Code: Select all | Expand

/*
graphtime - graphic with time calculate
*/

#include "hmg.ch"
#include "i_altsyntax.ch"
#include "i_wincolor.ch"
#include "hbclass.ch"

STATIC nWindow := 1

CREATE CLASS GraphTime

   VAR xDlg
   VAR Parent
   VAR cTimeShow   INIT Time()
   VAR nSecondsInit
   VAR nSecondsOld
   VAR cText
   METHOD New( Parent, nRow, nCol, nWidth, nHeight, cTitle, xColor )
   METHOD SetValues( nCurrent, nTotal )

   ENDCLASS

METHOD SetValues( nCurrent, nTotal ) CLASS GraphTime

   LOCAL nSecNow, nSecElapsed, nSecRemaining, nPercent, nNewWidth, cCaption

   nCurrent := Min( nCurrent, nTotal )
   nSecNow := Int( Seconds() )
   IF nSecNow != ::nSecondsOld .AND. nCurrent != 0
      nNewWidth := Int( GetProperty( ::xDlg, "label1", "WIDTH" ) * nCurrent / nTotal )
      SetProperty( ::xDlg, "label3", "WIDTH", nNewWidth )
      ::nSecondsOld := nSecNow

      nSecElapsed   := nSecNow - ::nSecondsInit
      nSecRemaining := nSecElapsed / nCurrent * ( nTotal - nCurrent )
      nPercent := nCurrent * 100 / nTotal
      SetProperty( ::xDlg, "label1", "VALUE", ;
         Ltrim( Str( nCurrent ) ) + "/" + Ltrim( Str( nTotal ) ) + " " + ;
         "Elapsed " + SecToTime( nSecElapsed ) + ;
         " Remain " + SecToTime( nSecRemaining ) )
      cCaption := ::cText + " " + Ltrim( Str( nPercent ) ) + "%"
      SetProperty( ::xDlg, "label2", "VALUE", cCaption )
      SetProperty( ::xDlg, "label3", "VALUE", cCaption )
   ENDIF

   RETURN Nil

METHOD New( Parent, nRow, nCol, nWidth, nHeight, cTitle, xColor ) CLASS GraphTime

   ::cText := cTitle
   ::Parent := Parent
   ::nSecondsInit := Int( Seconds() )
   ::nSecondsOld  := Int( Seconds() )
   ::xDlg := "GTIME" + StrZero( nWindow++, 3 )

   DEFINE WINDOW ( ::xDlg ) ;
      ROW nRow ;
      COL nCol ;
      WIDTH nWidth ;
      HEIGHT nHeight ;
      WINDOWTYPE PANEL

      DEFINE LABEL ( "label1" )
         PARENT ( ::xDlg )
         ROW 10
         COL 10
         VALUE ""
         BORDER .T.
         WIDTH nWidth - 30
         HEIGHT 20
         BORDER .T.
      END LABEL

      DEFINE LABEL ( "label2" )
         PARENT ( ::xDlg )
         ROW 30
         COL 10
         VALUE ::cText
         BORDER .T.
         WIDTH nWidth - 30
         HEIGHT 20
         BORDER .T.
      END LABEL

      DEFINE LABEL ( "label3" )
         PARENT ( ::xDlg )
         ROW 30
         COL 10
         VALUE ::cText
         WIDTH 1
         HEIGHT 20
         BACKCOLOR xColor
         BORDER .T.
      END LABEL
   END WINDOW

   RETURN Self
At momment I do not know what can be used to anything like this on fivewin.
For Graph and for scroll text.

Note: post routines because they can be a reference to new ones.

For MySQL backup I get quantity and record count.

Code: Select all | Expand

   Mensagem( "Fazendo backup da base SQL" )

   WITH OBJECT cnSQL
      :Execute( "SHOW PROCEDURE STATUS WHERE db = DATABASE()" )
      nTotal += :RecordCount()
      :CloseRecordset()
      :Execute( "SHOW FUNCTION STATUS WHERE db = DATABASE()" )
      nTotal += :RecordCount()
      :CloseRecordset()
      :Execute( "SELECT table_name FROM information_schema.TABLES" + ;
         " WHERE table_schema = " + StringSQL( Lower( AppEmpresaApelido() ) ) + ;
         " AND  TABLE_TYPE = 'BASE TABLE'" )
      DO WHILE ! :Eof()
         nTotal += 1
         oTableRec := cnSQL:ExecuteReturnRS( "SELECT COUNT(*) AS QTD FROM " + cnSQL:String( "table_name" ) )
         nTotal += oTableRec:Fields( "QTD" ):Value
         oTableRec:Close()
         :MoveNext()
      ENDDO
      :CloseRecordset()
   ENDWITH

   GrafTempo( "Backup SQL" )
   nAtual := 0

   hFileOutput := fCreate( "backup" + Str( nBackupFileNum, 1 ) + ".sql", FC_NORMAL )
...
GrafTempo( nAtual, nTotal )
...
Note2: at momment I use table, procedure and function, I will add more types when use them.]]>
no_email@example.com (JoséQuintas) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45400&p=277565#p277565 Mon, 10 Feb 2025 06:46:26 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45400&p=277565#p277565
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Text scroll and time graph :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45400&p=277604#p277604
You may use a Meter to show the progress.

For the text scroll you may use a TScrollPanel or a TXBrowse.

Do you allow the user to move up and down on the scrolled text ?]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45400&p=277604#p277604 Tue, 11 Feb 2025 15:24:36 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45400&p=277604#p277604
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Text scroll and time graph :: Reply by wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45400&p=277689#p277689
hbmk2: Error: Función(es) referenciada, no encontrada, pero desconocida:
SETCOLORMENSAGEM(), MENSAGEM(), PICVAL(), SETCOLORFOCUS()]]>
no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45400&p=277689#p277689 Sat, 15 Feb 2025 10:34:40 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45400&p=277689#p277689
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Text scroll and time graph :: Reply by JoséQuintas]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45400&p=277719#p277719 A workaround:

Code: Select all | Expand

FUNCTION Mensagem( cTexto )
   LOCAL cColorOld
   cColorOld := SetColor()
   hb_Default( @cTexto, "" )
   SetColor( SetColorMensagem() )
   Scroll( MaxRow() - 1, 0, MaxRow(), MaxCol(), 0 )
   @ MaxRow() - 1, 0 SAY cTexto
   SetColor( cColorOld )
   RETURN Nil

FUNCTION SetColorMensagem()
   RETURN "W/N"

FUNCTION SetColorFocus()
   RETURN "W/GR+"

FUNCTION PicVal( nLen, nDec )
   LOCAL cPicture
   hb_Default( @nDec, 0 )
   cPicture := Replicate( "9", nLen )
   cPicture := Ltrim( Transform( Val( cPicture ), "999,999,999,999,999" ) )
   IF nDec != 0
      cPicture += "." + Replicate( "9", nDec )
   ENDIF
   cPicture := "@E " + cPicture
   RETURN cPicture
   
]]>
no_email@example.com (JoséQuintas) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45400&p=277719#p277719 Mon, 17 Feb 2025 07:41:54 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45400&p=277719#p277719
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Text scroll and time graph :: Reply by JoséQuintas]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45400&p=277720#p277720
Antonio Linares wrote: Tue Feb 11, 2025 10:24 pm Do you allow the user to move up and down on the scrolled text ?
On most cases no.
- my server send eletronic factura mail, check new post codes, and others
- application update structures (dbf or mySQL)
- applicatin makes backup/zip of DBF and MySQL
- On application using dbf, I show each file pack/index
- application Import from XMLs - here is interesting up/down, because I inform about changed codes and others
At momment I remember about these ones.]]>
no_email@example.com (JoséQuintas) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45400&p=277720#p277720 Mon, 17 Feb 2025 07:38:22 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45400&p=277720#p277720
<![CDATA[FiveWin for Harbour/xHarbour :: Rick Spence's Clipper 5.2: Power Programmer's Guide :: Author Marcelo Via Giglio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277724#p277724
sorry for the theme, have some body the disk information of the Rick Spence's Clipper 5.2: Power Programmer's Guide book ?

I'm trying to develop a simple TUI software in Linux

regards

Marcelo Via]]>
no_email@example.com (Marcelo Via Giglio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277724#p277724 Mon, 17 Feb 2025 11:22:59 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277724#p277724
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Rick Spence's Clipper 5.2: Power Programmer's Guide :: Reply by TimStone]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277725#p277725
I have the book and the disk ( envelope never opened ).]]>
no_email@example.com (TimStone) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277725#p277725 Mon, 17 Feb 2025 11:31:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277725#p277725
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Rick Spence's Clipper 5.2: Power Programmer's Guide :: Reply by Marcelo Via Giglio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277726#p277726
It is a good book, I recommend you to see.

thanks again

Marcelo Via]]>
no_email@example.com (Marcelo Via Giglio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277726#p277726 Mon, 17 Feb 2025 11:37:10 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277726#p277726
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Rick Spence's Clipper 5.2: Power Programmer's Guide :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277727#p277727
https://linguagemclipper.com.br/downloa ... e_vignette

https://sagierp.com.br/devel/aulas/Harbour2ed.pdf

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277727#p277727 Mon, 17 Feb 2025 12:32:44 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277727#p277727
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Rick Spence's Clipper 5.2: Power Programmer's Guide :: Reply by Marcelo Via Giglio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277728#p277728
I will see the site

Regards

Marcelo]]>
no_email@example.com (Marcelo Via Giglio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277728#p277728 Mon, 17 Feb 2025 13:58:55 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277728#p277728
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Rick Spence's Clipper 5.2: Power Programmer's Guide :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277730#p277730
For a TUI I suggest you to review this one (working on Linux too). Same look and feel as Borland's Turbo Vision.

https://github.com/FiveTechSoft/hbide

Image]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277730#p277730 Tue, 18 Feb 2025 00:59:52 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277730#p277730
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Rick Spence's Clipper 5.2: Power Programmer's Guide :: Reply by Marcelo Via Giglio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277736#p277736
I will check out this project

regards

Marcelo]]>
no_email@example.com (Marcelo Via Giglio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277736#p277736 Tue, 18 Feb 2025 08:37:17 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45429&p=277736#p277736
<![CDATA[FiveWin for Harbour/xHarbour :: Search someone help me :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45416&p=277657#p277657

I would like to create something like this, that is, create the possibility of filtering information in an archive. To do a test I took customer.dbf and I put the possibility of searching for the city, the state, Married or not married, the age, and the salary

Now something works as you can see in the video only the only thing that does not work is that if I cancel a checkbox not in order the xbrowse changes the position but the controls remain and are not deleted.

In the video I tried to cancel the checkboxes according to the initial activation

the changes I need are:
the filter must be cumulative, that is, now it filters individually
when you cancel a checkbox, the procedure, in addition to changing the height of the xbrowse, must make the controls disappear so as to move the controls just below the xbrowse

I was looking for someone who was willing to help me.]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45416&p=277657#p277657 Thu, 13 Feb 2025 15:15:45 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45416&p=277657#p277657
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Search someone help me :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45416&p=277658#p277658
It looks simply great :D]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45416&p=277658#p277658 Thu, 13 Feb 2025 15:12:30 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45416&p=277658#p277658
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Search someone help me :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45416&p=277659#p277659
Antonio Linares wrote: Thu Feb 13, 2025 10:12 pm Dear Silvio,

It looks simply great :D
yes but not run ok

as I explained above:

- the filter must be cumulative, that is, now it filters individually
- when you cancel a checkbox, the procedure, in addition to changing the height of the xbrowse, must make only the relative controls of the checkbox disappear in order to move the controls just below the xbrowse

for example, if are displayed

Age
city
state

and I cancel city

the procedure must change the height of the xbrowse, make the controls relative to "city" disappear and move the controls relative to "age"]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45416&p=277659#p277659 Thu, 13 Feb 2025 15:21:05 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45416&p=277659#p277659
<![CDATA[FiveWin for Harbour/xHarbour :: Re: Search someone help me :: Reply by mauri.menabue]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45416&p=277731#p277731 Maurizio Menabue]]> no_email@example.com (mauri.menabue) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45416&p=277731#p277731 Tue, 18 Feb 2025 02:06:44 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45416&p=277731#p277731 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Search someone help me :: Reply by MMK]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45416&p=277734#p277734 Image]]> no_email@example.com (MMK) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45416&p=277734#p277734 Tue, 18 Feb 2025 06:38:06 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45416&p=277734#p277734 <![CDATA[FiveWin for Harbour/xHarbour :: Re: Search someone help me :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45416&p=277739#p277739
MMK wrote: Tue Feb 18, 2025 1:38 pm Image
This is not what I want to do, it's nice but only the programmer can understand it, instead the example I made to put under the fields and and select the information is useful and functional

I already have a class (Tfilter created by me many years ago) to make filters using logical operators. You can find it in the utilities folders of fwh. But unfortunately it is not functional in the sense that only programmers understand it, ordinary people who have to use the application do not understand it]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45416&p=277739#p277739 Tue, 18 Feb 2025 11:00:39 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45416&p=277739#p277739
<![CDATA[FiveWin for Harbour/xHarbour :: xbrowse multisel :: Author wartiaga]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277706#p277706
How the best way to use multisel in xbrowse? I would not like to use a logical field in the dbf to select or unmark the record as there may be other users using the same record.

Thanks in advance!]]>
no_email@example.com (wartiaga) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277706#p277706 Sun, 16 Feb 2025 17:54:09 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277706#p277706
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xbrowse multisel :: Reply by ShumingWang]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277743#p277743 ::select(1)
::seleect(2)
...
::aseleted stores Eval( ::bBookMark) //nrow

::select(0) clear selected rows ,::aselected:={}

Shuming Wang]]>
no_email@example.com (ShumingWang) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277743#p277743 Tue, 18 Feb 2025 18:55:26 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277743#p277743
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xbrowse multisel :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277752#p277752
wartiaga wrote: Mon Feb 17, 2025 12:54 am Hi,

How the best way to use multisel in xbrowse? I would not like to use a logical field in the dbf to select or unmark the record as there may be other users using the same record.

Thanks in advance!
You must not also use a field on your archive

Code: Select all | Expand

WITH OBJECT oBrw
                    :SetMultiSelectCol()

Image]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277752#p277752 Wed, 19 Feb 2025 02:27:06 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277752#p277752
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xbrowse multisel :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277753#p277753 no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277753#p277753 Wed, 19 Feb 2025 03:38:05 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277753#p277753 <![CDATA[FiveWin for Harbour/xHarbour :: Re: xbrowse multisel :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277754#p277754
Otto wrote: Wed Feb 19, 2025 10:38 am Respect and congratulations – I like the design.
Thanks
Otto, I created my applications with some C5 classes also used by a gentleman on this forum, to avoid being reported for plagiarism I had to change my applications and return to the old tables.


For a sample If I wish not set at init :SetMultiSelectCol() and then I wish select a record from menupopup the procedure can make it but before must insert :SetMultiSelectCol() I ask this to Rao last year and he not answered never for this topic

pratically I asked if I can insert on line the possibility to have :SetMultiSelectCol() into xbrowse


this is one of the many things I never got an answer to]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277754#p277754 Wed, 19 Feb 2025 05:33:25 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277754#p277754
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xbrowse multisel :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277757#p277757

Code: Select all | Expand

// C:\FWH\SAMPLES\MULTSEL.PRG by mister Rao.

#include "FiveWin.Ch"
#include "ord.ch"
#include "xbrowse.ch"
#include "hbcompat.ch"

REQUEST DBFCDX

FUNCTION Main()

   LOCAL oDlg, oBrw, oFont

   XbrNumFormat( 'A', .T. )

   USE CUSTOMER NEW ALIAS "CUST" SHARED VIA "DBFCDX"

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0, - 14 BOLD

   DEFINE DIALOG oDlg SIZE 700, 400 PIXEL FONT oFont

   oDlg:lHelpIcon := .F.

   @ 10, 10 XBROWSE oBrw SIZE - 10, - 10 PIXEL OF oDlg ;
      DATASOURCE "CUST"                                ;
      COLUMNS "FIRST", "CITY", "AGE", "SALARY"         ;
      CELL LINES NOBORDER

   WITH OBJECT oBrw:InsCol( 1 )

      :bEditValue    := {|| AScan( oBrw:aSelected, oBrw:BookMark ) > 0 }
      :SetCheck()
      :nHeadBmpNo    := {|| If( Len( oBrw:aSelected ) == oBrw:nLen, 1, 2 ) }

   END

   WITH OBJECT oBrw

      :nMarqueeStyle := MARQSTYLE_HIGHLROWMS // multisel does the job
      // :nMarqueeStyle := MARQSTYLE_HIGHLROW
      :lMultiSelect  := .F.
      :bClrSelFocus  := {|| { CLR_BLACK, CLR_HGRAY } }
      :nStretchCol   := 3

      :aCols[ 1 ]:bClrSelFocus := {|| {  CLR_BLACK, CLR_WHITE } }

      :bLClicked     := {| r, c, f, oBrw | If( oBrw:MouseColPos( c ) == 1, ;
         If( ( f := AScan( oBrw:aSelected, oBrw:BookMark ) ) == 0,         ;
         AAdd( oBrw:aSelected, oBrw:BookMark ),                            ;
         ADel( oBrw:aSelected, f, .T. ) ), NIL ),                          ;
         oBrw:RefreshCurrent() }

   :CreateFromCode()

   END

   ACTIVATE DIALOG oDlg CENTERED

   RELEASE FONT oFont

RETURN NIL

// FIN / END
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277757#p277757 Wed, 19 Feb 2025 07:22:33 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277757#p277757
<![CDATA[FiveWin for Harbour/xHarbour :: Re: xbrowse multisel :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277759#p277759 viewtopic.php?f=3&t=36106#p215155

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277759#p277759 Wed, 19 Feb 2025 07:27:34 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45426&p=277759#p277759
<![CDATA[FiveWin for Harbour/xHarbour :: New FWH 25.01 :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45433&p=277747#p277747 viewtopic.php?t=45432]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45433&p=277747#p277747 Wed, 19 Feb 2025 01:16:24 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45433&p=277747#p277747 <![CDATA[FiveWin for Harbour/xHarbour :: Re: New FWH 25.01 :: Reply by hua]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45433&p=277749#p277749 no_email@example.com (hua) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45433&p=277749#p277749 Wed, 19 Feb 2025 01:30:18 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45433&p=277749#p277749 <![CDATA[FiveWin for Harbour/xHarbour :: Re: New FWH 25.01 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45433&p=277751#p277751
Not sure if we still support Windows 7]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45433&p=277751#p277751 Wed, 19 Feb 2025 01:38:05 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45433&p=277751#p277751
<![CDATA[FiveWin for Harbour/xHarbour :: Re: New FWH 25.01 :: Reply by Jack]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45433&p=277762#p277762 What about this :
We will provide support for the oAuth2 on the next version FWH
with samples to send e-mail using GMail/Outlook(Office365).

Thanks,

Philippe]]>
no_email@example.com (Jack) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45433&p=277762#p277762 Wed, 19 Feb 2025 08:14:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=3&t=45433&p=277762#p277762
<![CDATA[mod_harbour :: tool for documentation :: Author Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=45376&p=277411#p277411 TreeView for Navigation
Documents are organized hierarchically, similar to an explorer view.
New nodes (e.g., chapters or subchapters) can be easily added.
TinyMCE as an Editor
Content can be edited in rich-text format, allowing for formatting, images, and links.
Structured content such as code snippets, tables, or lists can be seamlessly inserted.
Automated Flowcharts with AI
Instead of drawing flowcharts manually, the system can automatically generate them from process descriptions.
Ideal for documenting workflows, algorithms, or decision processes.
Server-Side Storage with PHP
Created documents and diagrams are stored server-side and can be reloaded at any time.
Versioning or export functions could be added as extensions.
Helpful for the Transition from XBase/Clipper to Web Technologies
Structured documentation makes it easier to analyze older desktop systems and migrate them to web technologies.
The tool is suitable for both technical documentation and the visualization of software and business processes.
The advantage here is that I use HTML to store the documents. This allows me to make the information immediately available via a web browser without needing to change the format.
Next step: Integration of full-text search.

Image]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=45376&p=277411#p277411 Tue, 04 Feb 2025 01:38:20 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=45376&p=277411#p277411
<![CDATA[mod_harbour :: Re: Building modharbour with ADS on Linux :: Reply by Lailton]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277136#p277136
Can you tell me where can I download lib necessary to build?

can you share an example doing the connection and an while?

thank you

giuliano wrote: Mon Jan 20, 2025 8:24 am Hi Lailton ,
i'm using ADS client on Linux machine ( Ubuntu distrib. ) .
My apps connect to ADS SERVER 11 release install on Windows Server-
I use it with Harbour applications and MOD_HARBOUR web site .
Both applications are faster, stable and easy to maintain/config .
I think all of this is compatible with Debian distrib.

Bye
]]>
no_email@example.com (Lailton) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277136#p277136 Wed, 22 Jan 2025 18:19:18 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277136#p277136
<![CDATA[mod_harbour :: Re: Building modharbour with ADS on Linux :: Reply by giuliano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277144#p277144 you need for Harbour application or Mod_Harbour application ?

Bye]]>
no_email@example.com (giuliano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277144#p277144 Thu, 23 Jan 2025 00:45:07 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277144#p277144
<![CDATA[mod_harbour :: Re: Building modharbour with ADS on Linux :: Reply by Lailton]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277167#p277167 no_email@example.com (Lailton) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277167#p277167 Thu, 23 Jan 2025 13:57:20 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277167#p277167 <![CDATA[mod_harbour :: Re: Building modharbour with ADS on Linux :: Reply by giuliano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277384#p277384 I was away for a week.

These are my step to use ADS client with Harbour in Linux OS:

1) Download from GitHub current release of Harbour and clone it in a new folder of your filesystem

git clone https://github.com/harbour/core harbour

2) Install ADS driver

apt-get install perl (if perl not present)

Download ADS driver from advantage website – (no longer available …???)
I use ADS 11 server release – I’ve download ADS driver for Linux many years ago.
Copy driver (tar file or folder already decompressed) into Linux machine and install it with default values (only select correct language). Move in Aceapi (ADS) folder and try:
chmod +x setup.pl
./setup.pl

3) Config. and Make Harbour

Install GCC (if not present): apt-get install gcc
Install MAKE (if not present): apt-get install make
Install libcurl-devel: apt-get install libcurl4-openssl-dev
Install openssl: apt-get install libssl-dev

Move in Harbour folder and digit:

export HB_WITH_PCRE=local
export HB_USER_CFLAGS="-fPIC"
export HB_WITH_CURL=/usr/include
export HB_WITH_OPENSSL=yes
export HB_BUILD_CONTRIBS=

make
make install

Now you’re ready to build a simple prg to connect ADS SERVER

Bye]]>
no_email@example.com (giuliano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277384#p277384 Mon, 03 Feb 2025 06:37:43 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277384#p277384
<![CDATA[mod_harbour :: Re: Building modharbour with ADS on Linux :: Reply by Lailton]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277406#p277406
I was looking for the download ADS but like you said the download is no longer available.]]>
no_email@example.com (Lailton) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277406#p277406 Mon, 03 Feb 2025 20:25:10 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277406#p277406
<![CDATA[mod_harbour :: Re: Building modharbour with ADS on Linux :: Reply by giuliano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277410#p277410 what version of ADS are you using ?

Bye]]>
no_email@example.com (giuliano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277410#p277410 Tue, 04 Feb 2025 00:09:57 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277410#p277410
<![CDATA[mod_harbour :: Re: Building modharbour with ADS on Linux :: Reply by Lailton]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277430#p277430 no_email@example.com (Lailton) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277430#p277430 Tue, 04 Feb 2025 16:03:28 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277430#p277430 <![CDATA[mod_harbour :: Re: Building modharbour with ADS on Linux :: Reply by giuliano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277437#p277437 Bye]]> no_email@example.com (giuliano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277437#p277437 Wed, 05 Feb 2025 00:01:06 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277437#p277437 <![CDATA[mod_harbour :: Re: Building modharbour with ADS on Linux :: Reply by Lailton]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277444#p277444 my email is lailton@paysoft.com.br

Thank you]]>
no_email@example.com (Lailton) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277444#p277444 Wed, 05 Feb 2025 05:54:03 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277444#p277444
<![CDATA[mod_harbour :: Re: Building modharbour with ADS on Linux :: Reply by giuliano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277445#p277445 Bye]]> no_email@example.com (giuliano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277445#p277445 Wed, 05 Feb 2025 06:16:44 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277445#p277445 <![CDATA[mod_harbour :: Re: Building modharbour with ADS on Linux :: Reply by Lailton]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277454#p277454 no_email@example.com (Lailton) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277454#p277454 Wed, 05 Feb 2025 15:12:44 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=44651&p=277454#p277454 <![CDATA[mod_harbour :: UT v2.0 - Open Souce project :: Author Carles]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=45345&p=277185#p277185
I have uploaded all the sources of the UT v.2.0 project to the repository, and it is now released as an MIT project. The time had come, and it was something I had wanted to do for a long time, but the number of pieces to handle and reorganize made me wait for the right moment.

This project is not just a class, a function, or a simple piece of code, but a tool that will help you work on the web in an easy yet highly effective way. We started 5 years ago with mod_harbour in search of that solution, and everything has been changing, evolving, adapting... I believe more than one person will put it to good use. :D

It is now open for anyone who wants to contribute, modify, recompile, or improve it...

https://carles9000.github.io/

Image]]>
no_email@example.com (Carles) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=45345&p=277185#p277185 Fri, 24 Jan 2025 10:08:07 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=45345&p=277185#p277185
<![CDATA[mod_harbour :: Re: UT v2.0 - Open Souce project :: Reply by Taavi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=45345&p=277553#p277553 any ideas what can cause this link error?

Taavi


D:\carles\ut.samples\demo>rem @echo off
D:\carles\ut.samples\demo>set hbdir=d:\carles\ut.harbour
D:\carles\ut.samples\demo>set include=d:\carles\ut.harbour\include
D:\carles\ut.samples\demo>set lib=d:\carles\ut.harbour\lib
D:\carles\ut.samples\demo>rem path c:\windows\system32;c:\windows;d:\carles\ut.harbour;d:\carles\ut.harbour\bin;\bin;
D:\carles\ut.samples\demo>if exist "D:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" call "D:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.12.4
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
hbmk2: Linking... app.exe

hbmk2: Error: Referenced, missing, but unknown function(s):
WAPI_OUTPUTDEBUGSTRING()
*** Error
Press any key to continue . . .]]>
no_email@example.com (Taavi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=45345&p=277553#p277553 Sun, 09 Feb 2025 11:07:19 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=45345&p=277553#p277553
<![CDATA[mod_harbour :: Re: UT v2.0 - Open Souce project :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=45345&p=277557#p277557 no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=45345&p=277557#p277557 Sun, 09 Feb 2025 13:38:50 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=45345&p=277557#p277557 <![CDATA[mod_harbour :: Re: UT v2.0 - Open Souce project :: Reply by Taavi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=45345&p=277567#p277567 link successful now.]]> no_email@example.com (Taavi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=45345&p=277567#p277567 Mon, 10 Feb 2025 09:11:42 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=45&t=45345&p=277567#p277567 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Ayuda para conectarme a una pagina y obtener info :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45331&p=277090#p277090 ]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45331&p=277090#p277090 Tue, 21 Jan 2025 00:38:51 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45331&p=277090#p277090 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Ayuda para conectarme a una pagina y obtener info :: Reply by Armando]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45331&p=277108#p277108
Exactamente, por ahí van los tiros.

Al menos sabemos que DHL y Fedex, tienen sus apis.

Saludos

sysctrl2 wrote: Mon Jan 20, 2025 9:55 pm La única manera que veo es con API REST
https://www.fedex.com/es-mx/resources-tools/api.html
hay que averiguar si todas las empresas de paquetería cuenta con el Web Services
]]>
no_email@example.com (Armando) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45331&p=277108#p277108 Tue, 21 Jan 2025 18:59:26 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45331&p=277108#p277108
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Dudas con la vista previa :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=44818&p=277134#p277134 como resolviste la vista en el prev. ?
saludos !!! :shock:]]>
no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=44818&p=277134#p277134 Wed, 22 Jan 2025 15:38:31 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=44818&p=277134#p277134
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Dudas con la vista previa :: Reply by Armando]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=44818&p=277137#p277137
En mi caso solo le agregue la clausula MODAL al que me fallaba. :oops:

Saludos

sysctrl2 wrote: Wed Jan 22, 2025 10:38 pm Querido amigo paisano de edomex,
como resolviste la vista en el prev. ?
saludos !!! :shock:
]]>
no_email@example.com (Armando) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=44818&p=277137#p277137 Wed, 22 Jan 2025 18:19:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=44818&p=277137#p277137
<![CDATA[FiveWin para Harbour/xHarbour :: Nueva opción de "Me gusta / Gracias" en los foros ! :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45340&p=277164#p277164

Image]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45340&p=277164#p277164 Thu, 23 Jan 2025 13:05:55 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45340&p=277164#p277164
<![CDATA[FiveWin para Harbour/xHarbour :: cómo inhibir la rueda del ratón? :: Author Armando]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45341&p=277165#p277165
Necesito poder inhibir, que no funcione, la rueda del ratón en un combo box, alguna ayuda?

Saludos]]>
no_email@example.com (Armando) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45341&p=277165#p277165 Thu, 23 Jan 2025 13:08:44 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45341&p=277165#p277165
<![CDATA[FiveWin para Harbour/xHarbour :: Re: cómo inhibir la rueda del ratón? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45341&p=277169#p277169
METHOD MouseWheel() INLINE 1]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45341&p=277169#p277169 Thu, 23 Jan 2025 14:36:13 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45341&p=277169#p277169
<![CDATA[FiveWin para Harbour/xHarbour :: Re: cómo inhibir la rueda del ratón? :: Reply by Armando]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45341&p=277170#p277170
Muchas gracias, pruebo y aviso.

Saludos]]>
no_email@example.com (Armando) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45341&p=277170#p277170 Thu, 23 Jan 2025 17:23:41 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45341&p=277170#p277170
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Multihilo - Multithread :: Reply by TOTOVIOTTI]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45217&p=277179#p277179
Estaré atento a ver que publicas.

Yo lo hice funcionar de la siguiente manera:

hb_threadStart( HB_THREAD_INHERIT_PUBLIC, @MyFuncForThreads(),parametro1,parametro2,...)

Y luego para compilar reemplacé:

hbvm.lib x hbvmmt.lib
y
cw32.lib x cw32mt.lib

Sakudos!]]>
no_email@example.com (TOTOVIOTTI) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45217&p=277179#p277179 Fri, 24 Jan 2025 04:49:15 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45217&p=277179#p277179
<![CDATA[FiveWin para Harbour/xHarbour :: No se puede acceder a las paginas del forum :: Author CARLOS ATUNCAR]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45335&p=277124#p277124
FWH MySQL/MariaDB soporte nativo docs

en la que nos envia a estas pero que no existen

FWH Built-in MySql/MariaDB functionality
https://forums.fivetechsupport.com/view ... =3&t=32657

FWH MariaDb/MySql Backup and Restore
https://forums.fivetechsupport.com/view ... =3&t=32791

FWH MySql/MariaDB: RowSet object
https://forums.fivetechsupport.com/view ... =3&t=32737

FWH Parent Child RowSets (MySql/MariaDB)
https://forums.fivetechsupport.com/view ... =3&t=32736

FWH MYSQL/MARIADB Stored Procedures and Functions
https://forums.fivetechsupport.com/view ... =3&t=33280

Using FWMARIADB for Embedded Server
https://forums.fivetechsupport.com/view ... =3&t=33798

FWHMARIADB Samples
https://forums.fivetechsupport.com/view ... =3&t=33908

se va poder acceder a la información o donde se puede consultar

Gracias]]>
no_email@example.com (CARLOS ATUNCAR) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45335&p=277124#p277124 Wed, 22 Jan 2025 08:51:18 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45335&p=277124#p277124
<![CDATA[FiveWin para Harbour/xHarbour :: Re: No se puede acceder a las paginas del forum :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45335&p=277127#p277127
Ahora deberias poder acceder correctamente :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45335&p=277127#p277127 Wed, 22 Jan 2025 09:11:50 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45335&p=277127#p277127
<![CDATA[FiveWin para Harbour/xHarbour :: Re: No se puede acceder a las paginas del forum :: Reply by CARLOS ATUNCAR]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45335&p=277182#p277182 no_email@example.com (CARLOS ATUNCAR) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45335&p=277182#p277182 Fri, 24 Jan 2025 09:18:35 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45335&p=277182#p277182 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277087#p277087 ]]> no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277087#p277087 Mon, 20 Jan 2025 16:30:22 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277087#p277087 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277089#p277089
La librería de los módulos en C es FiveHC64.lib, la misma que usa Harbour 64 y MSVC y que ya teneis :-)

Image]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277089#p277089 Tue, 21 Jan 2025 00:33:36 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277089#p277089
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277096#p277096 :D :D :D :D

Bueno te cuento que estamos intentando generar el primer ejecutable de prueba, con un msginfo simple, sé que tengo algo mal configurado, pero no tengo ni idea que es...

test.prg

Code: Select all | Expand

#include "FiveWin.ch"
function Main()
	msginfo("Hola Mundo")
return nil
xtest.hbp

Code: Select all | Expand

-gui

#los prgs
.\PRG\test.prg

#recursos
#.\res\test.rc

-info

#-traceonly
#aqui es para colocar los archivo o y c que se generan en la compilacion incremental 
-workdir=.\obj

-optim-
-ldflag+=-aa -n- 
-Ic:\fwh64_2409\include
-Lc:\fwh64_2409\lib

-lFivehx64
-lFiveHC64

-lct
-lhbzip
-ltip
-lhbcomm
-lhbcurl
-llibcurl
-lhbzebra

-lsixapi
-ltip
-lpng
-lhbhpdf
-llibharu
-lhbmxml
-llibmysql
-llibcrypto

-opruebas
#-inc
-run
xgo64.bat

Code: Select all | Expand

@setlocal
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
C:\xHar_msvc_2409\bin\hbmk2 xtest.hbp -xhb -comp=msvc64
@endlocal
los errores que salen al compilar

Code: Select all | Expand

C:\cmplar_xtest_64>call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.11.3
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
xHarbour 1.3.1 Intl. (SimpLex) (Build 20250119)
Copyright 1999-2024, http://www.xharbour.org http://www.harbour-project.org/
Compiling '.\PRG\test.prg'...
Generating C source output to 'obj\test.c'...
Done.
Lines 6, Functions/Procedures 2, pCodes 19
test.c
hbmk2: Linking... pruebas.exe
LINK : warning LNK4044: opci¢n '/aa' no reconocida; omitida
LINK : warning LNK4098: la biblioteca predeterminada'MSVCRT' entra en conflicto con otras bibliotecas; use la biblioteca /NODEFAULTLIB:biblioteca
LINK : warning LNK4217: "ceil" importa el s¡mbolo "libucrt.lib(ceil.obj)" definido en "ct.lib(ctmath2.obj)" en la funci¢n "HB_FUN_CEILING"
LINK : warning LNK4286: "ceil" importa el s¡mbolo "libucrt.lib(ceil.obj)" definido en "dbfntx.lib(dbfntx1.obj)"
LINK : warning LNK4286: "ceil" importa el s¡mbolo "libucrt.lib(ceil.obj)" definido en "dbfcdx.lib(dbfcdx1.obj)"
LINK : warning LNK4286: "calloc" importa el s¡mbolo "libucrt.lib(calloc.obj)" definido en "hbzip.lib(zipcentraldir.obj)"
LINK : warning LNK4286: "calloc" importa el s¡mbolo "libucrt.lib(calloc.obj)" definido en "hbzip.lib(zippathcomponent.obj)"
LINK : warning LNK4286: "calloc" importa el s¡mbolo "libucrt.lib(calloc.obj)" definido en "hbzip.lib(zipplatformcomm.obj)"
LINK : warning LNK4286: "calloc" importa el s¡mbolo "libucrt.lib(calloc.obj)" definido en "hbzip.lib(zipstring.obj)"
LINK : warning LNK4217: "calloc" importa el s¡mbolo "libucrt.lib(calloc.obj)" definido en "hbzip.lib(zipexception.obj)" en la funci¢n ""protected: class CZipString __cdecl CZipException::GetInternalErrorDescription(int,bool)" (?GetInternalErrorDescription@CZipException@@IEAA?AVCZipString@@H_N@Z)"
LINK : warning LNK4286: "calloc" importa el s¡mbolo "libucrt.lib(calloc.obj)" definido en "hbzip.lib(zipfile.obj)"
LINK : warning LNK4286: "calloc" importa el s¡mbolo "libucrt.lib(calloc.obj)" definido en "hbzip.lib(zipmemfile.obj)"
LINK : warning LNK4286: "calloc" importa el s¡mbolo "libucrt.lib(calloc.obj)" definido en "hbzip.lib(ziparchive.obj)"
LINK : warning LNK4286: "calloc" importa el s¡mbolo "libucrt.lib(calloc.obj)" definido en "hbzip.lib(zipstorage.obj)"
LINK : warning LNK4286: "calloc" importa el s¡mbolo "libucrt.lib(calloc.obj)" definido en "hbzip.lib(zipcompatibility.obj)"
LINK : warning LNK4286: "calloc" importa el s¡mbolo "libucrt.lib(calloc.obj)" definido en "hbzip.lib(zipplatform.obj)"
LINK : warning LNK4217: "calloc" importa el s¡mbolo "libucrt.lib(calloc.obj)" definido en "hbzip.lib(zip.obj)" en la funci¢n ""char * __cdecl std::_Maklocstr<char>(char const *,char *,struct _Cvtvec const &)" (??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z)"
LINK : warning LNK4286: "calloc" importa el s¡mbolo "libucrt.lib(calloc.obj)" definido en "hbzip.lib(zipnew.obj)"
LINK : warning LNK4286: "calloc" importa el s¡mbolo "libucrt.lib(calloc.obj)" definido en "hbzip.lib(zipcomp.obj)"
LINK : warning LNK4286: "calloc" importa el s¡mbolo "libucrt.lib(calloc.obj)" definido en "hbzip.lib(zipfileheader.obj)"
LINK : warning LNK4286: "wcslen" importa el s¡mbolo "libucrt.lib(strnlen.obj)" definido en "rtl.lib(gtclip.obj)"
LINK : warning LNK4286: "wcslen" importa el s¡mbolo "libucrt.lib(strnlen.obj)" definido en "hbzip.lib(zipcentraldir.obj)"
LINK : warning LNK4286: "wcslen" importa el s¡mbolo "libucrt.lib(strnlen.obj)" definido en "hbzip.lib(zippathcomponent.obj)"
LINK : warning LNK4286: "wcslen" importa el s¡mbolo "libucrt.lib(strnlen.obj)" definido en "hbzip.lib(zipplatformcomm.obj)"
LINK : warning LNK4286: "wcslen" importa el s¡mbolo "libucrt.lib(strnlen.obj)" definido en "rtl.lib(hbwinole.obj)"
LINK : warning LNK4286: "wcslen" importa el s¡mbolo "libucrt.lib(strnlen.obj)" definido en "hbzip.lib(zipstring.obj)"
LINK : warning LNK4217: "wcslen" importa el s¡mbolo "libucrt.lib(strnlen.obj)" definido en "hbzip.lib(zipexception.obj)" en la funci¢n ""protected: class CZipString __cdecl CZipException::GetInternalErrorDescription(int,bool)" (?GetInternalErrorDescription@CZipException@@IEAA?AVCZipString@@H_N@Z)"
LINK : warning LNK4286: "wcslen" importa el s¡mbolo "libucrt.lib(strnlen.obj)" definido en "hbzip.lib(zipfile.obj)"
LINK : warning LNK4286: "wcslen" importa el s¡mbolo "libucrt.lib(strnlen.obj)" definido en "hbzip.lib(zipmemfile.obj)"
LINK : warning LNK4286: "wcslen" importa el s¡mbolo "libucrt.lib(strnlen.obj)" definido en "hbzip.lib(ziparchive.obj)"
LINK : warning LNK4286: "wcslen" importa el s¡mbolo "libucrt.lib(strnlen.obj)" definido en "hbzip.lib(zipstorage.obj)"
LINK : warning LNK4286: "wcslen" importa el s¡mbolo "libucrt.lib(strnlen.obj)" definido en "hbzip.lib(zipcompatibility.obj)"
LINK : warning LNK4286: "wcslen" importa el s¡mbolo "libucrt.lib(strnlen.obj)" definido en "hbzip.lib(zipplatform.obj)"
LINK : warning LNK4217: "wcslen" importa el s¡mbolo "libucrt.lib(strnlen.obj)" definido en "hbzip.lib(zip.obj)" en la funci¢n ""wchar_t * __cdecl std::_Maklocwcs(wchar_t const *)" (?_Maklocwcs@std@@YAPEA_WPEB_W@Z)"
LINK : warning LNK4286: "wcslen" importa el s¡mbolo "libucrt.lib(strnlen.obj)" definido en "hbzip.lib(zipnew.obj)"
LINK : warning LNK4286: "wcslen" importa el s¡mbolo "libucrt.lib(strnlen.obj)" definido en "hbzip.lib(zipcomp.obj)"
LINK : warning LNK4286: "wcslen" importa el s¡mbolo "libucrt.lib(strnlen.obj)" definido en "hbzip.lib(zipfileheader.obj)"
LINK : warning LNK4286: "_invalid_parameter_noinfo_noreturn" importa el s¡mbolo "libucrt.lib(invalid_parameter.obj)" definido en "hbzip.lib(zippathcomponent.obj)"
LINK : warning LNK4217: "_invalid_parameter_noinfo_noreturn" importa el s¡mbolo "libucrt.lib(invalid_parameter.obj)" definido en "hbzip.lib(zipplatformcomm.obj)" en la funci¢n ""class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl std::operator+<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??$?HDU?$char_traits@D@std@@V?$allocator@D@1@@std@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@AEBV10@0@Z)"
LINK : warning LNK4217: "_invalid_parameter_noinfo_noreturn" importa el s¡mbolo "libucrt.lib(invalid_parameter.obj)" definido en "hbzip.lib(zipexception.obj)" en la funci¢n ""int `public: __cdecl CZipString::CZipString(char const *)'::`1'::dtor$0" (?dtor$0@?0???0CZipString@@QEAA@PEBD@Z@4HA)"
LINK : warning LNK4286: "_invalid_parameter_noinfo_noreturn" importa el s¡mbolo "libucrt.lib(invalid_parameter.obj)" definido en "hbzip.lib(zipfile.obj)"
LINK : warning LNK4286: "_invalid_parameter_noinfo_noreturn" importa el s¡mbolo "libucrt.lib(invalid_parameter.obj)" definido en "hbzip.lib(zipmemfile.obj)"
LINK : warning LNK4286: "_invalid_parameter_noinfo_noreturn" importa el s¡mbolo "libucrt.lib(invalid_parameter.obj)" definido en "hbzip.lib(zipcentraldir.obj)"
LINK : warning LNK4286: "_invalid_parameter_noinfo_noreturn" importa el s¡mbolo "libucrt.lib(invalid_parameter.obj)" definido en "hbzip.lib(zipstorage.obj)"
LINK : warning LNK4286: "_invalid_parameter_noinfo_noreturn" importa el s¡mbolo "libucrt.lib(invalid_parameter.obj)" definido en "hbzip.lib(zipcompatibility.obj)"
LINK : warning LNK4286: "_invalid_parameter_noinfo_noreturn" importa el s¡mbolo "libucrt.lib(invalid_parameter.obj)" definido en "hbzip.lib(zipplatform.obj)"
LINK : warning LNK4217: "_invalid_parameter_noinfo_noreturn" importa el s¡mbolo "libucrt.lib(invalid_parameter.obj)" definido en "hbzip.lib(zipstring.obj)" en la funci¢n ""int (__cdecl CZipString::*__cdecl GetCZipStrCompFunc(bool,bool))(char const *)const " (?GetCZipStrCompFunc@@YAP8CZipString@@EBAHPEBD@Z_N1@Z)"
LINK : warning LNK4217: "_invalid_parameter_noinfo_noreturn" importa el s¡mbolo "libucrt.lib(invalid_parameter.obj)" definido en "hbzip.lib(zipnew.obj)" en la funci¢n ""void * __cdecl std::_Allocate_manually_vector_aligned<struct std::_Default_allocate_traits>(unsigned __int64)" (??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z)"
LINK : warning LNK4217: "_invalid_parameter_noinfo_noreturn" importa el s¡mbolo "libucrt.lib(invalid_parameter.obj)" definido en "hbzip.lib(zipcomp.obj)" en la funci¢n "hb_CmpTdSpan"
LINK : warning LNK4286: "_invalid_parameter_noinfo_noreturn" importa el s¡mbolo "libucrt.lib(invalid_parameter.obj)" definido en "hbzip.lib(zipfileheader.obj)"
LINK : warning LNK4286: "_invalid_parameter_noinfo_noreturn" importa el s¡mbolo "libucrt.lib(invalid_parameter.obj)" definido en "hbzip.lib(ziparchive.obj)"
LINK : warning LNK4217: "_errno" importa el s¡mbolo "libucrt.lib(errno.obj)" definido en "hbzip.lib(ziparchive.obj)" en la funci¢n ""public: virtual unsigned int __cdecl CZipFile::Read(void *,unsigned int)" (?Read@CZipFile@@UEAAIPEAXI@Z)"
LINK : warning LNK4286: "_errno" importa el s¡mbolo "libucrt.lib(errno.obj)" definido en "hbzip.lib(zipstorage.obj)"
LINK : warning LNK4286: "_errno" importa el s¡mbolo "libucrt.lib(errno.obj)" definido en "hbzip.lib(zipexception.obj)"
LINK : warning LNK4286: "_errno" importa el s¡mbolo "libucrt.lib(errno.obj)" definido en "hbzip.lib(zipfile.obj)"
LINK : warning LNK4217: "__stdio_common_vsprintf" importa el s¡mbolo "libucrt.lib(output.obj)" definido en "hbzip.lib(ziparchive.obj)" en la funci¢n ""public: void __cdecl CZipString::Format(char const *,...)" (?Format@CZipString@@QEAAXPEBDZZ)"
LINK : warning LNK4286: "__stdio_common_vsprintf" importa el s¡mbolo "libucrt.lib(output.obj)" definido en "hbzip.lib(zipstorage.obj)"
LINK : warning LNK4286: "__stdio_common_vsprintf" importa el s¡mbolo "libucrt.lib(output.obj)" definido en "hbzip.lib(zipexception.obj)"
LINK : warning LNK4286: "__stdio_common_vsprintf" importa el s¡mbolo "libucrt.lib(output.obj)" definido en "pcrepos.lib(pcreposix.obj)"
LINK : warning LNK4286: "free" importa el s¡mbolo "libucrt.lib(free.obj)" definido en "zlib.lib(zutil.obj)"
LINK : warning LNK4286: "free" importa el s¡mbolo "libucrt.lib(free.obj)" definido en "vm.lib(mainwin.obj)"
.....

FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipAddPathStringI sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipAddPathEllipseI sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::GraphicsPath::AddEllipse(int,int,int,int)" (?AddEllipse@GraphicsPath@Gdiplus@@QEAA?AW4Status@2@HHHH@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipAddPathEllipseI sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipAddPathPieI sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::GraphicsPath::AddPie(int,int,int,int,float,float)" (?AddPie@GraphicsPath@Gdiplus@@QEAA?AW4Status@2@HHHHMM@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipCreateMatrix sin resolver al que se hace referencia en la funci¢n "public: __cdecl Gdiplus::Matrix::Matrix(void)" (??0Matrix@Gdiplus@@QEAA@XZ)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipCreateMatrix sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipDeleteMatrix sin resolver al que se hace referencia en la funci¢n "public: __cdecl Gdiplus::Matrix::~Matrix(void)" (??1Matrix@Gdiplus@@QEAA@XZ)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipTranslateMatrix sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Matrix::RotateAt(float,class Gdiplus::PointF const &,enum Gdiplus::MatrixOrder)" (?RotateAt@Matrix@Gdiplus@@QEAA?AW4Status@2@MAEBVPointF@2@W4MatrixOrder@2@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipTranslateMatrix sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipScaleMatrix sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Matrix::Scale(float,float,enum Gdiplus::MatrixOrder)" (?Scale@Matrix@Gdiplus@@QEAA?AW4Status@2@MMW4MatrixOrder@2@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipScaleMatrix sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipRotateMatrix sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Matrix::RotateAt(float,class Gdiplus::PointF const &,enum Gdiplus::MatrixOrder)" (?RotateAt@Matrix@Gdiplus@@QEAA?AW4Status@2@MAEBVPointF@2@W4MatrixOrder@2@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipRotateMatrix sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipCreateRegionRectI sin resolver al que se hace referencia en la funci¢n "public: __cdecl Gdiplus::Region::Region(class Gdiplus::Rect const &)" (??0Region@Gdiplus@@QEAA@AEBVRect@1@@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipCreateRegionPath sin resolver al que se hace referencia en la funci¢n "public: __cdecl Gdiplus::Region::Region(class Gdiplus::GraphicsPath const *)" (??0Region@Gdiplus@@QEAA@PEBVGraphicsPath@1@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipCreateRegionPath sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipDeleteRegion sin resolver al que se hace referencia en la funci¢n "public: __cdecl Gdiplus::Region::~Region(void)" (??1Region@Gdiplus@@QEAA@XZ)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipCloneBrush sin resolver al que se hace referencia en la funci¢n "public: virtual class Gdiplus::Brush * __cdecl Gdiplus::Brush::Clone(void)const " (?Clone@Brush@Gdiplus@@UEBAPEAV12@XZ)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipCloneBrush sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipDeleteBrush sin resolver al que se hace referencia en la funci¢n "public: virtual __cdecl Gdiplus::Brush::~Brush(void)" (??1Brush@Gdiplus@@UEAA@XZ)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipDeleteBrush sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipCreateTexture sin resolver al que se hace referencia en la funci¢n "public: __cdecl Gdiplus::TextureBrush::TextureBrush(class Gdiplus::Image *,enum Gdiplus::WrapMode)" (??0TextureBrush@Gdiplus@@QEAA@PEAVImage@1@W4WrapMode@1@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipCreateTexture sin resolver
....
GetHBITMAP@Bitmap@Gdiplus@@QEAA?AW4Status@2@AEBVColor@2@PEAPEAUHBITMAP__@@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipCreateHBITMAPFromBitmap sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipCreateBitmapFromResource sin resolver al que se hace referencia en la funci¢n "public: __cdecl Gdiplus::Bitmap::Bitmap(struct HINSTANCE__ *,wchar_t const *)" (??0Bitmap@Gdiplus@@QEAA@PEAUHINSTANCE__@@PEB_W@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipCreateBitmapFromResource sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipCloneBitmapAreaI sin resolver al que se hace referencia en la funci¢n "public: class Gdiplus::Bitmap * __cdecl Gdiplus::Bitmap::Clone(int,int,int,int,int)" (?Clone@Bitmap@Gdiplus@@QEAAPEAV12@HHHHH@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipCloneBitmapAreaI sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipBitmapLockBits sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Bitmap::LockBits(class Gdiplus::Rect const *,unsigned int,int,class Gdiplus::BitmapData *)" (?LockBits@Bitmap@Gdiplus@@QEAA?AW4Status@2@PEBVRect@2@IHPEAVBitmapData@2@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipBitmapLockBits sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipBitmapUnlockBits sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Bitmap::UnlockBits(class Gdiplus::BitmapData *)" (?UnlockBits@Bitmap@Gdiplus@@QEAA?AW4Status@2@PEAVBitmapData@2@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipBitmapUnlockBits sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipBitmapGetPixel sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Bitmap::GetPixel(int,int,class Gdiplus::Color *)" (?GetPixel@Bitmap@Gdiplus@@QEAA?AW4Status@2@HHPEAVColor@2@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipBitmapGetPixel sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipBitmapSetPixel sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Bitmap::SetPixel(int,int,class Gdiplus::Color const &)" (?SetPixel@Bitmap@Gdiplus@@QEAA?AW4Status@2@HHAEBVColor@2@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipBitmapSetPixel sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipBitmapApplyEffect sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Bitmap::ApplyEffect(class Gdiplus::Effect *,struct tagRECT *)" (?ApplyEffect@Bitmap@Gdiplus@@QEAA?AW4Status@2@PEAVEffect@2@PEAUtagRECT@@@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipBitmapSetResolution sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Bitmap::SetResolution(float,float)" (?SetResolution@Bitmap@Gdiplus@@QEAA?AW4Status@2@MM@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipBitmapSetResolution sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipCreateImageAttributes sin resolver al que se hace referencia en la funci¢n "public: __cdecl Gdiplus::ImageAttributes::ImageAttributes(void)" (??0ImageAttributes@Gdiplus@@QEAA@XZ)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipCreateImageAttributes sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipSetImageAttributesColorMatrix sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::ImageAttributes::SetColorMatrix(struct Gdiplus::ColorMatrix const *,enum Gdiplus::ColorMatrixFlags,enum Gdiplus::ColorAdjustType)" (?SetColorMatrix@ImageAttributes@Gdiplus@@QEAA?AW4Status@2@PEBUColorMatrix@2@W4ColorMatrixFlags@2@W4ColorAdjustType@2@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipSetImageAttributesColorMatrix sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipSetImageAttributesGamma sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::ImageAttributes::SetGamma(float,enum Gdiplus::ColorAdjustType)" (?SetGamma@ImageAttributes@Gdiplus@@QEAA?AW4Status@2@MW4ColorAdjustType@2@@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipSetImageAttributesColorKeys sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::ImageAttributes::SetColorKey(class Gdiplus::Color const &,class Gdiplus::Color const &,enum Gdiplus::ColorAdjustType)" (?SetColorKey@ImageAttributes@Gdiplus@@QEAA?AW4Status@2@AEBVColor@2@0W4ColorAdjustType@2@@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipSetImageAttributesRemapTable sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::ImageAttributes::SetRemapTable(unsigned int,struct Gdiplus::ColorMap const *,enum Gdiplus::ColorAdjustType)" (?SetRemapTable@ImageAttributes@Gdiplus@@QEAA?AW4Status@2@IPEBUColorMap@2@W4ColorAdjustType@2@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipSetImageAttributesRemapTable sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipCreateFromHDC sin resolver al que se hace referencia en la funci¢n "public: __cdecl Gdiplus::Graphics::Graphics(struct HDC__ *)" (??0Graphics@Gdiplus@@QEAA@PEAUHDC__@@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipCreateFromHDC sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipDeleteGraphics sin resolver al que se hace referencia en la funci¢n "public: __cdecl Gdiplus::Graphics::~Graphics(void)" (??1Graphics@Gdiplus@@QEAA@XZ)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipDeleteGraphics sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipSetSmoothingMode sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::SetSmoothingMode(enum Gdiplus::SmoothingMode)" (?SetSmoothingMode@Graphics@Gdiplus@@QEAA?AW4Status@2@W4SmoothingMode@2@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipSetSmoothingMode sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipSetTextRenderingHint sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::SetTextRenderingHint(enum Gdiplus::TextRenderingHint)" (?SetTextRenderingHint@Graphics@Gdiplus@@QEAA?AW4Status@2@W4TextRenderingHint@2@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipSetTextRenderingHint sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipSetInterpolationMode sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::SetInterpolationMode(enum Gdiplus::InterpolationMode)" (?SetInterpolationMode@Graphics@Gdiplus@@QEAA?AW4Status@2@W4InterpolationMode@2@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipSetInterpolationMode sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipSetWorldTransform sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::SetTransform(class Gdiplus::Matrix const *)" (?SetTransform@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVMatrix@2@@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipResetWorldTransform sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::ResetTransform(void)" (?ResetTransform@Graphics@Gdiplus@@QEAA?AW4Status@2@XZ)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipResetWorldTransform sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipGetPageUnit sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Unit __cdecl Gdiplus::Graphics::GetPageUnit(void)const " (?GetPageUnit@Graphics@Gdiplus@@QEBA?AW4Unit@2@XZ)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipGetPageScale sin resolver al que se hace referencia en la funci¢n "public: float __cdecl Gdiplus::Graphics::GetPageScale(void)const " (?GetPageScale@Graphics@Gdiplus@@QEBAMXZ)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipGetDpiX sin resolver al que se hace referencia en la funci¢n "public: float __cdecl Gdiplus::Graphics::GetDpiX(void)const " (?GetDpiX@Graphics@Gdiplus@@QEBAMXZ)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipGetDpiY sin resolver al que se hace referencia en la funci¢n "public: float __cdecl Gdiplus::Graphics::GetDpiY(void)const " (?GetDpiY@Graphics@Gdiplus@@QEBAMXZ)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipDrawLine sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::DrawLine(class Gdiplus::Pen const *,float,float,float,float)" (?DrawLine@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVPen@2@MMMM@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipDrawLine sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipDrawLinesI sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::DrawLines(class Gdiplus::Pen const *,class Gdiplus::Point const *,int)" (?DrawLines@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVPen@2@PEBVPoint@2@H@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipDrawArcI sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::DrawArc(class Gdiplus::Pen const *,int,int,int,int,float,float)" (?DrawArc@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVPen@2@HHHHMM@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipDrawBeziersI sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::DrawBeziers(class Gdiplus::Pen const *,class Gdiplus::Point const *,int)" (?DrawBeziers@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVPen@2@PEBVPoint@2@H@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipDrawRectangleI sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::DrawRectangle(class Gdiplus::Pen const *,int,int,int,int)" (?DrawRectangle@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVPen@2@HHHH@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipDrawEllipseI sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::DrawEllipse(class Gdiplus::Pen const *,int,int,int,int)" (?DrawEllipse@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVPen@2@HHHH@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipDrawPieI sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::DrawPie(class Gdiplus::Pen const *,int,int,int,int,float,float)" (?DrawPie@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVPen@2@HHHHMM@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipDrawPolygonI sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::DrawPolygon(class Gdiplus::Pen const *,class Gdiplus::Point const *,int)" (?DrawPolygon@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVPen@2@PEBVPoint@2@H@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipDrawPath sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::DrawPath(class Gdiplus::Pen const *,class Gdiplus::GraphicsPath const *)" (?DrawPath@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVPen@2@PEBVGraphicsPath@2@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipDrawPath sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipDrawCurve2I sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::DrawCurve(class Gdiplus::Pen const *,class Gdiplus::Point const *,int,float)" (?DrawCurve@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVPen@2@PEBVPoint@2@HM@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipDrawClosedCurve2I sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::DrawClosedCurve(class Gdiplus::Pen const *,class Gdiplus::Point const *,int,float)" (?DrawClosedCurve@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVPen@2@PEBVPoint@2@HM@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipGraphicsClear sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::Clear(class Gdiplus::Color const &)" (?Clear@Graphics@Gdiplus@@QEAA?AW4Status@2@AEBVColor@2@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipGraphicsClear sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipFillRectangle sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::FillRectangle(class Gdiplus::Brush const *,float,float,float,float)" (?FillRectangle@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVBrush@2@MMMM@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipFillRectangle sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipFillRectangleI sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::FillRectangle(class Gdiplus::Brush const *,int,int,int,int)" (?FillRectangle@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVBrush@2@HHHH@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipFillRectangleI sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipFillPolygonI sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::FillPolygon(class Gdiplus::Brush const *,class Gdiplus::Point const *,int,enum Gdiplus::FillMode)" (?FillPolygon@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVBrush@2@PEBVPoint@2@HW4FillMode@2@@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipFillEllipse sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::FillEllipse(class Gdiplus::Brush const *,float,float,float,float)" (?FillEllipse@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVBrush@2@MMMM@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipFillEllipse sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipFillEllipseI sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::FillEllipse(class Gdiplus::Brush const *,int,int,int,int)" (?FillEllipse@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVBrush@2@HHHH@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipFillPieI sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::FillPie(class Gdiplus::Brush const *,int,int,int,int,float,float)" (?FillPie@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVBrush@2@HHHHMM@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipFillPath sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::FillPath(class Gdiplus::Brush const *,class Gdiplus::GraphicsPath const *)" (?FillPath@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVBrush@2@PEBVGraphicsPath@2@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipFillPath sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipFillClosedCurve2I sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::FillClosedCurve(class Gdiplus::Brush const *,class Gdiplus::Point const *,int,enum Gdiplus::FillMode,float)" (?FillClosedCurve@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVBrush@2@PEBVPoint@2@HW4FillMode@2@M@Z)
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipDrawImageI sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::DrawImage(class Gdiplus::Image *,int,int)" (?DrawImage@Graphics@Gdiplus@@QEAA?AW4Status@2@PEAVImage@2@HH@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2001: s¡mbolo externo GdipDrawImageI sin resolver
FiveHC64.lib(gdipfwh.obj) : error LNK2019: s¡mbolo externo GdipDrawImageRectI sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::DrawImage(class Gdiplus::Image *,int,int,int,int)" (?DrawImage@Graphics@Gdiplus@@QEAA?AW4Status@2@PEAVImage@2@HHHH@Z)
...
ace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::RotateTransform(float,enum Gdiplus::MatrixOrder)" (?RotateTransform@Graphics@Gdiplus@@QEAA?AW4Status@2@MW4MatrixOrder@2@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2019: s¡mbolo externo GdipSetPageUnit sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::SetPageUnit(enum Gdiplus::Unit)" (?SetPageUnit@Graphics@Gdiplus@@QEAA?AW4Status@2@W4Unit@2@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2019: s¡mbolo externo GdipDrawArc sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::DrawArc(class Gdiplus::Pen const *,float,float,float,float,float,float)" (?DrawArc@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVPen@2@MMMMMM@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2019: s¡mbolo externo GdipDrawRectangle sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::DrawRectangle(class Gdiplus::Pen const *,float,float,float,float)" (?DrawRectangle@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVPen@2@MMMM@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2019: s¡mbolo externo GdipDrawEllipse sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::DrawEllipse(class Gdiplus::Pen const *,float,float,float,float)" (?DrawEllipse@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVPen@2@MMMM@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2019: s¡mbolo externo GdipDrawPie sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::DrawPie(class Gdiplus::Pen const *,float,float,float,float,float,float)" (?DrawPie@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVPen@2@MMMMMM@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2019: s¡mbolo externo GdipFillPie sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::FillPie(class Gdiplus::Brush const *,float,float,float,float,float,float)" (?FillPie@Graphics@Gdiplus@@QEAA?AW4Status@2@PEBVBrush@2@MMMMMM@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2019: s¡mbolo externo GdipIsClipEmpty sin resolver al que se hace referencia en la funci¢n "public: int __cdecl Gdiplus::Graphics::IsClipEmpty(void)const " (?IsClipEmpty@Graphics@Gdiplus@@QEBAHXZ)
FiveHC64.lib(gdiplus.obj) : error LNK2019: s¡mbolo externo GdipCreateMetafileFromStream sin resolver al que se hace referencia en la funci¢n "public: __cdecl Gdiplus::Metafile::Metafile(struct IStream *)" (??0Metafile@Gdiplus@@QEAA@PEAUIStream@@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2019: s¡mbolo externo GdipDeleteFontFamily sin resolver al que se hace referencia en la funci¢n "public: __cdecl Gdiplus::FontFamily::~FontFamily(void)" (??1FontFamily@Gdiplus@@QEAA@XZ)
FiveHC64.lib(gdiplus.obj) : error LNK2019: s¡mbolo externo GdipMeasureString sin resolver al que se hace referencia en la funci¢n "public: enum Gdiplus::Status __cdecl Gdiplus::Graphics::MeasureString(wchar_t const *,int,class Gdiplus::Font const *,class Gdiplus::PointF const &,class Gdiplus::StringFormat const *,class Gdiplus::RectF *)const " (?MeasureString@Graphics@Gdiplus@@QEBA?AW4Status@2@PEB_WHPEBVFont@2@AEBVPointF@2@PEBVStringFormat@2@PEAVRectF@2@@Z)
FiveHC64.lib(gdiplus.obj) : error LNK2019: s¡mbolo externo GdipStringFormatGetGenericDefault sin resolver al que se hace referencia en la funci¢n "public: static class Gdiplus::StringFormat const * __cdecl Gdiplus::StringFormat::GenericDefault(void)" (?GenericDefault@StringFormat@Gdiplus@@SAPEBV12@XZ)
FiveHC64.lib(gdiplus.obj) : error LNK2019: s¡mbolo externo GdipStringFormatGetGenericTypographic sin resolver al que se hace referencia en la funci¢n "public: static class Gdiplus::StringFormat const * __cdecl Gdiplus::StringFormat::GenericTypographic(void)" (?GenericTypographic@StringFormat@Gdiplus@@SAPEBV12@XZ)
FiveHC64.lib(richedi5.obj) : error LNK2019: s¡mbolo externo OleUIPasteSpecialA sin resolver al que se hace referencia en la funci¢n HB_FUN_REPASTESPECIAL5
FiveHC64.lib(richedit.obj) : error LNK2001: s¡mbolo externo OleUIPasteSpecialA sin resolver
ct.lib(ctmath2.obj) : error LNK2019: s¡mbolo externo __imp_floor sin resolver al que se hace referencia en la funci¢n HB_FUN_FLOOR
ct.lib(ascpos.obj) : error LNK2019: s¡mbolo externo __imp_isdigit sin resolver al que se hace referencia en la funci¢n do_ascpos
macro.lib(macroslx.obj) : error LNK2001: s¡mbolo externo __imp_isdigit sin resolver
hbzip.lib(zipnew.obj) : error LNK2019: s¡mbolo externo __imp__localtime64 sin resolver al que se hace referencia en la funci¢n hb___GetFileNamesFromZip
hbzip.lib(zipfileheader.obj) : error LNK2001: s¡mbolo externo __imp__localtime64 sin resolver
hbzip.lib(zipfileheader.obj) : error LNK2019: s¡mbolo externo __imp__mktime64 sin resolver al que se hace referencia en la funci¢n "public: __int64 __cdecl CZipFileHeader::GetTime(void)const " (?GetTime@CZipFileHeader@@QEBA_JXZ)
macro.lib(macroslx.obj) : error LNK2001: s¡mbolo externo __imp_realloc sin resolver
hbzip.lib(ziparchive.obj) : error LNK2001: s¡mbolo externo __imp_realloc sin resolver
hbzip.lib(zipstorage.obj) : error LNK2001: s¡mbolo externo __imp_realloc sin resolver
hbzip.lib(zipexception.obj) : error LNK2001: s¡mbolo externo __imp_realloc sin resolver
vm.lib(fm.obj) : error LNK2001: s¡mbolo externo __imp_realloc sin resolver
hbzip.lib(ziparchive.obj) : error LNK2019: s¡mbolo externo __imp_srand sin resolver al que se hace referencia en la funci¢n "protected: void __cdecl CZipArchive::CryptCryptHeader(long,class CZipAutoBuffer &)" (?CryptCryptHeader@CZipArchive@@IEAAXJAEAVCZipAutoBuffer@@@Z)
rtl.lib(hbrandom.obj) : error LNK2001: s¡mbolo externo __imp_srand sin resolver
hbzip.lib(ziparchive.obj) : error LNK2019: s¡mbolo externo __imp_rand sin resolver al que se hace referencia en la funci¢n "protected: void __cdecl CZipArchive::CryptCryptHeader(long,class CZipAutoBuffer &)" (?CryptCryptHeader@CZipArchive@@IEAAXJAEAVCZipAutoBuffer@@@Z)
rtl.lib(hbrandom.obj) : error LNK2001: s¡mbolo externo __imp_rand sin resolver
hbzip.lib(ziparchive.obj) : error LNK2019: s¡mbolo externo __imp_strcoll sin resolver al que se hace referencia en la funci¢n "public: int __cdecl CZipString::Collate(char const *)const " (?Collate@CZipString@@QEBAHPEBD@Z)
hbzip.lib(zipstring.obj) : error LNK2001: s¡mbolo externo __imp_strcoll sin resolver
hbzip.lib(ziparchive.obj) : error LNK2019: s¡mbolo externo __imp__time64 sin resolver al que se hace referencia en la funci¢n "public: bool __cdecl CZipArchive::AddNewFile(struct CZipAddNewFileInfo &)" (?AddNewFile@CZipArchive@@QEAA_NAEAUCZipAddNewFileInfo@@@Z)
hbzip.lib(zipplatform.obj) : error LNK2001: s¡mbolo externo __imp__time64 sin resolver
rtl.lib(hbrandom.obj) : error LNK2001: s¡mbolo externo __imp__time64 sin resolver
hbzip.lib(ziparchive.obj) : error LNK2019: s¡mbolo externo __imp__tell sin resolver al que se hace referencia en la funci¢n "public: virtual unsigned __int64 __cdecl CZipFile::GetPosition(void)const " (?GetPosition@CZipFile@@UEBA_KXZ)
hbzip.lib(zipstorage.obj) : error LNK2001: s¡mbolo externo __imp__tell sin resolver
hbzip.lib(zipfile.obj) : error LNK2001: s¡mbolo externo __imp__tell sin resolver
hbzip.lib(zipplatform.obj) : error LNK2019: s¡mbolo externo __imp__stat64i32 sin resolver al que se hace referencia en la funci¢n "bool __cdecl ZipPlatform::GetFileModTime(char const *,__int64 &)" (?GetFileModTime@ZipPlatform@@YA_NPEBDAEA_J@Z)
hbzip.lib(zipplatform.obj) : error LNK2019: s¡mbolo externo __imp__access sin resolver al que se hace referencia en la funci¢n "int __cdecl ZipPlatform::FileExists(char const *)" (?FileExists@ZipPlatform@@YAHPEBD@Z)
hbzip.lib(zipplatform.obj) : error LNK2019: s¡mbolo externo __imp__utime64 sin resolver al que se hace referencia en la funci¢n "bool __cdecl ZipPlatform::SetFileModTime(char const *,__int64)" (?SetFileModTime@ZipPlatform@@YA_NPEBD_J@Z)
hbzip.lib(zipplatform.obj) : error LNK2019: s¡mbolo externo __imp__chdir sin resolver al que se hace referencia en la funci¢n "bool __cdecl ZipPlatform::ChangeDirectory(char const *)" (?ChangeDirectory@ZipPlatform@@YA_NPEBD@Z)
hbzip.lib(zipexception.obj) : error LNK2019: s¡mbolo externo __imp_strncpy sin resolver al que se hace referencia en la funci¢n "public: int __cdecl CZipException::GetErrorMessage(char *,unsigned int,unsigned int *)" (?GetErrorMessage@CZipException@@QEAAHPEADIPEAI@Z)
pcrepos.lib(pcreposix.obj) : error LNK2001: s¡mbolo externo __imp_strncpy sin resolver
hbzip.lib(zippathcomponent.obj) : error LNK2019: s¡mbolo externo __imp__splitpath sin resolver al que se hace referencia en la funci¢n "public: void __cdecl CZipPathComponent::SetFullPath(char const *)" (?SetFullPath@CZipPathComponent@@QEAAXPEBD@Z)
common.lib(hbdate.obj) : error LNK2001: s¡mbolo externo __imp_modf sin resolver
common.lib(hbprintf.obj) : error LNK2001: s¡mbolo externo __imp_modf sin resolver
vm.lib(hvm.obj) : error LNK2001: s¡mbolo externo __imp_modf sin resolver
vm.lib(itemapi.obj) : error LNK2001: s¡mbolo externo __imp_modf sin resolver
rtl.lib(fstemp.obj) : error LNK2001: s¡mbolo externo __imp_modf sin resolver
common.lib(hbstr.obj) : error LNK2001: s¡mbolo externo __imp_modf sin resolver
vm.lib(hvm.obj) : error LNK2019: s¡mbolo externo __imp_div sin resolver al que se hace referencia en la funci¢n hb_vmSubDate
common.lib(hbdate.obj) : error LNK2001: s¡mbolo externo __imp_div sin resolver
vm.lib(itemapi.obj) : error LNK2019: s¡mbolo externo __imp__finite sin resolver al que se hace referencia en la funci¢n hb_itemStrBuf
rtl.lib(is.obj) : error LNK2019: s¡mbolo externo __imp_isxdigit sin resolver al que se hace referencia en la funci¢n HB_FUN_ISXDIGIT
rtl.lib(is.obj) : error LNK2019: s¡mbolo externo __imp_isspace sin resolver al que se hace referencia en la funci¢n HB_FUN_ISSPACE
macro.lib(macroslx.obj) : error LNK2001: s¡mbolo externo __imp_isspace sin resolver
common.lib(hbstr.obj) : error LNK2001: s¡mbolo externo __imp_isspace sin resolver
rtl.lib(is.obj) : error LNK2019: s¡mbolo externo __imp_ispunct sin resolver al que se hace referencia en la funci¢n HB_FUN_ISPUNCT
rtl.lib(is.obj) : error LNK2019: s¡mbolo externo __imp_isprint sin resolver al que se hace referencia en la funci¢n HB_FUN_ISPRINT
rtl.lib(is.obj) : error LNK2019: s¡mbolo externo __imp_isgraph sin resolver al que se hace referencia en la funci¢n HB_FUN_ISGRAPH
rtl.lib(is.obj) : error LNK2019: s¡mbolo externo __imp_iscntrl sin resolver al que se hace referencia en la funci¢n HB_FUN_ISCNTRL
rtl.lib(dirdrive.obj) : error LNK2019: s¡mbolo externo __imp_remove sin resolver al que se hace referencia en la funci¢n HB_FUN_HB_DISKREADY
rtl.lib(filesys.obj) : error LNK2019: s¡mbolo externo __imp__chdrive sin resolver al que se hace referencia en la funci¢n hb_fsChDrv
rtl.lib(filesys.obj) : error LNK2019: s¡mbolo externo __imp__getdrive sin resolver al que se hace referencia en la funci¢n hb_fsChDrv
rtl.lib(fparse.obj) : error LNK2019: s¡mbolo externo __imp_fgetc sin resolver al que se hace referencia en la funci¢n HB_FUN_FCHARCOUNT
common.lib(hbstr.obj) : error LNK2019: s¡mbolo externo __imp_toupper sin resolver al que se hace referencia en la funci¢n hb_str2number
common.lib(hbstr.obj) : error LNK2019: s¡mbolo externo __imp_tolower sin resolver al que se hace referencia en la funci¢n hb_strAtI
common.lib(hbstr.obj) : error LNK2019: s¡mbolo externo __imp_strerror_s sin resolver al que se hace referencia en la funci¢n hb_strerror
common.lib(hbprintf.obj) : error LNK2019: s¡mbolo externo __imp__dclass sin resolver al que se hace referencia en la funci¢n hb_vsnprintf
common.lib(hbprintf.obj) : error LNK2019: s¡mbolo externo __imp__dsign sin resolver al que se hace referencia en la funci¢n put_dbl
common.lib(hbtrace.obj) : error LNK2019: s¡mbolo externo __imp__dup sin resolver al que se hace referencia en la funci¢n hb_tr_trace
pruebas.exe : fatal error LNK1120: 200 externos sin resolver
hbmk2[xtest]: Error: Running linker. 1120
link.exe @C:\Users\leandro\AppData\Local\Temp\4\f88jtl.lnk

hbmk2: Error: Referenced, missing, but unknown function(s): CEILING(), SET(),
       HB_UTF8STRTRAN(), HB_I18NGETBASELANGUAGE(), WEBVIEW2_SHOWDOWNLOADS(),
       GDIPLUSSTARTUP(), GDIPLUSSHUTDOWN(), REPASTESPECIAL5(), FLOOR(),
       ISXDIGIT(), ISSPACE(), ISPUNCT(), ISPRINT(), ISGRAPH(), ISCNTRL(),
       HB_DISKREADY(), FCHARCOUNT()
Gracias de antemano por la ayuda]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277096#p277096 Tue, 21 Jan 2025 08:40:26 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277096#p277096
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277097#p277097
Funcionando correctamente :)

xtest.hbp

Code: Select all | Expand

-gui

#los prgs
.\PRG\test.prg

#recursos
#.\res\test.rc

-info

#-traceonly
#aqui es para colocar los archivo o y c que se generan en la compilacion incremental 
-workdir=.\obj

-Ic:\fwh64\include
-Lc:\fwh64\lib

-lFivehx64
-lFiveHC64

-lct
-lhbzip
-ltip
-lhbcomm
-lhbcurl
-llibcurl
-lhbzebra

-lsixapi
-ltip
-lpng
-lhbhpdf
-llibharu
-lhbmxml
-llibmysql
-llibcrypto

-lgdiplus
-lucrt
-lole32
-loledlg

-ldflag=/NODEFAULTLIB:libucrt
-ldflag+=/NODEFAULTLIB:msvcrt 

-opruebas
#-inc
-run
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277097#p277097 Tue, 21 Jan 2025 09:36:22 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277097#p277097
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277100#p277100
Nos queda unicamente este error

Code: Select all | Expand

C:\cmplar_xtest_64>call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.11.3
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
xHarbour 1.3.1 Intl. (SimpLex) (Build 20250119)
Copyright 1999-2024, http://www.xharbour.org http://www.harbour-project.org/
Compiling '.\PRG\test.prg'...
Generating C source output to 'obj\test.c'...
Done.
Lines 6, Functions/Procedures 1, pCodes 16
test.c
hbmk2: Linking... pruebas.exe
Fivehx64.lib(twebview2.obj) : error LNK2001: s¡mbolo externo HB_FUN_WEBVIEW2_SHOWDOWNLOADS sin resolver
pruebas.exe : fatal error LNK1120: 1 externos sin resolver
hbmk2[xtest]: Error: Running linker. 1120
link.exe @C:\Users\leandro\AppData\Local\Temp\5\ulxzrs.lnk

hbmk2: Error: Referenced, missing, but unknown function(s):
       WEBVIEW2_SHOWDOWNLOADS()

C:\cmplar_xtest_64>
]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277100#p277100 Tue, 21 Jan 2025 11:34:05 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277100#p277100
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277101#p277101 ]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277101#p277101 Tue, 21 Jan 2025 12:00:48 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277101#p277101 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277103#p277103 :D]]> no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277103#p277103 Tue, 21 Jan 2025 14:09:46 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277103#p277103 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277104#p277104
Nos sale el siguiente error:

Code: Select all | Expand

C:\cmplar_64>call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.11.3
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
xHarbour 1.3.1 Intl. (SimpLex) (Build 20250119)
Copyright 1999-2024, http://www.xharbour.org http://www.harbour-project.org/
Compiling '.\PRG\conodbc.prg'...
.\PRG\conodbc.prg(7) Error E0001  Statement not allowed outside of procedure or function
1 error

No code generated
hbmk2[conodbc]: Error: Running Harbour compiler. 1
C:\xHar_msvc_2409\bin\harbour.exe -n .\PRG\conodbc.prg -oobj\ -iC:\xHar_msvc_2409\include -ic:\fwh64_2409\include -undef:.ARCH. -D__PLATFORM__WINDOWS
La línea que nos indica es la siguiente:
Image

Se que hace falta colocar un flag para que no pida la función main() como principal, tú me podrías indicar cuál es?

Gracias de antemano.]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277104#p277104 Tue, 21 Jan 2025 14:15:23 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277104#p277104
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277105#p277105 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277105#p277105 Tue, 21 Jan 2025 14:31:42 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277105#p277105 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277106#p277106 No veo en donde esta la -n perdon :oops: :shock:

conodbc.hbp

Code: Select all | Expand

-gui

#los prgs
.\PRG\conodbc.prg

#recursos
.\res\conodbc.res

-info

#-traceonly
#aqui es para colocar los archivo o y c que se generan en la compilacion incremental 
-workdir=.\obj

-Ic:\fwh64_2409\include
-Lc:\fwh64_2409\lib

-lFivehx64
-lFiveHC64

-lct
-lhbzip
-ltip
-lhbcomm
-lhbcurl
-llibcurl
-lhbzebra

-lsixapi
-ltip
-lpng
-lhbhpdf
-llibharu
-lhbmxml
-llibmysql
-llibcrypto

-lgdiplus
-lucrt
-lole32
-loledlg

-ldflag=/NODEFAULTLIB:libucrt
-ldflag+=/NODEFAULTLIB:msvcrt 

-oconodb
#-inc
-run
xgo64_cnn.bat

Code: Select all | Expand

@setlocal
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
C:\xHar_msvc_2409\bin\hbmk2 conodbc.hbp -xhb -comp=msvc64
@endlocal

]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277106#p277106 Tue, 21 Jan 2025 15:15:42 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277106#p277106
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277111#p277111 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277111#p277111 Tue, 21 Jan 2025 23:44:19 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277111#p277111 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277118#p277118
No se como agregar la -n- cuando la colocó en archivo .hbp, no me genera el exe, la estamos colocando como esta en archivo .hbp que compila con borland, pero como te mencione no funciona :(

Code: Select all | Expand

-gui

#los prgs
.\PRG\conodbc.prg

#recursos
.\res\conodbc.res

-info

#-traceonly
#aqui es para colocar los archivo o y c que se generan en la compilacion incremental 
-workdir=.\obj

-Ic:\fwh64_2409\include
-Lc:\fwh64_2409\lib

-lFivehx64
-lFiveHC64

-lct
-lhbzip
-ltip
-lhbcomm
-lhbcurl
-llibcurl
-lhbzebra

-lsixapi
-ltip
-lpng
-lhbhpdf
-llibharu
-lhbmxml
-llibmysql
-llibcrypto

-lgdiplus
-lucrt
-lole32
-loledlg

-optim-

-ldflag=/NODEFAULTLIB:libucrt
-ldflag+=/NODEFAULTLIB:msvcrt 
-ldflag+= -n- 

-oconodbc
#-inc
-run
]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277118#p277118 Wed, 22 Jan 2025 04:33:29 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277118#p277118
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277119#p277119
-ldflag+= -n-

Eso le da ese flag al enlazador!

tenemos que darle ese flag a Harbour...]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277119#p277119 Wed, 22 Jan 2025 04:39:01 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277119#p277119
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277123#p277123

Podrías ser un poco mas especifico.

Gracias de antemano.]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277123#p277123 Wed, 22 Jan 2025 08:40:54 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277123#p277123
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277130#p277130
xgo.bat

Code: Select all | Expand

@setlocal
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
C:\xHarbour64\bin\hbmk2 test.hbp -xhb -comp=msvc64
@endlocal
test.hbp

Code: Select all | Expand

-gui

-n-

#los prgs
test.prg

-Ic:\fwh64\include
-Lc:\fwh64\lib

-lFivehx64
-lFiveHC64

-lct
-lhbzip
-ltip
-lhbcomm
-lhbcurl
-llibcurl
-lhbzebra

-lsixapi
-ltip
-lpng
-lhbhpdf
-llibharu
-lhbmxml
-llibmysql
-llibcrypto

-lgdiplus
-lucrt
-lole32
-loledlg

-ldflag=/NODEFAULTLIB:libucrt
-ldflag+=/NODEFAULTLIB:msvcrt 

-oconodbc
#-inc
-run
test.prg

Code: Select all | Expand

#include "FiveWin.ch"

Otro()

function Otro()

    MsgInfo( "ok" )

return nil    
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277130#p277130 Wed, 22 Jan 2025 11:59:32 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277130#p277130
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277135#p277135
aprender entonces !!!]]>
no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277135#p277135 Wed, 22 Jan 2025 15:41:16 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277135#p277135
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277138#p277138

Pero Borland también funciona excelente. Es cuestión de gustos.

Eso si, el debugger a bajo nivel de Visual Studio es una maravilla y eso no lo tenemos en Borland...]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277138#p277138 Wed, 22 Jan 2025 18:34:39 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277138#p277138
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277150#p277150
De nuevo gracias por todo, ya logramos compilar una aplicación pequeñita que necesitamos para la configuración de la conexión odbc, ahora queremos compilar una aplicación que tiene mas prgs, copiamos la misma configuración, agregamos los prg que generan la app, pero sale un error y no logro identificar por que se genera, el error:

Code: Select all | Expand

C:\cmplar_cnt_64>xgo64

C:\cmplar_cnt_64>call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.11.3
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
xHarbour 1.3.1 Intl. (SimpLex) (Build 20250119)
Copyright 1999-2024, http://www.xharbour.org http://www.harbour-project.org/
Compiling '.\PRG\Hl_menu.prg'...
.\PRG\Hl_menu.prg(1524) Error E0032  Can't create output file: 'obj\Hl_menu.c'
Lines 1525, Functions/Procedures 15, pCodes 0
hbmk2[xhl_cnt_64]: Error: Running Harbour compiler. 1
C:\xHar_msvc_2409\bin\harbour.exe -n .\PRG\Hl_menu.prg -n- -oobj\ -iC:\xHar_msvc_2409\include -ic:\fwh64_2409\include -undef:.ARCH. -D__PLATFORM__WINDOWS

C:\cmplar_cnt_64>
La información del archivo de configuración

Code: Select all | Expand

-gui

-n-

#los prgs
.\PRG\Hl_menu.prg
.\PRG\Alyma.prg
.\PRG\Funciones.prg
.\PRG\Abusc.prg
.\PRG\Ajson.prg
.\PRG\Asql.prg
.\PRG\Photos.prg
.\PRG\Ainve.prg
.\PRG\Amete.prg

#recursos
.\RES\hl_cnt.res

-info

#-traceonly
#aqui es para colocar los archivo o y c que se generan en la compilacion incremental 
-workdir=.\obj

-Ic:\fwh64_2409\include
-Lc:\fwh64_2409\lib

-lFivehx64
-lFiveHC64

-lct
-lhbzip
-ltip
-lhbcomm
-lhbcurl
-llibcurl
-lhbzebra

-lsixapi
-ltip
-lpng
-lhbhpdf
-llibharu
-lhbmxml
-llibmysql
-llibcrypto

-lgdiplus
-lucrt
-lole32
-loledlg

-optim-

-ldflag=/NODEFAULTLIB:libucrt
-ldflag+=/NODEFAULTLIB:msvcrt 

-ohl_cnt
#-inc
-run

y el .bat

Code: Select all | Expand

@setlocal
call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
C:\xHar_msvc_2409\bin\hbmk2 xhl_cnt_64.hbp -xhb -comp=msvc64
@endlocal
]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277150#p277150 Thu, 23 Jan 2025 06:32:57 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277150#p277150
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277151#p277151 :D :D :oops: :oops:

Hacía falta crear la carpeta ./obj dentro del directorio en donde se compila :oops:

Encontramos la lógica del error, leyendo el mensaje que publicamos para buscar ayuda jejejejejeje.
Can't create output file: 'obj\Hl_menu.c'
]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277151#p277151 Thu, 23 Jan 2025 06:35:27 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277151#p277151
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277152#p277152 :D :D :D

A grandes rasgos parece que todo funciona con normalidad, la vamos a copiar en par de clientes de confianza para que la prueben. De momento y de manera visual encontramos el siguiente error:

Image

Pasa en los GET que se definen como password, ya le cambiamos el tipo de idioma y codificación, pero sigue fallando.

Así está definido el GET

Code: Select all | Expand

@ 40, 45 GET oGnro VAR oFac:hEncabezado["numero"] SIZE 100, 30 PIXEL OF oDlgFct UPDATE FONT oFont2 RIGHT PASSWORD
]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277152#p277152 Thu, 23 Jan 2025 07:01:09 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277152#p277152
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277153#p277153

Code: Select all | Expand

METHOD DispText() CLASS TGet



         /* //-> Mudei em 25/10/2016 - Para Aparecer um * no PASSWORD-WS Joao
         SetWindowText( ::hWnd, Replicate( If( IsAppThemed(), Chr( 149 ), "*" ),;
                                           Len( Trim( ::oGet:buffer ) ) ) )
         */
         // cambiado:
         SetWindowText( ::hWnd, Replicate( If( IsAppThemed(), Chr( 42 ), "*" ),;
                                          Len( Trim( ::oGet:buffer ) ) ) )

Como esta?

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277153#p277153 Thu, 23 Jan 2025 07:15:08 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277153#p277153
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277156#p277156
esta así:

Code: Select all | Expand

         SetWindowText( ::hWnd, Replicate( If( IsAppThemed(), Chr( 149 ), "*" ),;
                                           Len( Trim( ::oGet:buffer ) ) ) )
]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277156#p277156 Thu, 23 Jan 2025 07:35:17 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277156#p277156
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277157#p277157

Code: Select all | Expand

SetWindowText( ::hWnd, Replicate( If( IsAppThemed(), Chr( 42 ), "*" ),;
                                           Len( Trim( ::oGet:buffer ) ) ) )
Y prueba.

Mira también:

https://forums.fivetechsupport.com/view ... =3&t=44512

Si el error persiste, habla con Enrico, probablemente sea un defecto en el xHarbour de 64 bits.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277157#p277157 Thu, 23 Jan 2025 07:37:07 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277157#p277157
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277187#p277187
Pero ya hemos revisado más cosas y parece que hay también varios problemas en los acentos, voy a intentar solucionar y cualquier cosa comento.]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277187#p277187 Fri, 24 Jan 2025 10:27:57 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277187#p277187
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277188#p277188
viewtopic.php?p=274969#p274969

El Maestro Nages no pudo dar una solución y hasta el día de hoy no ha respondido.

Quizás ya lo solucionó y se olvidó de responder al tema.

Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277188#p277188 Fri, 24 Jan 2025 10:56:37 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277188#p277188
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Compilar con xharbour y msvc con hbmk2 :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277189#p277189 no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277189#p277189 Fri, 24 Jan 2025 11:07:55 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45325&p=277189#p277189 <![CDATA[FiveWin para Harbour/xHarbour :: Re: HBMK2 - Barra de estado y barra principal mas pequenas :: Reply by JoséQuintas]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45312&p=277218#p277218

Code: Select all | Expand

#ifndef __64__
   1 24 ".\WinXP\WindowsXP.Manifest"
#endif

#ifdef __64__
   1 24 "WinXP/WindowsXP.Manifest64"
#endif
Para ser compatible con cualquier compilador use \\

Code: Select all | Expand

1 24 \\WinXP\\WindowsXP.Manifest
Lo he usado así (\\) con bcc, msvc y mingw.
prueba se resuelve.]]>
no_email@example.com (JoséQuintas) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45312&p=277218#p277218 Sun, 26 Jan 2025 15:38:47 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45312&p=277218#p277218
<![CDATA[FiveWin para Harbour/xHarbour :: Re: FW_ReadImage error :: Reply by TOTOVIOTTI]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45329&p=277091#p277091
no saco mucho en claro en el post que me pasas, seguiré buscando
cual puede ser el problema. Entiendo que tenga que ver con el tema
del uso de la memoria respecto de los archivos de imágenes de los recursos...

:(

Muchas gracias..]]>
no_email@example.com (TOTOVIOTTI) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45329&p=277091#p277091 Tue, 21 Jan 2025 05:02:45 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45329&p=277091#p277091
<![CDATA[FiveWin para Harbour/xHarbour :: Re: FW_ReadImage error :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45329&p=277094#p277094
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45329&p=277094#p277094 Tue, 21 Jan 2025 06:11:06 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45329&p=277094#p277094
<![CDATA[FiveWin para Harbour/xHarbour :: Re: FW_ReadImage error :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45329&p=277117#p277117 Is the image a bmp or ico or some other? Let me see the entry in the RC file.]]> no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45329&p=277117#p277117 Wed, 22 Jan 2025 03:40:28 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45329&p=277117#p277117 <![CDATA[FiveWin para Harbour/xHarbour :: Re: FW_ReadImage error (to Mr.Nages) :: Reply by TOTOVIOTTI]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45329&p=277148#p277148
1) My version is 24.08

2) Regarding whether it is from BMP or ICO, yes, they are the only resources I use in my DIALOGs.

3) As for how I use it:
REDEFINE BITMAP oBmp ID 100 OF oDlg RESOURCE "D_CLIENTES" TRANSPARENT

I clarify that it does not always happen, I suppose it must be something of memory, because, once the error occurs, it repeats itself. If I restart the computer, it works fine again.

Thank you so much!!
Roberto]]>
no_email@example.com (TOTOVIOTTI) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45329&p=277148#p277148 Thu, 23 Jan 2025 05:28:52 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45329&p=277148#p277148
<![CDATA[FiveWin para Harbour/xHarbour :: Re: FW_ReadImage error :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45329&p=277194#p277194
Please locate this line of code:

Code: Select all | Expand

aBmp  := { If( lDuplicate, DuplicateIcon( uBmp ), uBmp ), 0, 32, 32, .f., "ICON", .f., "" }
Replace this line of code with this line

Code: Select all | Expand

aBmp  := { If( lDuplicate, DuplicateIcon( uBmp ), uBmp ), 0, 32, 32, .f., "ICON", .f., "", nil, "" }
I hope this fixes the issue.
If not, please let me know.]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45329&p=277194#p277194 Sat, 25 Jan 2025 02:50:29 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45329&p=277194#p277194
<![CDATA[FiveWin para Harbour/xHarbour :: Re: FW_ReadImage error :: Reply by TOTOVIOTTI]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45329&p=277221#p277221
Correction made.
I hope the fix you suggest solves the problem! We'll see what my users report to me!!

Thank you so much!!!!!

Roberto]]>
no_email@example.com (TOTOVIOTTI) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45329&p=277221#p277221 Mon, 27 Jan 2025 03:56:21 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45329&p=277221#p277221
<![CDATA[FiveWin para Harbour/xHarbour :: Clausula TRANSPARENT no funciona en GROUP :: Author leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45346&p=277190#p277190
Estamos intentando definir un GROUP desde recursos, pero la clausula transparent no funciona correctamente, creo que cabe aclarar que el group esta a su vez montado sobre un folder.

En muchas partes del programa usamos los group desde recursos, nunca los REDEFINIMOS y funcionan bien, pero en este caso es necesario, por que en algunas ocasiones vamos a necesitar hacer oGroup:hide().

Image

Code: Select all | Expand

REDEFINE GROUP oGgrRt ID 4007 OF oFld:aDialogs[ 2 ] TRANSPARENT 
Gracias de antemano.]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45346&p=277190#p277190 Fri, 24 Jan 2025 13:40:42 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45346&p=277190#p277190
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Clausula TRANSPARENT no funciona en GROUP :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45346&p=277203#p277203
Mustre el código y el .RC, pls.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45346&p=277203#p277203 Sat, 25 Jan 2025 11:06:22 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45346&p=277203#p277203
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Clausula TRANSPARENT no funciona en GROUP :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45346&p=277205#p277205

Code: Select all | Expand

// C:\FWH\SAMPLES\LEANDGRP.PRG

#include "FiveWin.ch"

FUNCTION Main()

   LOCAL oDlg, oFont, oBold, aVar[ 2 ], cTitle

   AFill( aVar, Space( 60 ) )

   cTitle := "GROUPBOX con xHarbour de 64 bits - Funciona?"

   DEFINE FONT oFont NAME "ARIAL" SIZE 0, - 14
   DEFINE FONT oBold NAME "ARIAL" SIZE 0, - 14 BOLD

   DEFINE DIALOG oDlg SIZE 500, 250 PIXEL TRUEPIXEL TITLE cTitle FONT oFont ;
      TRANSPARENT

   oDlg:lHelpIcon := .F.

   @  70, 50 GET aVar[ 1 ] SIZE 200, 20 PIXEL OF oDlg

   @ 100, 50 GET aVar[ 2 ] SIZE 200, 20 PIXEL OF oDlg

   oDlg:bPainted := < | hDC |
   RoundBox( hDC, 20, 40, 300, 150, 10, 10, CLR_HRED, 1 )
   oDlg:SayText( "Group Title-64 bits", { 30, 30, 50, 200 }, NIL, oBold, ;
                 { CLR_GREEN, oDlg:nClrPane } )
   RETURN NIL
   >

   @ 200, 200 BUTTON "Ok" SIZE 50, 20 OF oDlg PIXEL ;
      ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED

   RELEASE FONT oFont, oBold

RETURN NIL
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45346&p=277205#p277205 Sat, 25 Jan 2025 11:46:50 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45346&p=277205#p277205
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Clausula TRANSPARENT no funciona en GROUP :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45346&p=277211#p277211
Si lo que necesitas es ocultarlo a veces, solamente, esto se puede hacer aunque no esté redefinido.

Se busca el control por su ID y se le da la orden de ocultarse:

#define SW_HIDE 0

local hWndControl := GetDlgItem( oDlg:hWnd, ID_GROUP )

ShowWindow( hwndControl, SW_HIDE )

Recuerda que esto debes hacerlo desde la claúsula ON INIT del diálogo para que los handles tanto del diálogo como del control existan]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45346&p=277211#p277211 Sat, 25 Jan 2025 16:30:46 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45346&p=277211#p277211
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Clausula TRANSPARENT no funciona en GROUP :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45346&p=277254#p277254 no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45346&p=277254#p277254 Tue, 28 Jan 2025 13:52:22 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45346&p=277254#p277254 <![CDATA[FiveWin para Harbour/xHarbour :: Color de fondo y texto a los campos TEXTO (MEMO) :: Author Armando]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45351&p=277234#p277234
Con el siguiente código en el MAIN, se define el color de los GET al tomar el foco y al perderlo

Code: Select all | Expand

   TGet():lClrFocus := (.T.)
   TGet():nClrFocus := nRGB( 213, 219, 255 )
Pero para los campos TEXT (MEMO) no funciona, hay forma?

Saludos]]>
no_email@example.com (Armando) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45351&p=277234#p277234 Mon, 27 Jan 2025 16:52:55 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45351&p=277234#p277234
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Color de fondo y texto a los campos TEXTO (MEMO) :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45351&p=277240#p277240

Code: Select all | Expand

// C:\FWH..\SAMPLES\CORGET2.PRG
// http://forums.fivetechsupport.com/viewtopic.php?f=3&t=42551&sid=3bfb222ce4809ed3dd5509ea234429ea

#include "fivewin.ch"

#Define CLR_SOFTYELLOW nRGB( 255, 251, 225 ) //-> Amerelo Soft.

FUNCTION Main()

   LOCAL aColors := { CLR_WHITE, CLR_YELLOW, CLR_HGREEN }
   LOCAL oDlg, oFont, oGet, oMemo, n, oBtnCal, oBtnCan
   LOCAL nColor   := 1
   LOCAL CText    := "This is some" + CRLF + "text"

   SetGetColorFocus()

   tGet():lDisColors  := .F.
   tGet():nClrTextDis := CLR_HBLUE
   tGet():nClrPaneDis := CLR_WHITE

   DEFINE FONT oFont  NAME "Ms Sans Serif"  SIZE 00, -18 BOLD

   DEFINE DIALOG oDlg SIZE 300,350 PIXEL TRUEPIXEL FONT oFont ;
      COLORS CLR_BLACK, CLR_WHITE TRANSPARENT

   oDlg:lHelpIcon := .F.

   /*
   @ 20,20 SAY "Color Code : " GET nColor SIZE 200,24 PIXEL PICTURE "9" ;
      OF oDlg VALID ( ;
            n  := aColors[ ( ( nColor - 1 ) % 3 ) + 1 ], ;
            oMemo:SetColor( CLR_BLACK, n ), ;
            .t. )
   */

   @ 20, 20 SAY "Cambiar Color: " SIZE 200,24 PIXEL OF oDlg UPDATE TRANSPARENT

   @ 60, 20 GET oMemo VAR cText MEMO SIZE 260,220 PIXEL OF oDlg  /* ;
      COLORS CLR_BLACK, aColors[ nColor ] */

   @ 300, 100  BTNBMP oBtnCal FILENAME "..\bitmaps\16x16\floppy.bmp" ;
       FLAT SIZE 20, 14 PIXEL OF oDlg NOBORDER                     ;
       ACTION SET_COLOR( oMemo, nColor )

   @ 300, 150  BTNBMP oBtnCan FILENAME "..\bitmaps\16x16\Exit.bmp" ;
       FLAT SIZE 20, 14 PIXEL OF oDlg NOBORDER                     ;
       ACTION( oDlg:End() )

   oBtnCan:lCancel := .T.

   ACTIVATE DIALOG oDlg CENTERED ON INIT oMemo:SetFocus()

   oFont:End()

RETURN NIL

FUNCTION SET_COLOR( oMemo, nColor )

   LOCAL oIni, oBrush, oBmp
   LOCAL nTipo, cStyle, cFile, cLogo, nRow, nCol, lSelect

   nColor := ChooseColor()

   oMemo:SetColor( nColor, CLR_WHITE )
   oMemo:Refresh()

RETURN( nColor )

// FIN / END
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45351&p=277240#p277240 Tue, 28 Jan 2025 06:22:27 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45351&p=277240#p277240
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Color de fondo y texto a los campos TEXTO (MEMO) :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45351&p=277241#p277241

Code: Select all | Expand

// C:\FWH..\SAMPLES\CORMEMO.PRG

***************************************************
* Multi SAY/GET testing in 32 bit Xbase++ mode....*
* Jon Berg 10-8-99                                *
***************************************************
#include "FiveWin.ch"
*********************

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

static oWnd, lCambiaColor := .T.

//----------------------------------------------------------------------------//

function Main()

   DEFINE WINDOW oWnd FROM 1, 1 TO 30, 70 ;
      TITLE "Testing Says/Gets and Get Pictures and Foreground/Background Colors" ;
      MENU BuildMenu()

   SET MESSAGE OF oWnd TO "FiveWin++"

   ACTIVATE WINDOW oWnd MAXIMIZED

return nil

//----------------------------------------------------------------------------//

function BuildMenu()

   local oMenu

   MENU oMenu
      MENUITEM "&Say/Get Testing"
      MENU
         MENUITEM "&Build Multi GET Dialog1 with PICTs "  ACTION (BldDlg1())
         MENUITEM "Item &2"  ACTION MsgInfo("Test Menu Item2")
         MENUITEM "Item &3"  ACTION MsgInfo("Test Menu Item3")
         SEPARATOR
         MENUITEM "Exit" ACTION oWnd:End()
      ENDMENU
  ENDMENU
return oMenu

//----------------------------------------------------------------------------//

function BldDlg1()

   local oDlg, oArial, oFont, oMemo, oGroup
   local cName1    := "ONE          "
   local cName2    := "two        "
   local cName3    := "3        "
   local cName4    := "4       "
   local cName5    := "5        "
   local cName6    := "54321        "
   local cName7    := "567890                  "
   local lRESERVE  := .F.
   local cPROV_TYPE:= SPACE(20)
   local cPHONE    := SPACE(18)
   local dCERT_DATE:= CTOD('  /  /  ')
   local nPROC_DAYS:= 9876
   local cTEXT     := "Use Tab or Shift Tab to move to next get."+SPACE(256)
   LOCAL aGet      := ARRAY(5)

   SET EPOCH TO 1920
   SET CENTURY ON

   DEFINE DIALOG oDlg FROM 1, 1 TO 600, 800 ;
          TITLE "Hello Gets!"               ;
          STYLE  nOr(WS_POPUP,              ;
                     WS_VISIBLE,            ;
                     WS_CAPTION,            ;
                     WS_THICKFRAME,         ;
                     WS_SYSMENU,            ;
                     WS_MINIMIZEBOX,        ;
                     WS_MAXIMIZEBOX)        ;
          PIXEL OF oWnd                            && Defined by Pixels


   DEFINE FONT oFont NAME "FIXEDSYS" SIZE 10, -10    && Use a Nonproportional font
   SET FONT OF oDlg TO oFont                         && so characters line up in Says

   @  00, 03 SAY "Showing how to do SAY/GETs from source code.  No DLLs or RC files. " OF oDlg COLORS CLR_BLACK,CLR_YELLOW BORDER SIZE 300,10
   @  01, 03 SAY "Navigation Keys to traverse gets are Ret, Arrows, Tab and Shift Tab....ESC to close this Dialog" OF oDlg COLORS CLR_WHITE,CLR_BLUE   BORDER SIZE 380,10
   @  02, 03 SAY "Testing Say with different colors and a border. "  OF oDlg COLORS CLR_HRED   ,CLR_WHITE  BORDER SIZE 200,10
   //@  03, 03 SAY "Testing Say with different colors and no border."  OF oDlg COLORS CLR_HBLUE  ,CLR_WHITE         SIZE 200,10

   // COLOR IN GROUP BOX.

   @ 3.95, 2.96 SAY "" OF oDlg COLORS CLR_BLACK, CLR_YELLOW BORDER ;
      SIZE 192, 45 UPDATE

   @ 04, 2.50 GROUP oGroup TO 7.50, 30  LABEL "GROUP BOX COLOR" OF oDlg ;
      TRANSPARENT COLOR CLR_ORANGE, CLR_WHITE

   // @ 163, 2 GROUP oGroup TO 192, 200 LABEL "RECOMENDACIONES" OF oDlg  pixel TRANSPARENT

   @  05, 19 SAY "Field length" OF oDlg SIZE 65,10  && Use normal colors
   @  06, 19 SAY "      |     " OF oDlg SIZE 65,10

   @  07, 03 SAY "1  Chr No PICT                       13" OF oDlg COLORS CLR_BLACK ,CLR_HCYAN BORDER SIZE 195,10
   @  08, 03 SAY "2  Chr No PICT                       11" OF oDlg COLORS CLR_BLUE  ,CLR_HCYAN BORDER SIZE 195,10
   @  09, 03 SAY "3  Chr No PICT                        9" OF oDlg COLORS CLR_RED   ,CLR_HCYAN BORDER SIZE 195,10
   @  10, 03 SAY "4  Chr    PICT 'NNNNNNNN'             8" OF oDlg COLORS CLR_HRED  ,CLR_HCYAN BORDER SIZE 195,10
   @  11, 03 SAY "5  Chr    PICT 'AAAAAAAAA'            9" OF oDlg COLORS CLR_HGREEN,CLR_HCYAN BORDER SIZE 195,10
   @  12, 03 SAY "6  Chr    PICT '9999999999'          13" OF oDlg COLORS CLR_BLACK ,CLR_HCYAN BORDER SIZE 195,10
   @  13, 03 SAY "7  Chr    PICT '@K@!@S10'            24" OF oDlg COLORS CLR_BLACK ,CLR_HCYAN BORDER SIZE 195,10
   @  14, 03 SAY "   Logic 'T/F or Y/N'                 1" OF oDlg COLORS CLR_BLACK ,CLR_HCYAN BORDER SIZE 195,10
   @  15, 03 SAY "   Chr    PICT '@S5'and !EMPTY()     20" OF oDlg COLORS CLR_BLACK ,CLR_HCYAN BORDER SIZE 195,10
   @  16, 03 SAY "   Chr    PICT '(999)A99-9!99-9999'  18" OF oDlg COLORS CLR_BLACK ,CLR_HCYAN BORDER SIZE 195,10
   @  17, 03 SAY "   Date   !> comp date or empty       8" OF oDlg COLORS CLR_BLACK ,CLR_HCYAN BORDER SIZE 195,10
   @  16.8,   35 SAY "Set Century is on."                  OF oDlg SIZE 195,10
   @  17.3,   35 SAY "Set Epoch is set to 1919."           OF oDlg SIZE 195,10
   @  18, 03 SAY "   Num    PICT '99' !>10             10" OF oDlg COLORS CLR_BLACK ,CLR_HCYAN BORDER SIZE 195,10
   @  19, 03 SAY "   Memo No PICT                     256" OF oDlg COLORS CLR_BLACK ,CLR_HCYAN BORDER SIZE 195,10

   @  07, 28 GET cName1     OF oDlg COLORS "B/BG" SIZE 20,10
   @  08, 28 GET cName2     OF oDlg COLORS CLR_BLACK,CLR_HCYAN
   @  09, 28 GET cName3     OF oDlg COLORS CLR_BLACK,CLR_YELLOW
   @  10, 28 GET cName4     OF oDlg PICTURE "NNNNNNNN"
   @  11, 28 GET cName5     OF oDlg PICTURE "AAAAAAAAA"
   @  12, 28 GET cName6     OF oDlg PICTURE "9999999999"

   @  13, 28 GET cName7     OF oDlg PICTURE "@K@!@S10"
   @  14, 28 GET lRESERVE   OF oDlg PICTURE  "Y"  MESSAGE "Please type in a Y or N "
   @  15, 28 GET cPROV_TYPE OF oDlg PICTURE  "@S5" VALID IF(EMPTY(cPROV_TYPE),(MSGINFO("You have to enter at least 1 Character"),.F.),.T.)
   @  16, 28 GET cPHONE     OF oDlg PICTURE  "(999)A99-9!99-9999"

   @  17, 28 GET dCERT_DATE OF oDlg SIZE 50,10 VALID (IF(dCERT_DATE>DATE(),(MSGINFO("Certification Date must not be greater than Computer Date or blank!"),.F.),.T.)) MESSAGE "Please type in the Certification Date"

   @  18, 28 GET nPROC_DAYS OF oDlg PICTURE "99" VALID (IF(nPROC_DAYS>10,(MSGINFO("Processing Days Must be less that 11 or Empty"),.F.),.T.)) MESSAGE "Please type in the Number of days it took to process"

   //@  19, 28 GET cText MEMO  OF oDlg SIZE 140,46
   @  19, 28 GET aGet[1] VAR cText MEMO  OF oDlg SIZE 140,46 ;
             ON CHANGE( SET_COLOR( aGet ) )

   aGet[1]:bGotFocus  := {|| aGet[1]:SetColor(RGB(0,0,0),RGB(197,205,255)),aGet[1]:Refresh()}
   aGet[1]:bLostFocus := {|| aGet[1]:SetColor(RGB(0,0,0),RGB(255,255,255)),aGet[1]:Refresh()}

   ACTIVATE DIALOG oDlg CENTERED ;
      ON LEFT CLICK nMsgBox( "Incredible!" )

   lCambiaColor := .T.
   
return nil

FUNCTION SET_COLOR( aGet )  // mas o menos esto, cambia a tu gosto.

  LOCAL nCor

  IF lCambiaColor // cambia color solo una viez

      aGet[1]:SetColor( aGet[1]:nClrText, nCor := ChooseColor( aGet[1]:nClrPane ) )

      aGet[1]:Refresh()
      aGet[1]:SetFocus()

   ENDIF

   lCambiaColor := .F.

RETURN NIL
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45351&p=277241#p277241 Tue, 28 Jan 2025 06:24:00 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45351&p=277241#p277241
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Color de fondo y texto a los campos TEXTO (MEMO) :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45351&p=277242#p277242
viewtopic.php?p=269384&hilit=color+in+memo#p269384

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45351&p=277242#p277242 Tue, 28 Jan 2025 06:34:01 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45351&p=277242#p277242
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Color de fondo y texto a los campos TEXTO (MEMO) :: Reply by Armando]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45351&p=277253#p277253
Ya está integrada a FW?, a partir de que versión?, o debo compilarla en mi aplicación?

Con estas líneas de código me tira error

Code: Select all | Expand

   TMultiGet():bColorBlock := { |oGet| If( oGet:lFocused, { CLR_WHITE, CLR_GREEN },;
                                        If( ! oGet:lActive, { CLR_RED, CLR_YELLOW }, { CLR_BLACK, CLR_WHITE } ) ) }
Error description: Error BASE/1005 Message not found: TMULTIGET:_BCOLORBLOCK

Tengo FWH2307

Saludos]]>
no_email@example.com (Armando) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45351&p=277253#p277253 Tue, 28 Jan 2025 12:48:53 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45351&p=277253#p277253
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Color de fondo y texto a los campos TEXTO (MEMO) :: Reply by Armando]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45351&p=277257#p277257
Solucionado, agregué MGET.PRG a mi compilación.

Saludos]]>
no_email@example.com (Armando) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45351&p=277257#p277257 Tue, 28 Jan 2025 15:08:03 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45351&p=277257#p277257
<![CDATA[FiveWin para Harbour/xHarbour :: dialogo resizable desde recursos? :: Author D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277236#p277236
Estoy buscando unos ejemplos que habían con REDEFINE Dialog.....bla,bla
que se podían cambiar el tamaño incluyendo los elementos incluidos en el dialog.
Esto ya está pronto?

Ya se, estoy medio pesado y perdido, disculpen.

Saludos

Ruben Dario Fernandez]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277236#p277236 Mon, 27 Jan 2025 21:26:18 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277236#p277236
<![CDATA[FiveWin para Harbour/xHarbour :: Re: dialogo resizable desde recursos? :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277243#p277243
viewtopic.php?p=165486&hilit=ADAMI#p165486

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277243#p277243 Tue, 28 Jan 2025 07:43:41 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277243#p277243
<![CDATA[FiveWin para Harbour/xHarbour :: Re: dialogo resizable desde recursos? :: Reply by D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277249#p277249
Incluso Mr. Rao publicó unos ejemplos con animaciones
pero ahora no los encuentro y no se si esta totalmente funcional.

Gracias
Saludos.
Ruben Dario Fernandez]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277249#p277249 Tue, 28 Jan 2025 11:00:38 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277249#p277249
<![CDATA[FiveWin para Harbour/xHarbour :: Re: dialogo resizable desde recursos? :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277250#p277250
Relative coordinates of Controls:

viewtopic.php?t=44532

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277250#p277250 Tue, 28 Jan 2025 11:33:14 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277250#p277250
<![CDATA[FiveWin para Harbour/xHarbour :: Re: dialogo resizable desde recursos? :: Reply by D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277251#p277251 sabes si está funcionando 100 %.?
No logro hacerlo funcionar desde recursos.

Un grande Joao. Gracias.

Saludos
Ruben Dario Fernandez]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277251#p277251 Tue, 28 Jan 2025 12:19:49 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277251#p277251
<![CDATA[FiveWin para Harbour/xHarbour :: Re: dialogo resizable desde recursos? :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277265#p277265 If this works as expected, you may use this for your other dialogs.

Code: Select all | Expand

#include "fivewin.ch"

function Main()

   local oDlg, oFont
   local aVar  := { PadR( "get1", 10 ), PadR( "edit", 10 ), Space( 10 ), PadR( "pwd", 10 ) }
   local aGet[ 4 ]

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
   DEFINE DIALOG oDlg RESOURCE "TESTGETS" FONT oFont

   REDEFINE GET  aGet[ 1 ] VAR aVar[ 1 ] ID 101
   REDEFINE EDIT aGet[ 2 ] VAR aVar[ 2 ] ID 102
   REDEFINE EDIT aGet[ 3 ] VAR aVar[ 3 ] ID 103
   REDEFINE GET  aGet[ 4 ] VAR aVar[ 4 ] ID 104

   REDEFINE BUTTON ID 1 ACTION oDlg:End()
   REDEFINE BUTTON ID 2 ACTION oDlg:End()

   oDlg:bInit     := { || SetResize( oDlg ) }
   oDlg:bResized  := { || ResizeCtrls( oDlg ) }

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont

return nil

function SetResize( oDlg )

   local oCtrl

   oDlg:Cargo  := { oDlg:nWidth, oDlg:nHeight, oDlg:oFont:nHeight }
   for each oCtrl in oDlg:aControls
      WITH OBJECT oCtrl
         :Cargo := { :nTop, :nLeft, :nWidth, :nHeight, :oFont:nHeight }
      END
   next

return nil

function 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 nil
.RC file

Code: Select all | Expand

TESTGETS DIALOG 99, 89, 194, 200
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MAXIMIZEBOX | WS_MINIMIZEBOX
CAPTION "TESTGETS"
FONT 8, "MS Sans Serif"
{
 EDITTEXT 101, 33, 51, 131, 12, WS_BORDER | WS_TABSTOP
 EDITTEXT 102, 33, 71, 131, 12, WS_BORDER | WS_TABSTOP
 EDITTEXT 103, 33, 91, 131, 12, WS_BORDER | WS_TABSTOP
 EDITTEXT 104, 33,111, 131, 12, ES_PASSWORD | WS_BORDER | WS_TABSTOP
 DEFPUSHBUTTON "OK", 1, 42, 150, 50, 14
 PUSHBUTTON "Cancel", 2, 102, 150, 50, 14
}
Notes:
Please add " WS_THICKFRAME | WS_MAXIMIZEBOX | WS_MINIMIZEBOX" to the dialog styles in the RC file.

Please let us know if you face any issues]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277265#p277265 Wed, 29 Jan 2025 01:22:02 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277265#p277265
<![CDATA[FiveWin para Harbour/xHarbour :: Re: dialogo resizable desde recursos? :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277267#p277267 Image]]> no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277267#p277267 Wed, 29 Jan 2025 01:34:43 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277267#p277267 <![CDATA[FiveWin para Harbour/xHarbour :: Re: dialogo resizable desde recursos? :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277274#p277274
Master Nages, ¿funciona con cuadros de diálogo más complejos con carpetas, xbrowse, etc?

Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277274#p277274 Wed, 29 Jan 2025 06:58:24 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277274#p277274
<![CDATA[FiveWin para Harbour/xHarbour :: Re: dialogo resizable desde recursos? SOLUCIONADO? :: Reply by D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277282#p277282 Excelente, funciona casi de 100%.
Lo probé con un campo MEMO, varios GETs y BTNBMP.
Al restablecer a la forma original el tamaño de las fuentes no lo respeta, quedan mas chicos.

Es un excelente comienzo.

Gracias
Saludos
Ruben Dario Fernandez

Imágen original
https://ibb.co/cSZc87rM

Imágen luego de jugar un poco
https://ibb.co/mCCpz09W]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277282#p277282 Wed, 29 Jan 2025 11:52:47 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277282#p277282
<![CDATA[FiveWin para Harbour/xHarbour :: Re: dialogo resizable desde recursos? :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277284#p277284 So, we need to review font resizing and we will look into that aspect.
Please keep using and help us by reporting any issues you notice.]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277284#p277284 Wed, 29 Jan 2025 12:15:33 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277284#p277284
<![CDATA[FiveWin para Harbour/xHarbour :: Re: dialogo resizable desde recursos? :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277285#p277285
karinha wrote: Wed Jan 29, 2025 1:58 pm Master Nages, does it work with more complex dialogs with folders, xbrowse, etc?

Master Nages, ¿funciona con cuadros de diálogo más complejos con carpetas, xbrowse, etc?

Gracias, tks.

Regards, saludos.
xbrowse - yes
folders? No. We need to still improve the logic, to handle folders.

I think you have other alternatives in mind.
Please post one working sample like the one above and we will be glad to learn from that.]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277285#p277285 Wed, 29 Jan 2025 12:18:12 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277285#p277285
<![CDATA[FiveWin para Harbour/xHarbour :: Re: dialogo resizable desde recursos? :: Reply by D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277287#p277287
Gracias
Saludos

Ruben Dario Fernandez]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277287#p277287 Wed, 29 Jan 2025 13:09:38 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277287#p277287
<![CDATA[FiveWin para Harbour/xHarbour :: Re: dialogo resizable desde recursos? :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277289#p277289

Code: Select all | Expand

function SetResize( oDlg )

   local oCtrl

   oDlg:Cargo  := { oDlg:nWidth, oDlg:nHeight, oDlg:oFont:nHeight }
   for each oCtrl in oDlg:aControls
      WITH OBJECT oCtrl
         :Cargo := { :nTop, :nLeft, :nWidth, :nHeight, :oFont:nHeight }
      END
   next

return nil
Please change :oFont:nHeight as :oFont:nInpHeight in both the lines and test again please.]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277289#p277289 Wed, 29 Jan 2025 16:39:25 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277289#p277289
<![CDATA[FiveWin para Harbour/xHarbour :: Re: dialogo resizable desde recursos? :: Reply by D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277291#p277291
EXTRAORDINARIO.
Excelente, ya va tomando forma. se ve muy bien.

Saludos

Ruben Dario Fernandez]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277291#p277291 Wed, 29 Jan 2025 22:39:11 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277291#p277291
<![CDATA[FiveWin para Harbour/xHarbour :: Re: dialogo resizable desde recursos? :: Reply by D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277297#p277297
Funciona bien con xBrowse

No Funciona el menu del dialogo
Error linea -> xRatio := oDlg:nWidth / oDlg:Cargo[ 1 ] de ResizeCtrls( oDlg )

No funciona la buttonbar
Error linea -> xRatio := oDlg:nWidth / oDlg:Cargo[ 1 ] de ResizeCtrls( oDlg )

Gracias, Saludos

Ruben Dario Fernandez]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277297#p277297 Thu, 30 Jan 2025 07:55:45 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45352&p=277297#p277297
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Archivo de compilacion .mak para Visual Studio :: Reply by Compuin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277298#p277298
Existe alguna forma de decirle a una clase que no tome el archivo de manifest? Tal vez eso solucione mi problema con la clase TBar.prg

Gracias]]>
no_email@example.com (Compuin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277298#p277298 Thu, 30 Jan 2025 08:11:49 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277298#p277298
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Archivo de compilacion .mak para Visual Studio :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277302#p277302 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277302#p277302 Thu, 30 Jan 2025 10:35:41 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277302#p277302 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Archivo de compilacion .mak para Visual Studio :: Reply by Compuin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277303#p277303
Solo remueve los puntos del lado izquierdo en la barra pero no coloca las lineas que van en lazo izquierdo]]>
no_email@example.com (Compuin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277303#p277303 Thu, 30 Jan 2025 10:43:11 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277303#p277303
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Archivo de compilacion .mak para Visual Studio :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277305#p277305
gracias!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277305#p277305 Thu, 30 Jan 2025 10:49:06 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277305#p277305
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Archivo de compilacion .mak para Visual Studio :: Reply by Compuin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277307#p277307 no_email@example.com (Compuin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277307#p277307 Thu, 30 Jan 2025 10:57:49 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277307#p277307 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Archivo de compilacion .mak para Visual Studio :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277308#p277308
Compuin wrote: Thu Jan 30, 2025 5:57 pm Con que puedo subir una imagen a este foro?
https://imgur.com/

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277308#p277308 Thu, 30 Jan 2025 11:15:00 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277308#p277308
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Archivo de compilacion .mak para Visual Studio :: Reply by Compuin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277310#p277310
https://imgur.com/a/sITCvnA]]>
no_email@example.com (Compuin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277310#p277310 Thu, 30 Jan 2025 11:23:08 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277310#p277310
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Archivo de compilacion .mak para Visual Studio :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277315#p277315
Tienes alguna imagen de como quieres que se vea ?]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277315#p277315 Thu, 30 Jan 2025 14:22:58 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277315#p277315
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Archivo de compilacion .mak para Visual Studio :: Reply by Compuin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277317#p277317
https://imgur.com/a/sITCvnA

La imagen de arriba es como se ve cuando agrego la linea sugerida y abajo como quiero que se vea, es decir, con 2 barras verticales en la izquierda del Bar]]>
no_email@example.com (Compuin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277317#p277317 Thu, 30 Jan 2025 14:28:44 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45318&p=277317#p277317
<![CDATA[FiveWin para Harbour/xHarbour :: uCharToVal() :: Author FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45358&p=277309#p277309
Yo tenía entendido que haciendo esto:
uMiValor := uCharToVal( uMiValor, MiOtroValor )

uMiValor se convertía al tipo de uMiOtroValor

Es decir que si ValType( uMiOtroValor ) era N, entonces:
uMiValor := uCharToVal( uMiValor, MiOtroValor )

era lo mismo que:
uMiValor := Val( uMiValor )

Pués resulta que esto:
uMiValor := uCharToVal( uMiValor, "N" )

hace los mismo que esto:
uMiValor := uCharToVal( uMiValor, 28 )
(28 o cualquier otro número)

En fin, hace años esta función ya me hizo la pirula.]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45358&p=277309#p277309 Thu, 30 Jan 2025 11:20:41 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45358&p=277309#p277309
<![CDATA[FiveWin para Harbour/xHarbour :: Re: uCharToVal() :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45358&p=277316#p277316
/**
* Convierte una cadena de texto en un valor de un tipo específico.
*
* @param {string} cText - El texto a convertir.
* @param {string} cType - El tipo de conversión deseado ('C' para cadena, 'N' para número, 'L' para lógico, 'D' para fecha, 'M' tratado como 'C').
*
* @returns {any} - Devuelve el valor convertido según el tipo especificado o inferido.
*
* @description
* La función toma una cadena de texto y la convierte al tipo de dato especificado en `cType`.
* Si `cType` no es válido, se intenta inferir el tipo de dato.
*
* - Si `cType` es 'C', el valor devuelto es la cadena original sin espacios al inicio y al final.
* - Si `cType` es 'N', intenta convertir la cadena a un número.
* - Si `cType` es 'L', determina si la cadena representa un valor lógico ('T'/True o 'F'/False en varios idiomas).
* - Si `cType` es 'D', intenta convertir la cadena a una fecha.
* - Si no se especifica un tipo válido, se infiere el tipo a partir del contenido de `cText`.
*
* @example
* uCharToVal("123", "N") // Devuelve 123 como número
* uCharToVal("true", "L") // Devuelve .T. (true en Harbour)
* uCharToVal("2024-01-01", "D") // Devuelve una fecha
* uCharToVal("Hello", "C") // Devuelve "Hello"
*/
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45358&p=277316#p277316 Thu, 30 Jan 2025 14:28:07 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45358&p=277316#p277316
<![CDATA[FiveWin para Harbour/xHarbour :: Re: uCharToVal() :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45358&p=277324#p277324
Muchas gracias Antonio,]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45358&p=277324#p277324 Thu, 30 Jan 2025 16:23:41 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45358&p=277324#p277324
<![CDATA[FiveWin para Harbour/xHarbour :: Re: uCharToVal() :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45358&p=277338#p277338
Sample:

Code: Select all | Expand

function TestStr2Val()

   local aStr  := { "34512.01", "1,234.56", "3.456,34", "12.5%", "true", "FALSO",  ;
                    "10/20/2020", "25-02-1998", "10 jan 2010", "feb 15, 78" }

   SET DATE ITALIAN
   SET CENTURY ON
   FWNumFormat( "A", .t. )


   AEval( aStr, { |c,i| aStr[ i ] := { c, uCharToVal( c ), nil } } )
   AEval( aStr, { |a,i| a[ 3 ] := ValType( a[ 2 ] ) } )


   XBROWSER aStr TITLE "uCharToVal(c)" SETUP ( ;
      oBrw:cHeaders := { "FUNCTION", "RESULT", "TYPE" }, ;
      oBrw:aCols[ 1 ]:bStrData := { |x,o| 'uCharToVal( "' + o:Value + '" ) =' }, ;
      oBrw:aCols[ 1 ]:nDataStrAlign := AL_RIGHT, ;
      oBrw:aCols[ 3 ]:nDataStrAlign := AL_CENTER )

return nil
Image]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45358&p=277338#p277338 Fri, 31 Jan 2025 05:13:27 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45358&p=277338#p277338
<![CDATA[FiveWin para Harbour/xHarbour :: operator ^^ como puedo solucionar? :: Author MGA]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277313#p277313

function ...

cHex := ""
cChar := ""

For Each cChar IN cResposta
if HB_EnumIndex( cChar ) < Len( cResposta )
if HB_EnumIndex( cChar ) == nStartEvaluate
cHex := cChar
endif
cHex := cHex ^^ cResposta[ HB_EnumIndex( cChar ) + 1 ]
endif
next

return cHex]]>
no_email@example.com (MGA) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277313#p277313 Thu, 30 Jan 2025 13:28:50 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277313#p277313
<![CDATA[FiveWin para Harbour/xHarbour :: Re: operator ^^ como puedo solucionar? :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277318#p277318 no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277318#p277318 Thu, 30 Jan 2025 14:29:15 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277318#p277318 <![CDATA[FiveWin para Harbour/xHarbour :: Re: operator ^^ como puedo solucionar? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277321#p277321 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277321#p277321 Thu, 30 Jan 2025 14:59:00 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277321#p277321 <![CDATA[FiveWin para Harbour/xHarbour :: Re: operator ^^ como puedo solucionar? :: Reply by MGA]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277339#p277339
Seria referente esta linha de código:

cHex := cHex ^^ cResposta[ HB_EnumIndex( cChar ) + 1 ]


static function BitXorString( cResposta, nStartEvaluate )
Local cHex, cChar

Default nStartEvaluate := 1

cHex := ""
cChar := ""

For Each cChar IN cResposta
if HB_EnumIndex( cChar ) < Len( cResposta )
if HB_EnumIndex( cChar ) == nStartEvaluate
cHex := cChar
endif
cHex := cHex ^^ cResposta[ HB_EnumIndex( cChar ) + 1 ]
endif
next

return cHex]]>
no_email@example.com (MGA) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277339#p277339 Fri, 31 Jan 2025 06:41:04 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277339#p277339
<![CDATA[FiveWin para Harbour/xHarbour :: Re: operator ^^ como puedo solucionar? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277343#p277343
cHex := Chr( NumXor( Asc( cHex ), Asc( cResposta[ HB_EnumIndex( cChar ) + 1 ] ) ) )]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277343#p277343 Fri, 31 Jan 2025 10:16:38 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277343#p277343
<![CDATA[FiveWin para Harbour/xHarbour :: Re: operator ^^ como puedo solucionar? :: Reply by MGA]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277344#p277344
CHAR = chr

ok?]]>
no_email@example.com (MGA) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277344#p277344 Fri, 31 Jan 2025 10:35:05 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277344#p277344
<![CDATA[FiveWin para Harbour/xHarbour :: Re: operator ^^ como puedo solucionar? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277345#p277345
MGA wrote: Fri Jan 31, 2025 5:35 pm Sr. Antonio,

CHAR = chr

ok?
Yes! :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277345#p277345 Fri, 31 Jan 2025 10:38:18 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45359&p=277345#p277345
<![CDATA[FiveWin para Harbour/xHarbour :: Richedit5 desde recursos :: Author D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45366&p=277348#p277348
Sigo molestando. Ya se si pero...

No encuentro ningún ejemplo desde recursos con richedit5 y de como
guardarlo en una DBF y también como editarlo en mi programa.

Alguien tendrá uno por ahí?

Gracias
Saludos

Ruben Dario Fernandez]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45366&p=277348#p277348 Fri, 31 Jan 2025 12:29:07 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45366&p=277348#p277348
<![CDATA[FiveWin para Harbour/xHarbour :: Re: HDBC para SQLite :: Reply by xmanuel]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45121&p=277255#p277255 Probada y fusionando.

Ahora vamos por HDBC para PostgreSQL.
Pongo otro hilo para Postgres]]>
no_email@example.com (xmanuel) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45121&p=277255#p277255 Tue, 28 Jan 2025 14:16:07 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45121&p=277255#p277255
<![CDATA[FiveWin para Harbour/xHarbour :: Re: HDBC para SQLite :: Reply by carito]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45121&p=277261#p277261 pues es muy comun que al existir cortes en internet o en la misma red local, se pierde todo.

Saludos]]>
no_email@example.com (carito) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45121&p=277261#p277261 Tue, 28 Jan 2025 19:35:22 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45121&p=277261#p277261
<![CDATA[FiveWin para Harbour/xHarbour :: Re: HDBC para SQLite :: Reply by xmanuel]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45121&p=277290#p277290 y voy a implementar también el método ping()

:D]]>
no_email@example.com (xmanuel) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45121&p=277290#p277290 Wed, 29 Jan 2025 17:15:02 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45121&p=277290#p277290
<![CDATA[FiveWin para Harbour/xHarbour :: Re: HDBC para SQLite :: Reply by Marcelo Via Giglio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45121&p=277349#p277349
xmanuel wrote: Tue Jan 28, 2025 9:16 pm Ya está lista HDBC para SQLite.
Probada y fusionando.

Ahora vamos por HDBC para PostgreSQL.
Pongo otro hilo para Postgres
Quedo a la espera, muchas gracias]]>
no_email@example.com (Marcelo Via Giglio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45121&p=277349#p277349 Fri, 31 Jan 2025 12:56:59 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45121&p=277349#p277349
<![CDATA[FiveWin para Harbour/xHarbour :: Re: HDBC para SQLite :: Reply by xmanuel]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45121&p=277363#p277363
Ya está implementado el método ping() en HDbc para SQLite y para PostgreSQL...

:D]]>
no_email@example.com (xmanuel) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45121&p=277363#p277363 Sat, 01 Feb 2025 10:26:17 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45121&p=277363#p277363
<![CDATA[FiveWin para Harbour/xHarbour :: Focus en window MDICHILD :: Author FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277329#p277329
¿Cómo puedo saber si una de las window MDICHILD tiene el foco?

Gracias,]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277329#p277329 Thu, 30 Jan 2025 23:58:49 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277329#p277329
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Focus en window MDICHILD :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277330#p277330
buenos dias

Prueba con oWndChild:hWnd == GetFocus()

Tambien podrias usar oWndChild:bGotFocus = { || MsgBeep() } y oWndChild:bLostFocus = { || MsgBeep() }

Puedes usar OutputDebugString( "foco recibido" ) y dbwin32 en vez de MsgBeep(). Si usas MsgInfo() alteraras la secuencia de foco]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277330#p277330 Fri, 31 Jan 2025 00:36:44 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277330#p277330
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Focus en window MDICHILD :: Reply by JESUS MARIN]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277335#p277335 En mi entorno de pruebas, MdiChildFolder, creé una función que me muestra todas las ventanas MdiChild y me marca la que está activa.


Image

Por lo tanto deberia ser sencillo resolverlo. Te copio el código de esta función

Code: Select all | Expand

//--------------------------------------------------------------------------
METHOD MenuFolders( oButton, nRow, nCol ) CLASS TMdiChildFolder


LOCAL aVentanasMdi:=::Genera_botones_mdi()
LOCAL I:=1
local oMenu
LOCAL nRowMenu:=oButton:nTop+oButton:oWnd:nTop+oButton:nHeight
LOCAL nColMenu:=oButton:nLeft

MENU oMenu POPUP
   FOR I=1 TO LEN(aVentanasMdi)
      IF aVentanasMdi[i]==Self:cCaption
         MENUITEM aVentanasMdi[i] OF oMenu CHECKED
      ELSE
         MENUITEM aVentanasMdi[i] OF oMenu
      ENDIF
   NEXT I
ENDMENU

FOR I=1 TO LEN(aVentanasMdi)
   oMenu:aItems[i]:bAction := HazBlock(i)
NEXT I

oMenu:Activate( nRowMenu,nColMenu, Self , .f. )

RETURN(NIL)

//-----------------------------------------------------------------------------
]]>
no_email@example.com (JESUS MARIN) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277335#p277335 Fri, 31 Jan 2025 02:51:26 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277335#p277335
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Focus en window MDICHILD :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277351#p277351
Estoy buscando algo que no precise código, alguna DATA.

Supongo que si la clase tiene alguna DATA que al tomar el foco le da .T. y cuando lo pierde le da .F. sería lo ideal.]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277351#p277351 Fri, 31 Jan 2025 14:45:53 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277351#p277351
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Focus en window MDICHILD :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277352#p277352
oWndChild:lFocused]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277352#p277352 Fri, 31 Jan 2025 15:05:42 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277352#p277352
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Focus en window MDICHILD :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277353#p277353
JESUS MARIN wrote: Fri Jan 31, 2025 9:51 am Buenos dias
En mi entorno de pruebas, MdiChildFolder, creé una función que me muestra todas las ventanas MdiChild y me marca la que está activa.


Image

Por lo tanto deberia ser sencillo resolverlo. Te copio el código de esta función

Code: Select all | Expand

//--------------------------------------------------------------------------
METHOD MenuFolders( oButton, nRow, nCol ) CLASS TMdiChildFolder


LOCAL aVentanasMdi:=::Genera_botones_mdi()
LOCAL I:=1
local oMenu
LOCAL nRowMenu:=oButton:nTop+oButton:oWnd:nTop+oButton:nHeight
LOCAL nColMenu:=oButton:nLeft

MENU oMenu POPUP
   FOR I=1 TO LEN(aVentanasMdi)
      IF aVentanasMdi[i]==Self:cCaption
         MENUITEM aVentanasMdi[i] OF oMenu CHECKED
      ELSE
         MENUITEM aVentanasMdi[i] OF oMenu
      ENDIF
   NEXT I
ENDMENU

FOR I=1 TO LEN(aVentanasMdi)
   oMenu:aItems[i]:bAction := HazBlock(i)
NEXT I

oMenu:Activate( nRowMenu,nColMenu, Self , .f. )

RETURN(NIL)

//-----------------------------------------------------------------------------
Jesús, muy bonito y profesional tu diseño.

Sería genial si compartieses un ejemplo para todos, gracias!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277353#p277353 Fri, 31 Jan 2025 15:06:58 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277353#p277353
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Focus en window MDICHILD :: Reply by FranciscoA]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277360#p277360
Estoy buscando algo que no precise código, alguna DATA.

Carlos.
Cuando abres ventanas MDICHILD, en el elemento 2 del menu de la ventana principal se van mostrando las mdichilds abiertas y marcada la que tiene el foco. No sé si es lo que buscas. ( MENUINFO 2 )

Saludos.]]>
no_email@example.com (FranciscoA) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277360#p277360 Sat, 01 Feb 2025 08:52:42 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277360#p277360
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Focus en window MDICHILD :: Reply by JESUS MARIN]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277370#p277370 Por mi parte, encantado de ceder todo el códdigo.
Solo dime cómo hacerlo.
Saludos
Jesús Marín
Antonio Linares wrote: Fri Jan 31, 2025 10:06 pm
JESUS MARIN wrote: Fri Jan 31, 2025 9:51 am Buenos dias
En mi entorno de pruebas, MdiChildFolder, creé una función que me muestra todas las ventanas MdiChild y me marca la que está activa.


Image

Por lo tanto deberia ser sencillo resolverlo. Te copio el código de esta función

Code: Select all | Expand

//--------------------------------------------------------------------------
METHOD MenuFolders( oButton, nRow, nCol ) CLASS TMdiChildFolder


LOCAL aVentanasMdi:=::Genera_botones_mdi()
LOCAL I:=1
local oMenu
LOCAL nRowMenu:=oButton:nTop+oButton:oWnd:nTop+oButton:nHeight
LOCAL nColMenu:=oButton:nLeft

MENU oMenu POPUP
   FOR I=1 TO LEN(aVentanasMdi)
      IF aVentanasMdi[i]==Self:cCaption
         MENUITEM aVentanasMdi[i] OF oMenu CHECKED
      ELSE
         MENUITEM aVentanasMdi[i] OF oMenu
      ENDIF
   NEXT I
ENDMENU

FOR I=1 TO LEN(aVentanasMdi)
   oMenu:aItems[i]:bAction := HazBlock(i)
NEXT I

oMenu:Activate( nRowMenu,nColMenu, Self , .f. )

RETURN(NIL)

//-----------------------------------------------------------------------------
Jesús, muy bonito y profesional tu diseño.

Sería genial si compartieses un ejemplo para todos, gracias!
]]>
no_email@example.com (JESUS MARIN) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277370#p277370 Sun, 02 Feb 2025 02:34:37 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277370#p277370
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Focus en window MDICHILD :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277371#p277371
https://mega.nz

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277371#p277371 Sun, 02 Feb 2025 06:09:46 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277371#p277371
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Focus en window MDICHILD :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277372#p277372
Lo más sencillo es crear un repositorio gratuito en github, subir todo el código allí y compartir la URL del repositorio :)

https://github.com/

Gracias!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277372#p277372 Sun, 02 Feb 2025 09:10:39 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45362&p=277372#p277372
<![CDATA[FiveWin para Harbour/xHarbour :: Cambiar el nInterval de un Timer :: Author FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45370&p=277376#p277376
A ver... si en una función que se lanza desde un Timer una de las cosas que debe hacer es cambiar su propio 'nInterval', ¿Cómo lo harían Ustedes?

Creo que no se puede cambiar 'nInterval', si no que se debe finalizar el Timer y crear otro. ¿Es así?

Pero claro si me estoy ejecutando y al mismo tiempo quiero suicidarme y además dar vida a otro Timer ...

Y si además lo hago en multihilo dentro de un hilo independiente del Main()..

¿Cómo lo ven?

...
Añado,
=====

Dentro de una función que se ejecuta desde un Timer, ¿Puedo dar de alta un nuevo Timer?

Otra, ¿Cómo dar de alta un Timer que se ejecute una sola vez?

He visto que en la Clase Timer el '::nId' se actualiza cada vez que se hace un 'Activate' del Timer... entonces ¿Este valor va cambiando?

Nota: es que le estoy dando vueltas a como 'manipular'/gestionar esta lógica y que el programa no pete.

ME RESPONDO
===========

Si que se puede. Se desactiva, se cambia valor al '::nInterval', y se vuelve a activar. ¿Cierto?]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45370&p=277376#p277376 Sun, 02 Feb 2025 15:13:25 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45370&p=277376#p277376
<![CDATA[FiveWin para Harbour/xHarbour :: HDBC para PostgreSQL :: Author xmanuel]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45353&p=277256#p277256 Hecha 100x100 en clases de C++ preparadas fara funcionar en PRG de Harbour.

Con las mismas características que HDBC para SQLite:

Con sentencias preparadas en el lado del servidor para evitar código inyectado y aumentar la seguridad.

Las pruebas que he hecho tarda en importar la DBF test de harbour de 500 registros en 54 milisegundos más rápido incluso que la versión para SQLite que se demora 114 milisegundos.

El fuente de la importación es este:

Code: Select all | Expand

///////////////////////////////////////////////////////////////////////////////
// Proyecto: hdbc
// Fichero: test008.prg
// Autor: Manu Exposito
// Fecha: 
// Descripcion: Traspasa test.dbf de los ejemplos de Harbour a SQL.
//              Si no existe la bases de datos la crea.
//              Si no existe la tabla test la crea.
//              Uso de bindParam
///////////////////////////////////////////////////////////////////////////////

//------------------------------------------------------------------------------

#include "hdbc.ch" 
#include "postgresql_connect.ch" 

#define ID_CARGA	500

//------------------------------------------------------------------------------
// Programa principal

procedure main()

    local oDb, e
    local cCreaTable 

    TEXT INTO cCreaTable
    CREATE TABLE IF NOT EXISTS test
    (
        id          SERIAL,
        first       VARCHAR( 20 ),
        last        VARCHAR( 20 ),
        street      VARCHAR( 30 ),
        city        VARCHAR( 30 ),
        state       VARCHAR( 2 ),
        zip         VARCHAR( 10 ),
        hiredate    DATE,
        married     BOOLEAN,
        age         INTEGER,
        salary      DECIMAL( 9, 2 ),
        notes       VARCHAR( 70 ),
        PRIMARY KEY ( id )
    )

    ENDTEXT
 
    cls

    msg( "Traspaso de datos..." )

    try
        oDb := THDbc():new( _DRIVER_ )

        oDb:connect( _CONN_STRING_ )        
        oDb:exec( cCreaTable )
        
        traspasa( oDb )

    catch  e
        eval( errorBlock(), e )
    finally
        oDb:disconnect()
        msg( "Esto es todo!!!" )
    end	
return

//------------------------------------------------------------------------------
// Usa sentencias preparadas en el lado del servidor y transacciones.

static procedure traspasa( oDb )

    local n := 0, nSec
    local oInsert
    local first, last, street, city, state, zip, hiredate, married, age, salary, notes

    local cSentencia := "INSERT INTO test ( first, last, street, city, state, zip, "  + ;
        "hiredate, married, age, salary, notes ) " + ;
        "VALUES ( $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11 );"

    if file( "test.dbf" )
		
        use test new
		
        oInsert := oDb:prepareStatement( cSentencia ) // Crea el objeto y prepara la sentencia

        // Vincula las variables harbour con cada una de las "?" por su posicion
        oInsert:bindParam(  1, @first  )
        oInsert:bindParam(  2, @last  )
        oInsert:bindParam(  3, @street )
        oInsert:bindParam(  4, @city )
        oInsert:bindParam(  5, @state )
        oInsert:bindParam(  6, @zip )
        oInsert:bindParam(  7, @hiredate )
        oInsert:bindParam(  8, @married )
        oInsert:bindParam(  9, @age )
        oInsert:bindParam( 10, @salary )
        oInsert:bindParam( 11, @notes )

        nSec := hb_milliSeconds()
	
        oDb:startTransaction()
		
        while n < ID_CARGA	
	
            while test->( !eof() )
                first    := test->first
                last     := test->last
                street   := test->street
                city     := test->city
                state    := test->state
                zip      := test->zip
                hiredate := test->hiredate 
                married  := test->married
                age      := test->age
                salary   := test->salary
                notes    := test->notes
		
                oInsert:execute()
                
                ++n

                test->( dbskip( 1 ) )
            end
	
            test->( DbGoTop() )
        end

        oDb:commit()		

        nSec := hb_milliSeconds() - nSec 

        msg( "Se han pasado " + Hb_NToS( n ) + " registros en " + Hb_NToS( nSec ) + " milisegundos", "Uso de bindParam" )
    else
        msg( "Fichero test.dbf no existe" )
    endif

return

//------------------------------------------------------------------------------

Cualquier duda podéis escribir en este hilo.

Saludos]]>
no_email@example.com (xmanuel) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45353&p=277256#p277256 Tue, 28 Jan 2025 14:26:10 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45353&p=277256#p277256
<![CDATA[FiveWin para Harbour/xHarbour :: Re: HDBC para PostgreSQL :: Reply by xmanuel]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45353&p=277364#p277364 ]]> no_email@example.com (xmanuel) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45353&p=277364#p277364 Sat, 01 Feb 2025 10:27:28 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45353&p=277364#p277364 <![CDATA[FiveWin para Harbour/xHarbour :: Re: HDBC para PostgreSQL :: Reply by csincuir]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45353&p=277387#p277387 Como para cuando HDBC para MySQL?
Y para cuando podremos hacer pruebas?

Saludos cordiales.

Carlos]]>
no_email@example.com (csincuir) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45353&p=277387#p277387 Mon, 03 Feb 2025 07:55:35 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45353&p=277387#p277387
<![CDATA[FiveWin para Harbour/xHarbour :: Cómo Insertar registros a na tabla? :: Author Armando]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277216#p277216
Hoy les pido ayuda y escuchar sus sabios consejos para, teniendo una tabla con n cantidad de registros, cómo insertar
n cantidad de registros en cierta posición?, me explico con un ejemplo, si tengo la tabla con estos registros, con dos campo
para no complicar las cosas, el número que antecede al nombre de las frutas es de un campo auto incrementable.

1 Manzana
2 Pera
3 Naranja
4 Mandarina

Si quiero insertar Lima entre Pera y Naranja para quedar así
1 Manzana
2 Pera
3 Lima
4 Naranja
5 Mandarina

Tengo la idea de cómo hacerlo pero me gustaría escuchar sus soluciones para no "inventar el agua caliente",
con el pseudocódigo sería suficiente.

Saludos cordiales a todos]]>
no_email@example.com (Armando) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277216#p277216 Sun, 26 Jan 2025 10:56:47 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277216#p277216
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Cómo Insertar registros a na tabla? :: Reply by Armando]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277228#p277228
Lo he resuelto pasando los registros a una nueva tabla temporal, pero me gustaría saber
si alguien lo haya hecho de otra forma. muestro aquí cómo lo hice por si a alguien mas le sirve.

1.- Estando el foco en el browse, el usuario oprime la tecla INS
2.- En un dialogo solicito el número de renglones o registros a insertar
3.- Identifico el número de registros donde el usuario dio el clic, recuerden que tengo una columna auto incrementable
4.- Con un DO WHILE paso los registros a la tabla temporal, si el número de registro a copiar es mayor que el numero de registro donde el usuario dio clic, entro en un FOR NEXT para agregar, a la tabla temporal, el número de registros que el usuario quiere insertar, al terminar el FOR NEXT sigo pasando los registros faltantes hasta llegar al final de la tabla
5.- Por último, limpio la tabla original y copio todos los registros de la tabla temporal y refresco el browse

Saludos]]>
no_email@example.com (Armando) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277228#p277228 Mon, 27 Jan 2025 11:05:18 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277228#p277228
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Cómo Insertar registros a na tabla? :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277231#p277231
Yo lo haría usando un índice y un campo "DUMMYREC"

1º Veo la DBF en Xbrowse con el índice sobre campo DUMMYREC
2º Estoy en el registro 89.
3º Voy a insertar 4 registros
4º Voy al 'último' registro.
5º Hago
While Recno() <> 89
DUMMYREC := DUMMYREC + 4 con
Skip(-1)
End
nMyDUMMYREC := DUMMYREC - 4
6º Hago esto 4 veces
Append()
DUMMYREC := nMyDUMMYREC++
7º Aplico el índice sobre el campo DUMMYREC

Creo que funcionaría.

Si mientras trabaja el sistema se cae, reindexando no se pierde nada.]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277231#p277231 Mon, 27 Jan 2025 15:30:24 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277231#p277231
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Cómo Insertar registros a na tabla? :: Reply by Armando]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277233#p277233
Es parecido a lo que hago, una diferencia es que yo utilizo tablas MySql con ADO.

Gracias por la idea.

Saludos]]>
no_email@example.com (Armando) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277233#p277233 Mon, 27 Jan 2025 16:48:26 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277233#p277233
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Cómo Insertar registros a na tabla? :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277244#p277244 :shock:]]> no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277244#p277244 Tue, 28 Jan 2025 08:41:10 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277244#p277244 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Cómo Insertar registros a na tabla? :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277246#p277246
Armando wrote: Mon Jan 27, 2025 11:48 pm Amigo Carlos:

Es parecido a lo que hago, una diferencia es que yo utilizo tablas MySql con ADO.

Gracias por la idea.

Saludos
Entonces con más motivo.

Si no voy equivocado, en DBF se añaden al final del fichero, en MySql es el propio motor que decide donde grabarlo, por tanto yo usaría un índice para lo que mencionas.

Y tal como dice César, con 1 millón de registros...]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277246#p277246 Tue, 28 Jan 2025 09:57:39 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277246#p277246
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Cómo Insertar registros a na tabla? :: Reply by Armando]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277252#p277252
Afortunadamente el browse puede llegar tener hasta 50 registros.

Saludos]]>
no_email@example.com (Armando) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277252#p277252 Tue, 28 Jan 2025 12:37:06 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277252#p277252
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Cómo Insertar registros a na tabla? :: Reply by jbrita]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277272#p277272 eso asi de facil

saludos]]>
no_email@example.com (jbrita) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277272#p277272 Wed, 29 Jan 2025 04:34:31 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277272#p277272
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Cómo Insertar registros a na tabla? :: Reply by Armando]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277276#p277276
Es otra alternativa, muchas gracias

Saludos al crio]]>
no_email@example.com (Armando) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277276#p277276 Wed, 29 Jan 2025 09:24:39 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277276#p277276
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Cómo Insertar registros a na tabla? :: Reply by cmsoft]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277295#p277295 Te consulto: porque cambiar el campo auto incremental? Si es para mostrar en forma ordenada, Mysql te lo permite con la clausula ORDER BY.
Y el Xbrowse lo respeta perfectamente.

Code: Select all | Expand

#INCLUDE "fivewin.ch"
#INCLUDE "tdolphin.ch"
FUNCTION Armando()
LOCAL oBrw, oCn, oRs, oForm, oBtn
   CONNECT oCn HOST 'localhost' ;
                    USER 'root' ;
                    PASSWORD 'secret' ;
                    PORT 3306 ;
                    FLAGS 0;
                    DATABASE 'test'
   if oCn == nil
      ? "can not connect to server"
      return nil
   endif
   //Creo una tabla temporal
   oCn:Execute("";
    + "CREATE TEMPORARY TABLE IF NOT EXISTS armando ";
    +"( `id` INT(10) NOT NULL AUTO_INCREMENT, ";    
    +"`nombre` VARCHAR(50) NOT NULL,";    
    +"`orden` INT(10) NOT NULL,";
    +"PRIMARY KEY (`id`)) ENGINE=INNODB DEFAULT CHARSET=utf8")
   //Inserto lo basico 
   oCn:Execute("INSERT INTO armando (orden,nombre) VALUES (1,'Manzana'),(2, 'Pera'),(3, 'Naranja'),(4, 'Mandarina')")
   oRs   := oCn:query("SELECT * FROM armando ORDER BY orden ")
   DEFINE DIALOG oForm TITLE "Armando" FROM 05,15 TO 36,99    
   @05,05 XBROWSE oBrw DATASOURCE oRs;
              COLUMNS "orden","nombre";
              HEADERS "Orden","Nombre";
              SIZES 80,200;
              OF oForm CELL SIZE 200,200 PIXEL       
   oBrw:CreateFromCode()
   @ 05,220 BUTTON oBtn PROMPT "Insertar" SIZE 30,10 OF oForm PIXEL ACTION Insertar(oRs,oCn,oBrw)
   ACTIVATE DIALOG oForm CENTER 
RETURN nil


STATIC FUNCTION Insertar(oRs,oCn,oBrw)
LOCAL oDlg1, nOrden := 0, cNombre := SPACE(50), oGet := ARRAY(2), oBtn := ARRAY(2), lRta := .f.
    DEFINE DIALOG oDlg1 TITLE "Insertar Registro" FROM 03,20 TO 14,60 
       
       @ 07, 05 SAY "Nombre:" OF oDlg1 PIXEL RIGHT SIZE 40,10
       @ 22, 05 SAY "Orden:"  OF oDlg1 PIXEL RIGHT SIZE 40,10       
       @ 05, 50 GET      oGet[1] VAR cNombre  OF oDlg1 PIXEL
       @ 20, 50 GET      oGet[2] VAR nOrden PICTURE "9999" OF oDlg1 PIXEL RIGHT       
       
       @ 35,30 BUTTON oBtn[1] PROMPT "&Grabar" OF oDlg1 SIZE 30,10 ;
               ACTION ((lRta := .t.), oDlg1:End() ) PIXEL
       @ 35,80 BUTTON oBtn[2] PROMPT "&Cancelar" OF oDlg1 SIZE 30,10 ;
               ACTION ((lRta := .f.), oDlg1:End() ) PIXEL
    ACTIVATE DIALOG oDlg1 CENTER 
IF !lRta .or. nOrden <=0   
   RETURN nil 
ENDIF 
oCn:Execute("UPDATE armando SET orden = orden + 1 WHERE orden >= "+str(nOrden))
oCn:Execute("INSERT INTO armando (nombre,orden) VALUES ('"+cNombre+"',"+STR(nOrden)+")")  
oRs:Refresh()
oBrw:Refresh(.t.)

RETURN nil
Es otra idea]]>
no_email@example.com (cmsoft) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277295#p277295 Thu, 30 Jan 2025 04:24:35 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277295#p277295
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Cómo Insertar registros a na tabla? :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277300#p277300 hay que probar :shock:]]> no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277300#p277300 Thu, 30 Jan 2025 10:11:22 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277300#p277300 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Cómo Insertar registros a na tabla? :: Reply by Armando]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277325#p277325
Aportando, como siempre, en mi caso, acepto que en mi primer post no lo puse, pueden existir registros en blanco
el usuario los necesita como separadores, entonces el campo auto incremental es obligado.

Además, en ocasiones el usuario puede cambiar el orden dando clic en el encabezado del browse, si fuera el caso,
después ya no podría volver al órrden de captura y todos los registros en blanco quedarían al principio del browse

Muchas gracias por tu tiempo y ejemplo.

Saludos]]>
no_email@example.com (Armando) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277325#p277325 Thu, 30 Jan 2025 18:00:35 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277325#p277325
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Cómo Insertar registros a na tabla? :: Reply by cmsoft]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277336#p277336 Seguramente no estoy comprendiendo bien tu necesidad final, pero Fivewin y Mysql pueden darte la solucion que necesitas.]]> no_email@example.com (cmsoft) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277336#p277336 Fri, 31 Jan 2025 03:17:00 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277336#p277336 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Cómo Insertar registros a na tabla? :: Reply by Armando]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277355#p277355
Muchas gracias, así es como lo resolví.

Saludos]]>
no_email@example.com (Armando) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277355#p277355 Fri, 31 Jan 2025 17:41:14 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277355#p277355
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Cómo Insertar registros a na tabla? :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277403#p277403

Code: Select all | Expand

#include "fivewin.ch"

//----------------------------------------------------------------------------//

function Main()

   local oCn, oRs

   oCn   := Fw_OpenAdoConnection( "MYSQL,209.250.245.152,fwh,fwhuser,FiveTech@2022", .t. )
   oRs   := CreateTableFruits( oCn )

   // Right-click to insert a new fruit
   XBROWSER oRs TITLE "FRUITS" SETUP ( ;
      oBrw:bRClicked := { |r,c,f,o| InsertFruit( oRs ), o:Refresh() } )

   oRs:Close()
   oCn:Close()

return nil

//----------------------------------------------------------------------------//

function CreateTableFruits( oCn )

   local oRs, v

   oCn:Execute( "DROP TABLE IF EXISTS fruits" )
   FWAdoCreateTable( "fruits", { { "fruit", "C", 15, 0 } }, oCn )

   oRs   := FW_OpenRecordSet( oCn, "fruits" )
   oRs:Sort := "id"
   for each v in { "Manzana", "Pera", "Naranja", "Mandarina", "Mango", "Banana", "Papaya", "Grape" }
      oRs:AddNew( "fruit", v )
   next

return oRs

//----------------------------------------------------------------------------//

function InsertFruit( oRs )

   local nSave := oRs:AbsolutePosition
   local nId   := oRs:Fields( "id" ):Value
   local cSql

   PRIVATE cId   := LTrim( Str( nId ) )
   PRIVATE cFruit   := PadR( "Lima", 15 )

   if !MsgGet( "Fruit Name:", "At Line : " + cId, @cFruit ) .or. Empty( cFruit )
      return nil
   endif
   cFruit   := Trim( cFruit )

   CursorWait()

TEXT INTO cSql
UPDATE fruits LEFT JOIN fruits a ON fruits.id = a.id + 1
 SET fruits.fruit = a.fruit
 WHERE fruits.id > &cId
ENDTEXT

   WITH OBJECT oRs:ActiveConnection
      :Execute( "INSERT INTO fruits ( fruit ) VALUES ( '' )" )
      :Execute( cSql )
      :Execute( "UPDATE fruits SET fruit = '&cFruit' WHERE id = &cId" )
   END
   oRs:Requery()
   oRs:AbsolutePosition := nSave
   CursorArrow()

return nil

//----------------------------------------------------------------------------//
Image]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277403#p277403 Mon, 03 Feb 2025 15:01:04 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277403#p277403
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Cómo Insertar registros a na tabla? :: Reply by Armando]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277405#p277405
It is a great solution, but what if the user wants to insert multiple records, let's say 6 records at a time ?

Thanks a lot, Best regards]]>
no_email@example.com (Armando) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277405#p277405 Mon, 03 Feb 2025 17:50:41 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277405#p277405
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Cómo Insertar registros a na tabla? :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277417#p277417 Image

Code: Select all | Expand

#include "fivewin.ch"
#include "adodef.ch"

//----------------------------------------------------------------------------//

function Main()

   local oCn, oRs
   local aInsert

   oCn   := Fw_OpenAdoConnection( "MYSQL,209.250.245.152,fwh,fwhuser,FiveTech@2022", .t. )
   oRs   := CreateTableFruits( oCn )

   // Right-click to insert new fruits
   aInsert  := { "APPLES", "APRICOT", "MELON", "DATES" }

   XBROWSER oRs TITLE "FRUITS" SETUP ( ;
      oBrw:bRClicked := { |r,c,f,o| InsertFruits( oRs, aInsert ), o:Refresh() } )

   oRs:Close()
   oCn:Close()

return nil

//----------------------------------------------------------------------------//

function CreateTableFruits( oCn )

   local oRs, v

   oCn:Execute( "DROP TABLE IF EXISTS fruits" )
   FWAdoCreateTable( "fruits", { { "fruit", "C", 15, 0 } }, oCn )

   oRs   := FW_OpenRecordSet( oCn, "fruits" )
   oRs:Sort := "id"
   for each v in { "Manzana", "Pera", "Naranja", "Mandarina", "Mango", "Banana", "Papaya", "Grape", "Guva", "Durian"  }
      oRs:AddNew( "fruit", v )
   next

return oRs

//----------------------------------------------------------------------------//

function InsertFruits( oRs, aFruits )

   local oCn      := oRs:ActiveConnection
   local nSave    := oRs:AbsolutePosition
   local nId, aList, aRows, cSql

   CursorWait()

   aList    := {}
   AEval( aFruits, { |c| AAdd( aList, { nil, c } ) } )

   aRows := RsGetRows( oRs )
   AEval( aRows, { |a,i| AAdd( aList, { nil, a[ 2 ] } ), ;
                         aList[ i, 1 ] := a[ 1 ] } )

   cSql  := SQL INSERT INTO fruits ( id, fruit ) ARRAY aList
   cSql  := "REPLACE" + SubStr( cSql, 7 )
   oCn:Execute( cSql )
   // done
   oRs:Requery()
   oRs:MoveLast()
   nId   := oRs:Fields( "id" ):Value
   oCn:Execute( "ALTER TABLE fruits AUTO_INCREMENT = " + LTrim( Str( nID + 1 ) ) )
   oRs:AbsolutePosition := nSave
   CursorArrow()

return nil

//----------------------------------------------------------------------------//

]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277417#p277417 Tue, 04 Feb 2025 08:46:44 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277417#p277417
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Cómo Insertar registros a na tabla? :: Reply by Armando]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277419#p277419
Excelent !.

Thank you

With Best regards]]>
no_email@example.com (Armando) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277419#p277419 Tue, 04 Feb 2025 08:54:08 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45348&p=277419#p277419
<![CDATA[FiveWin para Harbour/xHarbour :: problemas con CheckBox en Dialog con TRANSPARENT en FWH 2409 :: Author CARLOS ATUNCAR]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277361#p277361

Code: Select all | Expand

MERCADERIA DIALOG MOVEABLE PURE LOADONCALL DISCARDABLE 0, 0, 419, 367
STYLE DS_FIXEDSYS |DS_SETFONT |WS_POPUP |WS_VISIBLE |WS_SYSMENU |WS_THICKFRAME |WS_CAPTION 
CAPTION "Mantenimiento de Mercaderia"
FONT 8, "Ms Shell Dlg"
LANGUAGE LANG_NEUTRAL, 0
BEGIN
  CONTROL "Caracteristicas del Producto",-1,"BUTTON",BS_GROUPBOX |WS_CHILD |WS_VISIBLE ,5,1,405,155
  CONTROL "Valorizaciones",-1,"BUTTON",BS_GROUPBOX |WS_CHILD |WS_VISIBLE ,5,157,405,38
  CONTROL "Contabilidad",65535,"BUTTON",BS_GROUPBOX |WS_CHILD |WS_VISIBLE ,5,195,405,38
  CONTROL "Detracción",65535,"BUTTON",BS_GROUPBOX |WS_CHILD |WS_VISIBLE ,5,233,405,86
  CONTROL "Codigo del Proveedor :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,15,80,8
  CONTROL "Nombre del Producto :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,60,80,8
  CONTROL "Unidad de Medida :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,75,80,8
  CONTROL "Caracteristicas :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,12,114,79,8
  CONTROL "Grupo  :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,30,80,8
  CONTROL "Sub Grupo  :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,45,80,8
  CONTROL "Peso  Bruto:",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,220,75,44,8
  CONTROL "Piezas x Envase :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,33,90,56,8
  CONTROL "Afectacion del IGV :",-1,"STATIC",SS_LEFT |WS_CHILD |WS_GROUP |WS_VISIBLE ,213,95,66,8
  CONTROL "Costo S/. :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,172,41,8
  CONTROL "Precio :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,102,172,28,8
  CONTROL "Precio Minimo :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,187,172,53,8
  CONTROL "Stock Minimo :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,293,172,53,8
  CONTROL "Laboratorio :",65535,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,230,110,45,8
  CONTROL "Proveedor :",65535,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,230,125,45,8
  CONTROL "...",300,"STATIC",SS_LEFT |WS_CHILD |WS_GROUP |WS_VISIBLE ,165,30,173,8
  CONTROL "...",301,"STATIC",SS_LEFT |WS_CHILD |WS_GROUP |WS_VISIBLE ,165,45,173,8
  CONTROL "Cuenta de Compras :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,63,211,77,8
  CONTROL "Cuenta de Ventas :",65535,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,223,211,77,8
  CONTROL "Edit1",100,"EDIT",ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,95,15,93,12
  CONTROL "1234567890",101,"EDIT",ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,95,30,65,12
  CONTROL "Edit1",102,"EDIT",ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,95,45,65,12
  CONTROL "Edit4",103,"EDIT",ES_MULTILINE |ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,95,60,300,12
  CONTROL "",104,"COMBOBOX",CBS_DROPDOWN |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,95,75,92,49
  CONTROL "Edit1",105,"EDIT",ES_RIGHT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,273,74,35,12
  CONTROL "Edit1",106,"EDIT",ES_RIGHT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,95,90,35,12
  CONTROL "",107,"COMBOBOX",CBS_DROPDOWN |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,280,95,121,37
  CONTROL "Edit7",108,"EDIT",ES_MULTILINE |ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,95,105,129,32
  CONTROL "Edit8",109,"EDIT",ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,280,110,99,12
  CONTROL "Edit8",110,"EDIT",ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,280,125,59,12
  CONTROL "Producto de entrega Gratuita",117,"BUTTON",BS_CHECKBOX |BS_LEFT |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,96,140,140,10
  CONTROL "Edit8",111,"EDIT",ES_RIGHT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,55,172,40,12
  CONTROL "Edit8",112,"EDIT",ES_RIGHT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,136,172,40,12
  CONTROL "Edit8",113,"EDIT",ES_RIGHT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,246,172,40,12
  CONTROL "Edit8",114,"EDIT",ES_RIGHT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,352,172,40,12
  CONTROL "Edit13",115,"EDIT",ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,147,211,60,12
  CONTROL "Edit13",116,"EDIT",ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,307,211,60,12
  CONTROL "Tipo de Registro :",IDC_STATIC,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,250,100,8
  CONTROL "Código de Bien/Servicio :",65535,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,265,100,8
  CONTROL "Base Imponible Documto ;",65535,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,280,100,8
  CONTROL "Porcentaje de Detracción :",65535,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,295,100,8
  CONTROL "BIenes",118,"BUTTON",BS_RADIOBUTTON |BS_LEFT |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,118,250,44,10
  CONTROL "Servicios",119,"BUTTON",BS_RADIOBUTTON |BS_LEFT |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,172,250,44,10
  CONTROL "",120,"COMBOBOX",CBS_DROPDOWN |WS_CHILD |WS_VSCROLL |WS_TABSTOP |WS_VISIBLE ,118,265,273,89
  CONTROL "Edit15",121,"EDIT",ES_RIGHT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,118,280,65,12
  CONTROL "Edit15",122,"EDIT",ES_RIGHT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,118,295,65,12
  CONTROL "&Aceptar",200,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,103,330,79,17
  CONTROL "&Cancelar",201,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,238,330,79,17
  CONTROL "",202,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,190,75,22,14
  CONTROL "",203,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,381,110,22,14
END

cuando cargo el dialog aparece sobrepuesto el combobox y cuando paso el mouse se borra los demas controles que estan debajo del checkbox hasta el final del dialogo, alguna ayuda por favor]]>
no_email@example.com (CARLOS ATUNCAR) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277361#p277361 Mon, 03 Feb 2025 09:59:03 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277361#p277361
<![CDATA[FiveWin para Harbour/xHarbour :: Re: problemas con CHECKBOX en FWH 2409 :: Reply by CARLOS ATUNCAR]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277362#p277362 Image
con la version FWH2409
Image]]>
no_email@example.com (CARLOS ATUNCAR) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277362#p277362 Sat, 01 Feb 2025 10:23:41 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277362#p277362
<![CDATA[FiveWin para Harbour/xHarbour :: Re: problemas con CHECKBOX en FWH 2409 :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277365#p277365 no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277365#p277365 Sat, 01 Feb 2025 10:38:21 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277365#p277365 <![CDATA[FiveWin para Harbour/xHarbour :: Re: problemas con CHECKBOX en FWH 2409 :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277366#p277366
Prueba C:\FWH\SAMPLES\RICHARD3.PRG usando WORKSHOP.exe si dá error.

Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277366#p277366 Sat, 01 Feb 2025 11:13:27 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277366#p277366
<![CDATA[FiveWin para Harbour/xHarbour :: Re: problemas con CHECKBOX en FWH 2409 :: Reply by CARLOS ATUNCAR]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277369#p277369 no_email@example.com (CARLOS ATUNCAR) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277369#p277369 Sat, 01 Feb 2025 20:43:34 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277369#p277369 <![CDATA[FiveWin para Harbour/xHarbour :: Re: problemas con CHECKBOX en FWH 2409 :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277373#p277373
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277373#p277373 Sun, 02 Feb 2025 09:55:04 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277373#p277373
<![CDATA[FiveWin para Harbour/xHarbour :: Re: problemas con CHECKBOX en FWH 2409 :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277374#p277374 We tested with Harbour, xHarbour with and without Manifest.

This is the program we used to test:

Code: Select all | Expand

#include "fivewin.ch"

function Main()

   local oDlg, oFont
   local oGet[ 20 ]
   local aVar := { Space(10), "1234567890", Space(10), Space(10), 0, ;
                  1, "multiline", Space(10), Space(10), 0, ;
                  0, 0, 0, Space(10), Space(10), ;
                  0, 0 }
   local vCbx := { "4A-BOBINAS", "10-OP.GRAVIDAS", "One" }
   local oBtn[ 2 ]
   local oCbx[ 3 ], oChk
   local lVar  := .f.
   local oRadio, nRadio := 1

   SetGetColorFocus()

   DEFINE FONT oFont NAME "VERDANA" SIZE 0,-12
   DEFINE DIALOG oDlg RESOURCE "MERCADERIA" FONT oFont

   REDEFINE GET oGet[ 1 ] VAR aVar[ 1 ] ID 100 OF oDlg
   REDEFINE GET oGet[ 2 ] VAR aVar[ 2 ] ID 101 OF oDlg
   REDEFINE GET oGet[ 3 ] VAR aVar[ 3 ] ID 102 OF oDlg
   REDEFINE GET oGet[ 4 ] VAR aVar[ 4 ] ID 103 OF oDlg
   REDEFINE COMBOBOX oCbx[ 1 ] VAR vCbx[ 1 ] ID 104 OF oDlg ITEMS { "4A-BOBINAS", "Two", "Three" }
   REDEFINE GET oGet[ 5 ] VAR aVar[ 5 ] ID 105 OF oDlg PICTURE "999.9999"
   REDEFINE GET oGet[ 6 ] VAR aVar[ 6 ] ID 106 OF oDlg PICTURE "999"
   REDEFINE COMBOBOX oCbx[ 2 ] VAR vCbx[ 2 ] ID 107 OF oDlg ITEMS { "10-OP.GRAVIDAS", "Two", "Three" }
   REDEFINE GET oGet[ 7 ] VAR aVar[ 7 ] TEXT ID 108 OF oDlg
   REDEFINE GET oGet[ 8 ] VAR aVar[ 8 ] ID 109 OF oDlg
   REDEFINE GET oGet[ 9 ] VAR aVar[ 9 ] ID 110 OF oDlg
   REDEFINE CHECKBOX oChk VAR lVar ID 117 OF oDlg
   REDEFINE GET oGet[ 10 ] VAR aVar[ 10 ] ID 111 OF oDlg PICTURE "999.9999"
   REDEFINE GET oGet[ 11 ] VAR aVar[ 11 ] ID 112 OF oDlg PICTURE "999.9999"
   REDEFINE GET oGet[ 12 ] VAR aVar[ 12 ] ID 113 OF oDlg PICTURE "999.9999"
   REDEFINE GET oGet[ 13 ] VAR aVar[ 13 ] ID 114 OF oDlg PICTURE "999.9999"
   REDEFINE GET oGet[ 14 ] VAR aVar[ 14 ] ID 115 OF oDlg
   REDEFINE GET oGet[ 15 ] VAR aVar[ 15 ] ID 116 OF oDlg
   REDEFINE RADIO oRadio VAR nRadio ID 118, 119 OF oDlg
   REDEFINE COMBOBOX oCbx[ 3 ] VAR vCbx[ 3 ] ID 120 OF oDlg ITEMS { "One", "Two", "Three" }
   REDEFINE GET oGet[ 16 ] VAR aVar[ 16 ] ID 121 OF oDlg PICTURE "999.9999"
   REDEFINE GET oGet[ 17 ] VAR aVar[ 17 ] ID 122 OF oDlg PICTURE "999.9999"

   REDEFINE BTNBMP oBtn[ 1 ] ID 202 OF oDlg FILE 0xE109
   REDEFINE BTNBMP oBtn[ 2 ] ID 203 OF oDlg FILE 0xE109

   REDEFINE BUTTON ID 200 OF oDlg ACTION oDlg:End
   REDEFINE BUTTON ID 201 OF oDlg ACTION oDlg:End

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont

return nil
This is the RC file (exact copy of the RC file you posted).

Code: Select all | Expand

MERCADERIA DIALOG MOVEABLE PURE LOADONCALL DISCARDABLE 0, 0, 419, 367
STYLE DS_FIXEDSYS |DS_SETFONT |WS_POPUP |WS_VISIBLE |WS_SYSMENU |WS_THICKFRAME |WS_CAPTION
CAPTION "Mantenimiento de Mercaderia"
FONT 8, "Ms Shell Dlg"
LANGUAGE LANG_NEUTRAL, 0
BEGIN
  CONTROL "Caracteristicas del Producto",-1,"BUTTON",BS_GROUPBOX |WS_CHILD |WS_VISIBLE ,5,1,405,155
  CONTROL "Valorizaciones",-1,"BUTTON",BS_GROUPBOX |WS_CHILD |WS_VISIBLE ,5,157,405,38
  CONTROL "Contabilidad",65535,"BUTTON",BS_GROUPBOX |WS_CHILD |WS_VISIBLE ,5,195,405,38
  CONTROL "Detracción",65535,"BUTTON",BS_GROUPBOX |WS_CHILD |WS_VISIBLE ,5,233,405,86
  CONTROL "Codigo del Proveedor :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,15,80,8
  CONTROL "Nombre del Producto :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,60,80,8
  CONTROL "Unidad de Medida :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,75,80,8
  CONTROL "Caracteristicas :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,12,114,79,8
  CONTROL "Grupo  :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,30,80,8
  CONTROL "Sub Grupo  :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,45,80,8
  CONTROL "Peso  Bruto:",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,220,75,44,8
  CONTROL "Piezas x Envase :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,33,90,56,8
  CONTROL "Afectacion del IGV :",-1,"STATIC",SS_LEFT |WS_CHILD |WS_GROUP |WS_VISIBLE ,213,95,66,8
  CONTROL "Costo S/. :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,172,41,8
  CONTROL "Precio :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,102,172,28,8
  CONTROL "Precio Minimo :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,187,172,53,8
  CONTROL "Stock Minimo :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,293,172,53,8
  CONTROL "Laboratorio :",65535,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,230,110,45,8
  CONTROL "Proveedor :",65535,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,230,125,45,8
  CONTROL "...",300,"STATIC",SS_LEFT |WS_CHILD |WS_GROUP |WS_VISIBLE ,165,30,173,8
  CONTROL "...",301,"STATIC",SS_LEFT |WS_CHILD |WS_GROUP |WS_VISIBLE ,165,45,173,8
  CONTROL "Cuenta de Compras :",-1,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,63,211,77,8
  CONTROL "Cuenta de Ventas :",65535,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,223,211,77,8
  CONTROL "Edit1",100,"EDIT",ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,95,15,93,12
  CONTROL "1234567890",101,"EDIT",ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,95,30,65,12
  CONTROL "Edit1",102,"EDIT",ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,95,45,65,12
  CONTROL "Edit4",103,"EDIT",ES_MULTILINE |ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,95,60,300,12
  CONTROL "",104,"COMBOBOX",CBS_DROPDOWN |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,95,75,92,49
  CONTROL "Edit1",105,"EDIT",ES_RIGHT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,273,74,35,12
  CONTROL "Edit1",106,"EDIT",ES_RIGHT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,95,90,35,12
  CONTROL "",107,"COMBOBOX",CBS_DROPDOWN |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,280,95,121,37
  CONTROL "Edit7",108,"EDIT",ES_MULTILINE |ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,95,105,129,32
  CONTROL "Edit8",109,"EDIT",ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,280,110,99,12
  CONTROL "Edit8",110,"EDIT",ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,280,125,59,12
  CONTROL "Producto de entrega Gratuita",117,"BUTTON",BS_CHECKBOX |BS_LEFT |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,96,140,140,10
  CONTROL "Edit8",111,"EDIT",ES_RIGHT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,55,172,40,12
  CONTROL "Edit8",112,"EDIT",ES_RIGHT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,136,172,40,12
  CONTROL "Edit8",113,"EDIT",ES_RIGHT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,246,172,40,12
  CONTROL "Edit8",114,"EDIT",ES_RIGHT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,352,172,40,12
  CONTROL "Edit13",115,"EDIT",ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,147,211,60,12
  CONTROL "Edit13",116,"EDIT",ES_LEFT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,307,211,60,12
  CONTROL "Tipo de Registro :",IDC_STATIC,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,250,100,8
  CONTROL "Código de Bien/Servicio :",65535,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,265,100,8
  CONTROL "Base Imponible Documto ;",65535,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,280,100,8
  CONTROL "Porcentaje de Detracción :",65535,"STATIC",SS_RIGHT |WS_CHILD |WS_GROUP |WS_VISIBLE ,10,295,100,8
  CONTROL "BIenes",118,"BUTTON",BS_RADIOBUTTON |BS_LEFT |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,118,250,44,10
  CONTROL "Servicios",119,"BUTTON",BS_RADIOBUTTON |BS_LEFT |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,172,250,44,10
  CONTROL "",120,"COMBOBOX",CBS_DROPDOWN |WS_CHILD |WS_VSCROLL |WS_TABSTOP |WS_VISIBLE ,118,265,273,89
  CONTROL "Edit15",121,"EDIT",ES_RIGHT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,118,280,65,12
  CONTROL "Edit15",122,"EDIT",ES_RIGHT |WS_CHILD |WS_BORDER |WS_TABSTOP |WS_VISIBLE ,118,295,65,12
  CONTROL "&Aceptar",200,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,103,330,79,17
  CONTROL "&Cancelar",201,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,238,330,79,17
  CONTROL "",202,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,190,75,22,14
  CONTROL "",203,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,381,110,22,14
END
Results:
With Manifest:
Image

Without Manifest:
Image

1) We request you to please check this program separately with this rc file and let us know if you experience any problem. Please copy these files to your fwh2409\samples folder and build the exe using either buildh.bat or buildx.bat.

2) Please share with your program using this rc file.

Thanks. Awaiting your feedback.]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277374#p277374 Sun, 02 Feb 2025 11:25:38 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277374#p277374
<![CDATA[FiveWin para Harbour/xHarbour :: Re: problemas con CHECKBOX en FWH 2409 :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277382#p277382
Maestro Nages, incluya: SkinButtons() y pruebe.

Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277382#p277382 Mon, 03 Feb 2025 05:00:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277382#p277382
<![CDATA[FiveWin para Harbour/xHarbour :: Re: problemas con CHECKBOX en FWH 2409 :: Reply by CARLOS ATUNCAR]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277385#p277385

Code: Select all | Expand

 DEFINE DIALOG oDlg RESOURCE "mercaderia" TRANSPARENT ICON oIco
al parecer la transparencia es el problema]]>
no_email@example.com (CARLOS ATUNCAR) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277385#p277385 Mon, 03 Feb 2025 06:57:25 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277385#p277385
<![CDATA[FiveWin para Harbour/xHarbour :: Re: problemas con CHECKBOX en FWH 2409 :: Reply by CARLOS ATUNCAR]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277386#p277386 no_email@example.com (CARLOS ATUNCAR) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277386#p277386 Mon, 03 Feb 2025 07:37:39 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277386#p277386 <![CDATA[FiveWin para Harbour/xHarbour :: Re: problemas con CHECKBOX en FWH 2409 :: Reply by CARLOS ATUNCAR]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277388#p277388 no_email@example.com (CARLOS ATUNCAR) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277388#p277388 Mon, 03 Feb 2025 07:57:11 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277388#p277388 <![CDATA[FiveWin para Harbour/xHarbour :: Re: problemas con CHECKBOX en FWH 2409 :: Reply by CARLOS ATUNCAR]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277395#p277395 no_email@example.com (CARLOS ATUNCAR) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277395#p277395 Mon, 03 Feb 2025 09:57:20 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277395#p277395 <![CDATA[FiveWin para Harbour/xHarbour :: Re: problemas con CHECKBOX en FWH 2409 :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277426#p277426
CARLOS ATUNCAR wrote: Mon Feb 03, 2025 4:57 pm Tengo otro dialogo mas pequeño que incluye in checkbox que tiene el mismo comportamiento en el cual uso la clausula TRANSPARENT en el dialogo y al quitarlo se soluciona esto esta pasando en mi caso
Understand. The problem is with TRANSPARENT and Themed dialogs (using Manifest).

Please apply this fix to \fwh\source\classes\dialog.prg:

Please locate this line of code in the METHOD Initialize(..) of Dialog.prg

Code: Select all | Expand

"TBAR;TGET;TMULTIGET;TBTNBMP;TCOMBOBOX;TWBROWSE;TCBROWSE;TXBROWSE;TLISTBOX;TDBCOMBO;TDATEPICK;TTIMEPICK" .and. ;
Add TCHECKBOX also to this list, like this

Code: Select all | Expand

"TBAR;TGET;TMULTIGET;TBTNBMP;TCOMBOBOX;TWBROWSE;TCBROWSE;TXBROWSE;TLISTBOX;TDBCOMBO;TDATEPICK;TTIMEPICK;TCHECKBOX" .and. ;
This correction fixes the problem.

Please test and confirm.]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277426#p277426 Tue, 04 Feb 2025 13:48:18 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45368&p=277426#p277426
<![CDATA[FiveWin para Harbour/xHarbour :: Imagen en ToolTip :: Author Willi Quintana]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45379&p=277415#p277415 NO puedo hacer que una imagen aparezca en el ToolTip, uso esa sintaxis_ al parecer no puede leer la imagen, en algunos ejemplo vi que en ves del nombre de la imagen usan un numero,,, agradezco vuestra ayuda...
Willi

ctexto := "Muestra Imagen en el ToolTip"
ctitulo := "Imagen"
cimagen := "QR_ICO" // en recursos (RC), hay un icono con el nombre "QR_ICO"

oCodQR:cToolTip := { ctexto, ctitulo, cimagen, , , , ,}

Parametros:

<ctexto> // texto o mensaje principal
<ctitulo> // titulo
<cImagen> // imagen
<nClrFore>
<nClrBack>
<nWidth>
<nDelayTime>
<nDelayType>]]>
no_email@example.com (Willi Quintana) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45379&p=277415#p277415 Tue, 04 Feb 2025 07:26:20 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45379&p=277415#p277415
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Imagen en ToolTip :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45379&p=277416#p277416

Code: Select all | Expand

   aGet[ 1 ]:cTooltip :={ "Nota Fiscal Inicial Para Enviar o(s) Email(s).",  ; // 1,2,3
                          "Nota Fiscal Inicial Para Enviar o(s) Email(s)..", 1, CLR_WHITE, CLR_HBLUE }
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45379&p=277416#p277416 Tue, 04 Feb 2025 08:15:14 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45379&p=277416#p277416
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Imagen en ToolTip :: Reply by Willi Quintana]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45379&p=277418#p277418

Code: Select all | Expand

...
      if ValType( cToolTip ) == 'A'
         ASize( cToolTip, 8 ) //5 )
         cText    = cValToChar( cToolTip[ 1 ] )
         cTitle   = cToolTip[ 2 ]
         hIcon    = nil
         if ! Empty( cTitle )
            cIcon = cToolTip[ 3 ]
            if ValType( cIcon ) == 'C'
               if Empty( cFileExt( cIcon ) )
                  hIcon    := LoadIcon( GetResources(), cIcon )                        // <--------- aqui debe cargar una imagen desde recursos
               elseif Upper( cFileExt( cIcon ) ) == "ICO" .and. File( cIcon )
                  hIcon    := ExtractIcon( cIcon )
               endif
            elseif ValType( cIcon ) == 'N'
               hIcon    := cIcon
               cIcon    := nil
            else
               cIcon    := nil
            endif
            if Empty( hIcon )
               hIcon    := TTI_INFO
               cIcon    := nil
            endif
         endif

         nClrFore = cToolTip[ 4 ]
         nClrBack = cToolTip[ 5 ]
         nWidth   = cToolTip[ 6 ]
         nDelayTime = cToolTip [ 7 ]
         nDelayType = cToolTip [ 8 ]
      else
         cText    = cValToChar( cToolTip )
      endif
...
]]>
no_email@example.com (Willi Quintana) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45379&p=277418#p277418 Tue, 04 Feb 2025 08:47:53 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45379&p=277418#p277418
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Imagen en ToolTip :: Reply by nageswaragunupudi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45379&p=277431#p277431 Working for me here
This is my sample.

Code: Select all | Expand

function ToolTipIcon()

   local oDlg, oBtn

   SetBalloon( .t. )

   DEFINE DIALOG oDlg SIZE 300,100 PIXEL TRUEPIXEL ;
      TITLE "TOOLTIP ICON"

   @ 20,50 BTNBMP oBtn PROMPT "TEST" SIZE 100,60 PIXEL OF oDlg ;
      2007 CENTER ;
      TOOLTIP { "This is the text", "TOOLTIP", "FACE" }

   ACTIVATE DIALOG oDlg CENTERED

return nil
RC file:

Code: Select all | Expand

FACE ICON "..\icons\face.ico"
Image

Please check if everything is ok with your rc file and and icon file.]]>
no_email@example.com (nageswaragunupudi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45379&p=277431#p277431 Tue, 04 Feb 2025 16:21:46 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45379&p=277431#p277431
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Imagen en ToolTip :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45379&p=277442#p277442
Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45379&p=277442#p277442 Wed, 05 Feb 2025 04:46:10 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45379&p=277442#p277442
<![CDATA[FiveWin para Harbour/xHarbour :: Cambiar el Titulo :: Author VitalJavier]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45382&p=277423#p277423 Estoy buscando como cambiar el Titulo de una Columna de un Reporte
Tengo esto:

Code: Select all | Expand

Column oCol[02] Title "     Q. 1a","Fecha"   Data COLECTAR->FEC1 	SIZE 7 SHADOW
Pero en un momento dado quiero cambiar el titulo:

Ya lo busque, pero no encuentro.
alguien ya lo tiene, Gracias.]]>
no_email@example.com (VitalJavier) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45382&p=277423#p277423 Tue, 04 Feb 2025 12:56:47 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45382&p=277423#p277423
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Cambiar el Titulo :: Reply by Marcelo Via Giglio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45382&p=277467#p277467
no estoy seguro pero debes buscar en oRepor:aColumns[nCol]:aTitle[n] es un arreglo por si el titulo tiene varias lineas nCol : la columna y n : la linea del titulo

saludos

Marcelo]]>
no_email@example.com (Marcelo Via Giglio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45382&p=277467#p277467 Thu, 06 Feb 2025 05:04:38 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45382&p=277467#p277467
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Cambiar el Titulo :: Reply by VitalJavier]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45382&p=277469#p277469 Funciono Asi:

Code: Select all | Expand

oReporte:aColumns[02]:aTitle[1] := {|| oReporte:Say(02,"         Q. 1a") }
Asi el encabezado del Primer Renglon en la 2da Columna quedo centrado.

Saludos.]]>
no_email@example.com (VitalJavier) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45382&p=277469#p277469 Thu, 06 Feb 2025 08:53:27 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45382&p=277469#p277469
<![CDATA[FiveWin para Harbour/xHarbour :: WEBVIEW2 una observación :: Author CARLOS ATUNCAR]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277183#p277183

Code: Select all | Expand

#include "fivewin.ch"

Function Main(importe,vencimiento)
local oWnd,oWebView
local cUrl := "https://casoftsystemweb.com/service-notice.html?deuda="+importe+"&vencimiento="+vencimiento


DEFINE WINDOW oWnd FROM 0,0 TO 50,60 TITLE "AVISO DE VENCIMIENTO DE SERVICIOS" STYLE nOr(WS_SYSMENU)
oWnd:Show()
oWebView = TWebView2():New( oWnd )
oWebView:Navigate( cUrl )
oWebView:SetUserAgent( "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Mobile Safari/537.36" )

ACTIVATE WINDOW oWnd CENTER ;
   ON RESIZE oWebView:SetSize( nWidth, nHeight-50 )
   oWebView:End()

Return
]]>
no_email@example.com (CARLOS ATUNCAR) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277183#p277183 Fri, 24 Jan 2025 09:29:22 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277183#p277183
<![CDATA[FiveWin para Harbour/xHarbour :: Re: WEBVIEW2 una observación :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277186#p277186
y si lanzas la alerta en una modal del html, nosotros lo montamos de esa manera y a funcionado correctamente.

Image]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277186#p277186 Fri, 24 Jan 2025 10:25:29 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277186#p277186
<![CDATA[FiveWin para Harbour/xHarbour :: Re: WEBVIEW2 una observación :: Reply by CARLOS ATUNCAR]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277198#p277198 no_email@example.com (CARLOS ATUNCAR) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277198#p277198 Sat, 25 Jan 2025 08:27:02 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277198#p277198 <![CDATA[FiveWin para Harbour/xHarbour :: Re: WEBVIEW2 una observación :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277199#p277199
Prueba a cerrar el webview desde el VALID de la ventana]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277199#p277199 Sat, 25 Jan 2025 09:48:25 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277199#p277199
<![CDATA[FiveWin para Harbour/xHarbour :: Re: WEBVIEW2 una observación :: Reply by CARLOS ATUNCAR]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277204#p277204 no_email@example.com (CARLOS ATUNCAR) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277204#p277204 Sat, 25 Jan 2025 11:18:54 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277204#p277204 <![CDATA[FiveWin para Harbour/xHarbour :: Re: WEBVIEW2 una observación :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277210#p277210
gracias]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277210#p277210 Sat, 25 Jan 2025 15:15:13 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277210#p277210
<![CDATA[FiveWin para Harbour/xHarbour :: Re: WEBVIEW2 una observación :: Reply by ralph]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277470#p277470 Le quité la clausula ON RESIZE y ya no se sale del sistema.

Code: Select all | Expand

ACTIVATE WINDOW oWnd CENTER 

oWebView:End()
]]>
no_email@example.com (ralph) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277470#p277470 Thu, 06 Feb 2025 09:41:25 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45343&p=277470#p277470
<![CDATA[FiveWin para Harbour/xHarbour :: XBrowse sin el foco, color? :: Author FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45385&p=277477#p277477
¿Cómo se puede cambiar el color del/de los registro/s seleccionado/s de un XBrowse cuando no tiene el foco?

Es decir, cuando tiene el foco se distinguen perfectamente, pero cuando pierde el foco no destaca lo suficiente.

Muchas gracias,]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45385&p=277477#p277477 Thu, 06 Feb 2025 23:38:44 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45385&p=277477#p277477
<![CDATA[FiveWin para Harbour/xHarbour :: Re: XBrowse sin el foco, color? :: Reply by cmsoft]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45385&p=277483#p277483 Para el color de las rows seleccionadas cuando tiene el foco usa bClrSelFocus
Ejemplo muy burdo para mostrar los diferentes colores:

Code: Select all | Expand

oBrw:bClrStd := {|| { CLR_BLACK, CLR_GREEN} } // Color Standar
oBrw:bClrSel := {|| { CLR_WHITE, CLR_RED} } // Color de las rows seleccionadas cuando Xbrowse no tiene el foco
oBrw:bClrSelFocus := {|| { CLR_WHITE, CLR_YELLOW} } // Color de las rows seleccionadas cuando Xbrowse tiene el Foco
]]>
no_email@example.com (cmsoft) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45385&p=277483#p277483 Fri, 07 Feb 2025 02:51:43 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45385&p=277483#p277483
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Fuentes Factura electrónica Argentina :: Reply by devwin2010]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=30989&p=277487#p277487
Podrias volver a compartilo , no se ve en su totalidad muchisimas gracias Fabian]]>
no_email@example.com (devwin2010) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=30989&p=277487#p277487 Fri, 07 Feb 2025 10:24:23 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=30989&p=277487#p277487
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Veri*Factu :: Reply by VictorCasajuana]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45247&p=277264#p277264
Nuevas publicaciones de la AEAT al respecto de Verifactu:

https://www.agenciatributaria.es/AEAT.d ... dores.html]]>
no_email@example.com (VictorCasajuana) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45247&p=277264#p277264 Wed, 29 Jan 2025 00:26:25 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45247&p=277264#p277264
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Veri*Factu :: Reply by Julio Cepeda]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45247&p=277488#p277488 ***********************************************
Lines 6139, Functions/Procedures 4
Generating C source output to 'MainYFun.c'... Done.
Embarcadero C++ 7.00 for Win32 Copyright (c) 1993-2015 Embarcadero Technologies, Inc.
MainYFun.c:
Turbo Incremental Link 6.70 Copyright (c) 1997-2014 Embarcadero Technologies, Inc.
Error: Unresolved external '_HB_FUN_HB_XMLDOCUMENT' referenced from C:\HARBPROG\__NUEVA_VERIFACT\CODIGO\A_LINARES\ULTIMO\MAINYFUN.OBJ
Error: Unresolved external '_HB_FUN_HB_XMLNODE' referenced from C:\HARBPROG\__NUEVA_VERIFACT\CODIGO\A_LINARES\ULTIMO\MAINYFUN.OBJ
Error: Unresolved external '_HB_FUN_HB_CURLEASYINIT' referenced from C:\HARBPROG\__NUEVA_VERIFACT\CODIGO\A_LINARES\ULTIMO\MAINYFUN.OBJ
Error: Unresolved external '_HB_FUN_HB_CURLEASYSETOPT' referenced from C:\HARBPROG\__NUEVA_VERIFACT\CODIGO\A_LINARES\ULTIMO\MAINYFUN.OBJ
Error: Unresolved external '_HB_FUN_HB_CURLEASYPERFORM' referenced from C:\HARBPROG\__NUEVA_VERIFACT\CODIGO\A_LINARES\ULTIMO\MAINYFUN.OBJ
Error: Unresolved external '_HB_FUN_HB_CURLEASYCLEANUP' referenced from C:\HARBPROG\__NUEVA_VERIFACT\CODIGO\A_LINARES\ULTIMO\MAINYFUN.OBJ
Error: Unable to perform link
* Linking errors *
*************************************************
Si alguno puede ver qué me falta y me lo dice se lo agradeceré. Un saludo y muchas gracias por enseñar al que no sabe.]]>
no_email@example.com (Julio Cepeda) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45247&p=277488#p277488 Fri, 07 Feb 2025 10:34:32 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45247&p=277488#p277488
<![CDATA[FiveWin para Harbour/xHarbour :: substr() SOLUCIONADO :: Author D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277494#p277494
Tengo una cadena de 200 caracteres. cStrings
Con n1:= HB_AT(" ",cstrings , 65, 75 ) busco donde hay un espacio entre 65 y 75 y lo muestra n1 (73)
? deta[1]:= substr(cstring , 1, n1) Aqui extraigo la cadena desde el 1 (primer caracter hasta n1 que es 73
Esto lo hace bien.

Pero si hago para probar
deta[2]:= substr(cstrings , 74, 160) Muestra el strings desde el 74 hasta el 200.

No muestra desde el 74 al 160

Cuando hago un MsgInfo(cStrings), lo hace a la perfección.

Gracias por cualquier sugerencia

Saludos
Ruben Fernandez

(No encuentro en el foro nada porque todavía no está actualizado totalmente)]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277494#p277494 Sat, 08 Feb 2025 13:56:01 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277494#p277494
<![CDATA[FiveWin para Harbour/xHarbour :: Re: substr() :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277497#p277497

Code: Select all | Expand

cValida := cstrings 
deta[2]:= substr(cValida, 74, 160)
msginfo(deta[2])
]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277497#p277497 Fri, 07 Feb 2025 16:18:19 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277497#p277497
<![CDATA[FiveWin para Harbour/xHarbour :: Re: substr() :: Reply by D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277498#p277498
El inconveniente que tengo es que siempre los valores cambian, por eso no puedo hacerlo así.

Seguimos viendo.

Gracias y saludos

Ruben Dario Fernandez]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277498#p277498 Fri, 07 Feb 2025 17:40:02 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277498#p277498
<![CDATA[FiveWin para Harbour/xHarbour :: Re: substr() :: Reply by lubin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277499#p277499
Quizas, asi?


n1:= HB_AT(" ",cstrings , 65, 75 )

deta[2]:= substr(cstrings , n1+1, 200-n1)

saludos]]>
no_email@example.com (lubin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277499#p277499 Fri, 07 Feb 2025 20:21:11 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277499#p277499
<![CDATA[FiveWin para Harbour/xHarbour :: Re: substr() :: Reply by alerchster]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277501#p277501
Quizas, asi?


n1:= HB_AT(" ",cstrings , 65, 75 )

deta[2]:= substr(cstrings , n1+1, 160-n1)

saludos]]>
no_email@example.com (alerchster) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277501#p277501 Fri, 07 Feb 2025 22:49:02 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277501#p277501
<![CDATA[FiveWin para Harbour/xHarbour :: Re: substr() :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277502#p277502
D.Fernandez wrote: Fri Feb 07, 2025 10:54 pm Hola amigos:

Tengo una cadena de 200 caracteres. cStrings
Con n1:= HB_AT(" ",cstrings , 65, 75 ) busco donde hay un espacio entre 65 y 75 y lo muestra n1 (73)
? deta[1]:= substr(cstring , 1, n1) Aqui extraigo la cadena desde el 1 (primer caracter hasta n1 que es 73
Esto lo hace bien.

Pero si hago para probar
deta[2]:= substr(cstrings , 74, 160) Muestra el strings desde el 74 hasta el 200.

No muestra desde el 74 al 160

Cuando hago un MsgInfo(cStrings), lo hace a la perfección.

Gracias por cualquier sugerencia

Saludos
Ruben Fernandez

(No encuentro en el foro nada porque todavía no está actualizado totalmente)
Hola Ruben,

Sintaxis

SUBSTR(<cCadena>, <nInicio>, [<nCaracteres>]) --> cSubcadena

Argumentos

<cCadena> es la cadena de caracteres de la que va a extraerse una
subcadena. Puede tener hasta 65.535 (64K) bytes, el tama¤o m ximo de
cadena en CA-Clipper.

<nInicio> es la posici¢n inicial en <cCadena>. Si <nInicio> es
positivo, es relativo al car cter situado en el extremo izquierdo de
<cCadena>. Si es negativo, es relativo al car cter situado en el
extremo derecho de <cCadena>.

<nCaracteres> es el n£mero de caracteres que hay que extraer. Si se
omite, la subcadena empieza en <nInicio> y contin£a hasta el final de
la cadena. Si <nCaracteres> es mayor que el n£mero de caracteres desde
<nInicio> hasta el final de <cCadena>, los caracteres adicionales se
ignoran.

>><nCaracteres> es el n£mero de caracteres que hay que EXTRAER.
No C_U_A_N_T_O_S caracteres.
(He escrito con guiones por que si no los pongo no muestra la palabra, ¿Será una palabra malsonante en algún idioma?]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277502#p277502 Sat, 08 Feb 2025 01:48:19 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277502#p277502
<![CDATA[FiveWin para Harbour/xHarbour :: Re: substr() :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277503#p277503
No CUANTOS caracteres

debería mostrarlo...]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277503#p277503 Sat, 08 Feb 2025 02:28:39 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277503#p277503
<![CDATA[FiveWin para Harbour/xHarbour :: Re: substr() :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277507#p277507
Antonio Linares wrote: Sat Feb 08, 2025 9:28 am cuantos

debería mostrarlo...
En la siguiente línea debería aparecer "No C_U_A_N_T_O_S caracteres" (sin los guiones).
No CUANTOS caracteres

En la siguiente línea sí que lo escribe bien.
No CUANTOS loquesea]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277507#p277507 Sat, 08 Feb 2025 03:49:42 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277507#p277507
<![CDATA[FiveWin para Harbour/xHarbour :: Re: substr() :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277508#p277508
Tienes toda la razón :)

Ni idea de por qué hace eso. He revisado la lista de palabras con censura y no aparece...

Gracias!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277508#p277508 Sat, 08 Feb 2025 04:40:36 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277508#p277508
<![CDATA[FiveWin para Harbour/xHarbour :: Re: substr() SOLUCIONADO :: Reply by D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277530#p277530
Muchas gracias alerchster lo use así como dices.

Muy amables todos y muchas gracias.

Saludos

Ruben Dario Fernandez]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277530#p277530 Sat, 08 Feb 2025 13:58:23 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45390&p=277530#p277530
<![CDATA[FiveWin para Harbour/xHarbour :: Ayuda Firmar un archivo xml harbour o xharbour Argentina :: Author devwin2010]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45396&p=277542#p277542
Alguien tendria un ejemplo como firmar un archivo xml con harbour sin tener que utilizar openssl en modo comando
desde ya muchas gracias Fabian]]>
no_email@example.com (devwin2010) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45396&p=277542#p277542 Sat, 08 Feb 2025 21:16:40 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45396&p=277542#p277542
<![CDATA[FiveWin para Harbour/xHarbour :: Ayuda Factura electronica Argentina :: Author devwin2010]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45397&p=277543#p277543
Alguien tendria un ejemplo como hacer factura electronica Argentina utilizando codigo nativo, si librerias de terceros
desde ya muchas gracias Fabian]]>
no_email@example.com (devwin2010) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45397&p=277543#p277543 Sat, 08 Feb 2025 21:19:13 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45397&p=277543#p277543
<![CDATA[FiveWin para Harbour/xHarbour :: gmail y OAuth :: Author horacio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277414#p277414 Ya no se pueden mandar correos desde gmail en aplicaciones de terceros como lo veníamos haciendo. Ahora hay que usar OAuth. No tengo la menor idea de como configurarlo. Alguien sabe? Gracias de antemano!]]> no_email@example.com (horacio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277414#p277414 Tue, 04 Feb 2025 06:30:39 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277414#p277414 <![CDATA[FiveWin para Harbour/xHarbour :: Re: gmail y OAuth :: Reply by Lailton]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277429#p277429
Estamos implementando soporte OAuth2 para Gmail y Microsoft (Outlook, Live, Office 365).
El soporte para el envío de correos con OAuth2 estará disponible en la próxima versión de FWH. 😃]]>
no_email@example.com (Lailton) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277429#p277429 Tue, 04 Feb 2025 16:01:12 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277429#p277429
<![CDATA[FiveWin para Harbour/xHarbour :: Re: gmail y OAuth :: Reply by wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277451#p277451 yo nunca pude usar 365 para envio de mails seria un puntazo !!!
puedes dar algo de contexto como lo van a hacer
curl ? o ?
saludos
Wilson]]>
no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277451#p277451 Wed, 05 Feb 2025 12:01:40 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277451#p277451
<![CDATA[FiveWin para Harbour/xHarbour :: Re: gmail y OAuth :: Reply by Lailton]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277455#p277455 Cuando listo posto ejemplos con screenshots.

:D]]>
no_email@example.com (Lailton) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277455#p277455 Wed, 05 Feb 2025 15:15:45 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277455#p277455
<![CDATA[FiveWin para Harbour/xHarbour :: Re: gmail y OAuth :: Reply by wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277459#p277459 saludos
Wilson]]>
no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277459#p277459 Wed, 05 Feb 2025 19:15:22 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277459#p277459
<![CDATA[FiveWin para Harbour/xHarbour :: Re: gmail y OAuth :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277463#p277463
Lailton wrote: Wed Feb 05, 2025 10:15 pm Si, parte del codigo es con CURL para poder criar los token de comunicacion con los servicos oAuth2.
Cuando listo posto ejemplos con screenshots.

:D
Lailton, esperando ansioso.

Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277463#p277463 Thu, 06 Feb 2025 03:36:58 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277463#p277463
<![CDATA[FiveWin para Harbour/xHarbour :: Re: gmail y OAuth :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277468#p277468
karinha wrote: Thu Feb 06, 2025 10:36 am
Lailton wrote: Wed Feb 05, 2025 10:15 pm Si, parte del codigo es con CURL para poder criar los token de comunicacion con los servicos oAuth2.
Cuando listo posto ejemplos con screenshots.

:D
Lailton, esperando ansioso.

Gracias, tks.

Regards, saludos.
+1]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277468#p277468 Thu, 06 Feb 2025 05:20:04 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277468#p277468
<![CDATA[FiveWin para Harbour/xHarbour :: Re: gmail y OAuth :: Reply by mauri.menabue]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277554#p277554 TIA :D]]> no_email@example.com (mauri.menabue) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277554#p277554 Sun, 09 Feb 2025 12:06:31 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45378&p=277554#p277554 <![CDATA[FiveWin para Harbour/xHarbour :: QR en portapapeles :: Author FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277512#p277512
¿Ustedes sabrían como hacer para generar un código QR, y dejarlo en el portapapeles para luego en otra aplicación realizar un 'pegar'?

Muchas gracias,]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277512#p277512 Sat, 08 Feb 2025 08:50:39 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277512#p277512
<![CDATA[FiveWin para Harbour/xHarbour :: Re: QR en portapapeles :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277515#p277515
Aqui tenemos un muy buen ejemplo de QR de César:
viewtopic.php?p=276837#p276837

y luego seria cuestión de usar FW_CopyToClipboard( ... ) proporcionandole la imagen del QR.

nos falta ese paso... pensando...]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277515#p277515 Sat, 08 Feb 2025 10:01:39 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277515#p277515
<![CDATA[FiveWin para Harbour/xHarbour :: Re: QR en portapapeles :: Reply by Cgallegoa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277517#p277517

Code: Select all | Expand

#include "FiveWin.ch"

REQUEST FWZEBRA    // *** Indispensable para dibujar código QR

Function Inicio()
   LOCAL oDlg, hBmp
   LOCAL cTxt4QR := "Prueba de Copy - Paste" + CRLF + "FiveWin 2025" 

   hBmp := FW_BarCodeBmp( cTxt4QR, "QRCODE", 250, 250 )
   hBmp := bmp2alpha( hBmp )   // *** Sin esta línea QRcode tiene un feo marco negro
 // *** Siguiente línea hace la magia y guarda en el portapapeles, luego,
 // *** puedes hacer PASTE (Ctrl+V) en Paint, PhotoShop, Word,  etc., y recuperas tu código QR
   FW_CopyToClipboard(hBmp)
   
   DEFINE DIALOG oDlg SIZE 400,300 PIXEL TRUEPIXEL
        @ 20,20 XIMAGE oImg SIZE -20,-20 OF oDlg PIXEL RESOURCE hBmp
   ACTIVATE DIALOG oDlg CENTERED
return nil
//-----------------------------------------------------------------------//

Function bmp2alpha( hBmp1 )
   local hBmp, oBmp
   oBmp  := GdiBmp():New()
   oBmp:CreateFromRes( hBmp1, 0 )
   oBmp:Conver24to32Alpha( .F. )
   hBmp  := oBmp:GetGDIHbitmap()
   oBmp:Set32Bits(.F.)
   oBmp:Destroy()
   DeleteObject( hBmp1 )
return hBmp
//------------------------------------------------------------------------------//
]]>
no_email@example.com (Cgallegoa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277517#p277517 Sat, 08 Feb 2025 10:46:22 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277517#p277517
<![CDATA[FiveWin para Harbour/xHarbour :: Re: QR en portapapeles :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277518#p277518
Antonio Linares wrote: Sat Feb 08, 2025 5:01 pm Carlos,

Aqui tenemos un muy buen ejemplo de QR de César:
viewtopic.php?p=276837#p276837

y luego seria cuestión de usar FW_CopyToClipboard( ... ) proporcionandole la imagen del QR.

nos falta ese paso... pensando...
Si, si. En el documento ya lo consigo imprimir, la intención es disponer de él en el clipboard.

Estoy mirando esto:
hBitmap := FW_BarCodeBmp( cText, "QR-CODE", 3.5, 3.5, Nil )
SetClipboardData( 2, hBitmap )
FW_CopyToClipBoard( cText )
FW_CopyToClipBoard( hBitmap, 2 )

Pero no me funciona, al menos en el Word no consigo que 'pegue' el Qr. (el cText sin problema).

A ver que se te ocurre.

Muchas gracias,

EDITADO
=======

FW_BarCodeBmp( cText, "QR-CODE", 3.5, 3.5, Nil ) creo que debía ser FW_BarCodeBmp( cText, "QRCODE", 3.5, 3.5, Nil )

Por otra parte, las unidades de FW_BarCodeBmp( cText, "QRCODE", 3.5, 3.5, Nil ), son pixels, pulgadas, centímetros?]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277518#p277518 Sat, 08 Feb 2025 10:36:21 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277518#p277518
<![CDATA[FiveWin para Harbour/xHarbour :: Re: QR en portapapeles :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277520#p277520
Por otra parte, las unidades de FW_BarCodeBmp( cText, "QRCODE", 3.5, 3.5, Nil ), son pixels, pulgadas, centímetros?

Me ha creado un QR que no parece correcto, desde el móvil no lo identifica.
Lo he 'pagado' en el Word, le he impreso y nada, que no le gusta.]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277520#p277520 Sat, 08 Feb 2025 10:52:14 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277520#p277520
<![CDATA[FiveWin para Harbour/xHarbour :: Re: QR en portapapeles :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277521#p277521 FW_BarCodeBmp( cText, "QR-CODE", 4.0, 4.0, Nil )

prueba hacerlo asi o mas grande]]>
no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277521#p277521 Sat, 08 Feb 2025 11:17:00 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277521#p277521
<![CDATA[FiveWin para Harbour/xHarbour :: Re: QR en portapapeles :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277523#p277523
sysctrl2 wrote: Sat Feb 08, 2025 6:17 pm el tamaño estandard de un QR es 4.0
FW_BarCodeBmp( cText, "QR-CODE", 4.0, 4.0, Nil )

prueba hacerlo asi o mas grande
És para Verifactu, nos permiten entre 3 y 4 cm., lo voy a poner a 3,5cm.

He visto que CGallego utiliza 250,250 además de QRCODE.

FW_BarCodeBmp( cText, "QR-CODE", 3500, 350, Nil )
El QR mide 9,5 cm. aproximadamente, he probado con 129,129 y 'pagado' en un Word a DIN A4 mide 3,5 cm; para mi el tamaño correcto.

Ahora bien, me dibuja el marco negro y el lector no lo identifica como un QR válido.

Mi función es esta:

// Para usar QR precisa de "REQUEST FWZEBRA"
REQUEST FWZEBRA

FUNCTION VFQr2Clipboard( AMPAARRA, cNIF, cVFCODFAC, dDataFact, nImpotota )

Local cText := ""
Local hBitmap := 0

cText := VF_URL_QR( AMPAARRA, ;
AllTrim( cNIF ), ;
AllTrim( cVFCODFAC ), ;
dDataFact, ;
nImpoTota ;
)

Traza( 1, "cText=", cText )

MsgInfo( cText, "B" )

hBitmap := FW_BarCodeBmp( cText, "QRCODE", 129, 129, Nil )

hBitmap := bmp2alpha( hBitmap )

FW_CopyToClipBoard( hBitmap )

Return Nil
/* *********************************************************************************** */]

EDITO
=====
Da igual que use "QR-CODE" que "QRCODE"

EDITO-2
======
Y no necesita REQUEST FWZEBRA.]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277523#p277523 Sat, 08 Feb 2025 11:28:17 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277523#p277523
<![CDATA[FiveWin para Harbour/xHarbour :: Re: QR en portapapeles :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277524#p277524
Venderé el soft con un kit de tijeras para QR.
:D :D :D

Y todo es digital, el soft digital, las tijeras con los dedos (digital). :wink:

Venga, que alguien me eche una mano. :oops:]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277524#p277524 Sat, 08 Feb 2025 11:57:02 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277524#p277524
<![CDATA[FiveWin para Harbour/xHarbour :: Re: QR en portapapeles :: Reply by Cgallegoa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277526#p277526
Otra opción es con oImg:bPainted. Hace el copy sin el feo marco

Code: Select all | Expand

#include "FiveWin.ch"

REQUEST FWZEBRA    // *** Indispensable para dibujar código QR

Function Inicio()
   LOCAL oDlg, hBmp
   LOCAL cTxt4QR := "Prueba de Copy - Paste" + CRLF + "FiveWin 2025" 

   hBmp := FW_BarCodeBmp( cTxt4QR, "QRCODE", 250, 250 )
   hBmp := bmp2alpha( hBmp )   // *** Sin esta línea QRcode tiene un feo marco negro
 // *** Siguiente línea hace la magia y guarda en el portapapeles, luego,
 // *** puedes hacer PASTE (Ctrl+V) en Paint, PhotoShop, Word,  etc., y recuperas tu código QR
 //  FW_CopyToClipboard(hBmp)    // *** También genera marco negro al hacer paste.
   
   DEFINE DIALOG oDlg SIZE 400,350 PIXEL TRUEPIXEL
        @ 03,20 BUTTON oBtn PROMPT "Copy" OF oDlg PIXEL SIZE 80,25 ACTION oImg:CopytoClipBoard(.T.)  

        @ 40,20 XIMAGE oImg SIZE -20,-20 OF oDlg PIXEL RESOURCE hBmp
        oImg:bPainted := {||oImg:CopytoClipBoard(.T.)}   // *** Hace el paste correcto, sin el cuadro negro.

   ACTIVATE DIALOG oDlg CENTERED
return nil
//-----------------------------------------------------------------------//

Function bmp2alpha( hBmp1 )
   local hBmp, oBmp
   oBmp  := GdiBmp():New()
   oBmp:CreateFromRes( hBmp1, 0 )
   oBmp:Conver24to32Alpha( .F. )
   hBmp  := oBmp:GetGDIHbitmap()
   oBmp:Set32Bits(.F.)
   oBmp:Destroy()
   DeleteObject( hBmp1 )
return hBmp
//------------------------------------------------------------------------------//
Ya no hace falta que incluyas las tijeras :)]]>
no_email@example.com (Cgallegoa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277526#p277526 Sat, 08 Feb 2025 12:38:44 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277526#p277526
<![CDATA[FiveWin para Harbour/xHarbour :: Re: QR en portapapeles :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277527#p277527

El caso es que no lo muestro en pantalla.

Voy a investigar XIMAGE a ver que hace.

Y anulo el pedido a Amazon de las 35698 tijeras que he pedido.

Supongo que si Antonio nos lee quizás resuelva el bug de FW_CopyToClipboard()

Muchas gracias por el interés.
Sigo investigando.]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277527#p277527 Sat, 08 Feb 2025 13:16:18 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277527#p277527
<![CDATA[FiveWin para Harbour/xHarbour :: Re: QR en portapapeles :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277529#p277529
Has probado asi ?

FW_BarCodeBmp( cText, "QRCODE", 129, 129, Nil, CLR_WHITE )

No encuentro el código de Bmp2Alpha(), donde está ? :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277529#p277529 Sat, 08 Feb 2025 13:49:06 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277529#p277529
<![CDATA[FiveWin para Harbour/xHarbour :: Re: QR en portapapeles :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277533#p277533
Antonio Linares wrote: Sat Feb 08, 2025 8:49 pm Carlos,

Has probado asi ?

FW_BarCodeBmp( cText, "QRCODE", 129, 129, Nil, CLR_WHITE )

No encuentro el código de Bmp2Alpha(), donde está ? :)
Sigue apareciendo el marco negro alrededor. QR no identificable.

Function bmp2alpha( hBmp1 )
local hBmp, oBmp
oBmp := GdiBmp():New()
oBmp:CreateFromRes( hBmp1, 0 )
oBmp:Conver24to32Alpha( .F. )
hBmp := oBmp:GetGDIHbitmap()
oBmp:Set32Bits(.F.)
oBmp:Destroy()
DeleteObject( hBmp1 )
return hBmp]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277533#p277533 Sat, 08 Feb 2025 14:13:37 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277533#p277533
<![CDATA[FiveWin para Harbour/xHarbour :: Re: QR en portapapeles :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277535#p277535
Estoy probando asi pero desde el mspaint al pegar se ve todo en negro:

Code: Select all | Expand

#include "FiveWin.ch"

function Main()

   FW_CopyToClipBoard( bmp2Alpha( FW_BarCodeBmp( "Hola", "QRCODE", 400.0, 400.0 ) ) )

return nil

Function bmp2alpha( hBmp1 )
   local hBmp, oBmp
   oBmp := GdiBmp():New()
   oBmp:CreateFromRes( hBmp1, 0 )
   oBmp:Conver24to32Alpha( .F. )
   hBmp := oBmp:GetGDIHbitmap()
   oBmp:Set32Bits(.F.)
   oBmp:Destroy()
   DeleteObject( hBmp1 )
   return hBmp
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277535#p277535 Sat, 08 Feb 2025 14:35:27 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277535#p277535
<![CDATA[FiveWin para Harbour/xHarbour :: Re: QR en portapapeles :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277537#p277537
Antonio Linares wrote: Sat Feb 08, 2025 9:35 pm Carlos,

Estoy probando asi pero desde el mspaint al pegar se ve todo en negro:

Code: Select all | Expand

#include "FiveWin.ch"

function Main()

   FW_CopyToClipBoard( bmp2Alpha( FW_BarCodeBmp( "Hola", "QRCODE", 400.0, 400.0 ) ) )

return nil

Function bmp2alpha( hBmp1 )
   local hBmp, oBmp
   oBmp := GdiBmp():New()
   oBmp:CreateFromRes( hBmp1, 0 )
   oBmp:Conver24to32Alpha( .F. )
   hBmp := oBmp:GetGDIHbitmap()
   oBmp:Set32Bits(.F.)
   oBmp:Destroy()
   DeleteObject( hBmp1 )
   return hBmp
Precisamente lo que comentaba Carlos Gallego.
Al parecer antes sin la función bmp2alpha() se veía negro (eso está anotado en el código de ejemplo que ha publicado).
De ahí el uso de la función bmp2alpha(), para que no se viera todo en negro.

Yo incluso estaba pensando en crear un DIALOG, meterle el QR, usar métodos de la clase WINDOW y ver si se puede capturar; vamos una solución parecida que ha encontrado Carlos Gallego ante el error que se da ahora.
Pero yo crearía el DIALOG, le meto el QR, lo capturo y cierro DIALOG.
Al menos tendré respuesta al problema aunque no me guste mucho. De momento todo es teoría, es sólo una idea.
A ver mañana como me levanto y sigo con ello.

Muchas gracias,]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277537#p277537 Sat, 08 Feb 2025 15:07:55 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277537#p277537
<![CDATA[FiveWin para Harbour/xHarbour :: Re: QR en portapapeles :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277538#p277538 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277538#p277538 Sat, 08 Feb 2025 15:24:24 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277538#p277538 <![CDATA[FiveWin para Harbour/xHarbour :: Re: QR en portapapeles :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277539#p277539
Antonio Linares wrote: Sat Feb 08, 2025 10:24 pm Le consulto a Rao, el implementó estas funciones
Perfecto,

Muchas gracias]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277539#p277539 Sat, 08 Feb 2025 15:50:49 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277539#p277539
<![CDATA[FiveWin para Harbour/xHarbour :: Re: QR en portapapeles :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277555#p277555
De momento lo dejo así.
Me sirve, me lo deja en la medida que deseo (3,5cm), y me parece incluso que está bien que vea lo que va a copiar, y en vez de preguntarle si realmente lo quiere copiar, pues ha de pulsar un botón.

Copia el QR con un marco negro fino que no toca el QR en si, y que además no lo invalida, el móvil lo lee sin problemas.

De todas maneras si se arregla el bug mejor.

Seguimos,

/* ****************************************************************** */
LOCAL oDlg, hBmp
LOCAL cTxt4QR := ""
Local oBtn := Nil
Local oImg := Nil


cTxt4QR := VF_URL_QR( AMPAARRA, ;
AllTrim( cNIF ), ;
AllTrim( cVFCODFAC ), ;
dDataFact, ;
nImpoTota ;
)

hBmp := FW_BarCodeBmp( cTxt4QR, "QRCODE", 129, 129 )
hBmp := bmp2alpha( hBmp ) // *** Sin esta línea QRcode tiene un feo marco negro
// *** Siguiente línea hace la magia y guarda en el portapapeles, luego,
// *** puedes hacer PASTE (Ctrl+V) en Paint, PhotoShop, Word, etc., y recuperas tu código QR
// FW_CopyToClipboard(hBmp) // *** También genera marco negro al hacer paste.

DEFINE DIALOG oDlg TITLE Right( AllTrim( cVFCODFAC ), 10 ) SIZE 170,185 PIXEL TRUEPIXEL

@ 03,20 BUTTON oBtn PROMPT "Copy QR" OF oDlg PIXEL SIZE 80,25 ACTION ( oImg:CopytoClipBoard(.T.), oDlg:End() ) ;
MESSAGE GetTrad( "Còpia el QR al porta-retalls." )

@ 40,20 XIMAGE oImg SIZE -20,-15 OF oDlg /* PIXEL */ RESOURCE hBmp

//oImg:bPainted := {||oImg:CopytoClipBoard(.T.)} // *** Hace el paste correcto, sin el cuadro negro.

ACTIVATE DIALOG oDlg CENTERED]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277555#p277555 Sun, 09 Feb 2025 12:07:09 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277555#p277555
<![CDATA[FiveWin para Harbour/xHarbour :: Re: QR en portapapeles :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277560#p277560 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277560#p277560 Sun, 09 Feb 2025 15:31:50 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277560#p277560 <![CDATA[FiveWin para Harbour/xHarbour :: Re: QR en portapapeles :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277562#p277562
Antonio Linares wrote: Sun Feb 09, 2025 10:31 pm Rao hay implementado una nueva función que proporcionaremos cuanto antes
Dile que no corra, el resultado que he obtenido empieza a gustarme. :P

Por cierto, gracias Carlos Gallego, el mérito es suyo.

Pero si, se debe corregir.

Muchas gracias,]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277562#p277562 Sun, 09 Feb 2025 15:35:09 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45393&p=277562#p277562
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Firmar fichero con certificado :: Reply by devwin2010]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=39508&p=277544#p277544 windev2@yahoo.com.ar desde ya muchisimas gracias Fabian]]> no_email@example.com (devwin2010) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=39508&p=277544#p277544 Sat, 08 Feb 2025 21:46:53 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=39508&p=277544#p277544 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Firmar fichero con certificado :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=39508&p=277545#p277545 no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=39508&p=277545#p277545 Sun, 09 Feb 2025 00:57:46 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=39508&p=277545#p277545 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Firmar fichero con certificado :: Reply by devwin2010]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=39508&p=277595#p277595
Estoy tratando de fimar un archivo xml con harbour_win32_bcc_2020_10_19 incluyo librerias hbssl y libeay32 , y me faltan las siguientes funciones unresolved external

CMS_CREATE
CMS_CERTFILE
CMS_SETKEYFILE
CMS_SIGN
CMS_GETSIGNEDCMS
CMS_REALEASE

alguien tiene la libreria armada o como hacerlo si que arroje estos errores desde ya muchas gracias
Fabian]]>
no_email@example.com (devwin2010) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=39508&p=277595#p277595 Tue, 11 Feb 2025 13:30:40 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=39508&p=277595#p277595
<![CDATA[FiveWin para Harbour/xHarbour :: curl en harbour 64 bits ultima version :: Author wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277587#p277587 c:\h64\bin\win\msvc64\hbmk2 -quiet -width=0 -autohbm- @hbpre -inc -hbdyn hbexpat/hbexpat.hbp @hbpost hbexpat/hbexpat.hbc
hbmk2: Meta actualizada: ..\bin\win\msvc64\hbexpat-32-x64.dll
c:\h64\bin\win\msvc64\hbmk2 -quiet -width=0 -autohbm- @hbpre -inc hbcurl/hbcurl.hbp @hbpost
hbcurl.c
core.c
hbcurl\core.c(1696): error C2664: 'CURLcode curl_easy_setopt(CURL *,CURLoption,...)': el argumento 2 no puede convertirse de 'int' a 'CURLoption'
hbcurl\core.c(1696): note: La conversión a tipo de enumeración requiere una conversión explícita (static_cast, conversión de estilo de C o conversión de estilo de función entre paréntesis)
C:\curl641\include\curl\easy.h(42): note: vea la declaración de 'curl_easy_setopt'
hbcurl\core.c(1696): note: al hacer coincidir la lista de argumentos '(CURL *, int, long)'
Generando código...
hbmk2[hbcurls]: Error: Ejecutando compilador C/C++. 2
! Finished package build...
makefile:8: recipe for target 'first' failed
win-make.exe[1]: *** [first] Error 6
config/dir.mk:71: recipe for target 'contrib' failed
win-make.exe: *** [contrib] Error 2
hay alguna guia de como hacerlo la instalacion es fresca recien bajada de github
gracias
Wilson]]>
no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277587#p277587 Tue, 11 Feb 2025 08:30:06 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277587#p277587
<![CDATA[FiveWin para Harbour/xHarbour :: Re: curl en harbour 64 bits ultima version :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277588#p277588
https://github.com/FiveTechSoft/harbour ... our_builds]]>
no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277588#p277588 Tue, 11 Feb 2025 08:41:02 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277588#p277588
<![CDATA[FiveWin para Harbour/xHarbour :: Re: curl en harbour 64 bits ultima version :: Reply by wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277589#p277589 C:\wilson\ia>hbmk2 deepseek.prg hbcurl.hbc
Harbour 3.2.0dev (r2502031126)
Copyright (c) 1999-2024, https://harbour.github.io/
Compiling 'deepseek.prg'...
Lines 1583, Functions/Procedures 11
Generating C source output to 'C:\Users\WilsonG\AppData\Local\Temp\hbmk_g1nowz.dir\deepseek.c'... Done.
deepseek.c
LINK : warning LNK4098: la biblioteca predeterminada'MSVCRT' entra en conflicto con otras bibliotecas; use la biblioteca /NODEFAULTLIB:biblioteca
LINK : warning LNK4217: "__acrt_iob_func" importa el s¡mbolo "libucrt.lib(_file.obj)" definido en "hbvm.lib(hvmall.obj)" en la funci¢n "dlmalloc_stats"
LINK : warning LNK4217: "__stdio_common_vfprintf" importa el s¡mbolo "libucrt.lib(output.obj)" definido en "hbvm.lib(hvmall.obj)" en la funci¢n "_vfprintf_l"
LINK : warning LNK4286: "__stdio_common_vfprintf" importa el s¡mbolo "libucrt.lib(output.obj)" definido en "hbrtl.lib(errintlo.obj)"
LINK : warning LNK4217: "abort" importa el s¡mbolo "libucrt.lib(abort.obj)" definido en "hbvm.lib(hvmall.obj)" en la funci¢n "add_segment"
LINK : warning LNK4217: "strncmp" importa el s¡mbolo "libucrt.lib(strncmp.obj)" definido en "hbvm.lib(hvmall.obj)" en la funci¢n "hb_macroGenPopAliasedVar"
LINK : warning LNK4286: "strncmp" importa el s¡mbolo "libucrt.lib(strncmp.obj)" definido en "hbrtl.lib(hbjson.obj)"
LINK : warning LNK4286: "strncmp" importa el s¡mbolo "libucrt.lib(strncmp.obj)" definido en "rddntx.lib(dbfntx1.obj)"
LINK : warning LNK4286: "strncmp" importa el s¡mbolo "libucrt.lib(strncmp.obj)" definido en "hbcommon.lib(funcid.obj)"
LINK : warning LNK4217: "atoi" importa el s¡mbolo "libucrt.lib(atox.obj)" definido en "hbvm.lib(cmdarg.obj)" en la funci¢n "hb_cmdargNum"
LINK : warning LNK4217: "atoi" importa el s¡mbolo "libucrt.lib(atox.obj)" definido en "hbrdd.lib(wafunc.obj)" en la funci¢n "hb_rddGetTempAlias"
LINK : warning LNK4217: "exit" importa el s¡mbolo "libucrt.lib(exit.obj)" definido en "hbrtl.lib(errint.obj)" en la funci¢n "hb_errInternal"
LINK : warning LNK4217: "fclose" importa el s¡mbolo "libucrt.lib(fclose.obj)" definido en "hbrtl.lib(errintlo.obj)" en la funci¢n "hb_errInternalRaw"
LINK : warning LNK4217: "ceil" importa el s¡mbolo "libucrt.lib(ceil.obj)" definido en "rddntx.lib(dbfntx1.obj)" en la funci¢n "hb_ntxSortNew"
hbvm.lib(hvmall.obj) : error LNK2019: s¡mbolo externo __imp__dclass sin resolver al que se hace referencia en la funci¢n hb_itemStrBuf
hbcommon.lib(hbprintf.obj) : error LNK2001: s¡mbolo externo __imp__dclass sin resolver
hbvm.lib(hvmall.obj) : error LNK2019: s¡mbolo externo __imp_modf sin resolver al que se hace referencia en la funci¢n hb_itemStrBuf
hbrtl.lib(fstemp.obj) : error LNK2001: s¡mbolo externo __imp_modf sin resolver
hbcommon.lib(hbstr.obj) : error LNK2001: s¡mbolo externo __imp_modf sin resolver
hbcommon.lib(hbprintf.obj) : error LNK2001: s¡mbolo externo __imp_modf sin resolver
hbrtl.lib(arc4.obj) : error LNK2019: s¡mbolo externo __imp_srand sin resolver al que se hace referencia en la funci¢n arc4_seed_rand
hbrtl.lib(arc4.obj) : error LNK2019: s¡mbolo externo __imp_rand sin resolver al que se hace referencia en la funci¢n arc4_seed_rand
hbcommon.lib(hbprintf.obj) : error LNK2019: s¡mbolo externo __imp__dsign sin resolver al que se hace referencia en la funci¢n hb_vsnprintf
hbcommon.lib(hbfopen.obj) : error LNK2019: s¡mbolo externo __imp__wfsopen sin resolver al que se hace referencia en la funci¢n hb_fopen
deepseek.exe : fatal error LNK1120: 6 externos sin resolver
hbmk2: Error: Running linker. 1120
link.exe @C:\Users\WilsonG\AppData\Local\Temp\jaucfi.lnk]]>
no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277589#p277589 Tue, 11 Feb 2025 09:06:35 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277589#p277589
<![CDATA[FiveWin para Harbour/xHarbour :: Re: curl en harbour 64 bits ultima version :: Reply by alerchster]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277591#p277591
-n-
-ldflag=/NODEFAULTLIB:libucrt
-ldflag+=/NODEFAULTLIB:msvcrt]]>
no_email@example.com (alerchster) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277591#p277591 Tue, 11 Feb 2025 10:02:59 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277591#p277591
<![CDATA[FiveWin para Harbour/xHarbour :: Re: curl en harbour 64 bits ultima version :: Reply by wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277592#p277592 no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277592#p277592 Tue, 11 Feb 2025 10:26:38 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277592#p277592 <![CDATA[FiveWin para Harbour/xHarbour :: Re: curl en harbour 64 bits ultima version :: Reply by wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277594#p277594 -n-
-ldflag=/NODEFAULTLIB:libucrt
-ldflag=/NODEFAULTLIB:msvcrt
deepseek.prg
hbcurl.hbc
have many errors
C:\wilson\ia>hbmk2 deepseek
Harbour 3.2.0dev (r2502031126)
Copyright (c) 1999-2024, https://harbour.github.io/
Compiling 'deepseek.prg'...
Lines 1583, Functions/Procedures 12
Generating C source output to 'C:\Users\WilsonG\AppData\Local\Temp\hbmk_2ons6a.dir\deepseek.c'... Done.
deepseek.c
hbcommon.lib(hbgete.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbcommon.lib(funcid.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbcommon.lib(hbstr.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbcommon.lib(hbprintf.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbcommon.lib(strwild.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbcommon.lib(hbfsapi.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
rddntx.lib(dbfntx1.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbmacro.lib(macroy.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbmacro.lib(macroa.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbmacro.lib(macrob.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbrtl.lib(hbntos.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbrtl.lib(mlcfunc.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbrtl.lib(file.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbrdd.lib(wafunc.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbrtl.lib(itemseri.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbrtl.lib(fstemp.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbrtl.lib(direct.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbrtl.lib(hbstrfmt.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbrtl.lib(hbgtcore.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbrtl.lib(langapi.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbrtl.lib(dates.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbrtl.lib(transfrm.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbrtl.lib(filesys.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbrtl.lib(console.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbrtl.lib(hbi18n1.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbrtl.lib(cdpapi.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbcurl.lib(core.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbvm.lib(hvmall.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbvm.lib(cmdarg.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbrtl.lib(hbjson.obj) : error LNK2001: s¡mbolo externo strlen sin resolver
hbvm.lib(hvmall.obj) : error LNK2019: s¡mbolo externo __imp___acrt_iob_func sin resolver al que se hace referencia en la funci¢n dlmalloc_stats
hbvm.lib(hvmall.obj) : error LNK2019: s¡mbolo externo __imp___stdio_common_vfprintf sin resolver al que se hace referencia en la funci¢n _vfprintf_l
hbrtl.lib(errintlo.obj) : error LNK2001: s¡mbolo externo __imp___stdio_common_vfprintf sin resolver
hbvm.lib(hvmall.obj) : error LNK2019: s¡mbolo externo __imp_abort sin resolver al que se hace referencia en la funci¢n add_segment
hbmacro.lib(macrob.obj) : error LNK2001: s¡mbolo externo strcmp sin resolver
hbcommon.lib(expropt1.obj) : error LNK2001: s¡mbolo externo strcmp sin resolver
hbcommon.lib(funcid.obj) : error LNK2001: s¡mbolo externo strcmp sin resolver
hbvm.lib(hvmall.obj) : error LNK2001: s¡mbolo externo strcmp sin resolver]]>
no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277594#p277594 Tue, 11 Feb 2025 12:49:05 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277594#p277594
<![CDATA[FiveWin para Harbour/xHarbour :: Re: curl en harbour 64 bits ultima version :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277600#p277600 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277600#p277600 Tue, 11 Feb 2025 15:16:46 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277600#p277600 <![CDATA[FiveWin para Harbour/xHarbour :: Re: curl en harbour 64 bits ultima version :: Reply by wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277620#p277620
-ldflag=/NODEFAULTLIB:libucrt
-ldflag=/NODEFAULTLIB:msvcrt
-lucrt
deepseek.prg
hbcurl.hbc

con eso compila perfecto
ya quedo en espera del curso de IA !!]]>
no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277620#p277620 Wed, 12 Feb 2025 09:26:55 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45403&p=277620#p277620
<![CDATA[FiveWin para Harbour/xHarbour :: Re: HBSSL CON FUNCIONES DE DIEGO FAZIO INCLUIDAS :: Reply by devwin2010]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=40838&p=277628#p277628
Compile el archivo cms.c proporcionado , me da los siguientes errores

Embarcadero C++ 7.30 for Win32 Copyright (c) 1993-2017 Embarcadero Technologies, Inc.
cms.c:
Error E2293 C:\OpenSSL\include\openssl/cms.h 200: ) expected
Error E2293 C:\OpenSSL\include\openssl/cms.h 250: ) expected
*** 2 errors in Compile ***
Error: Fallo en la compilación.

desde ya muchas gracias Fabian]]>
no_email@example.com (devwin2010) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=40838&p=277628#p277628 Wed, 12 Feb 2025 19:28:32 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=40838&p=277628#p277628
<![CDATA[FiveWin para Harbour/xHarbour :: Ayuda HBSSl Lib con cms incluida para firmar archivos xml con certificado y key :: Author devwin2010]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45411&p=277630#p277630
He Tratado de compilar cms.c de Fazio para luego incorporarlo a hbssl.lib , me tira los siguientes erorres

Embarcadero C++ 7.30 for Win32 Copyright (c) 1993-2017 Embarcadero Technologies, Inc.
cms.c:
Error E2293 C:\OpenSSL\include\openssl/cms.h 200: ) expected
Error E2293 C:\OpenSSL\include\openssl/cms.h 250: ) expected
*** 2 errors in Compile ***
Error: Fallo en la compilación.


Desde ya muchas gracias
Fabian]]>
no_email@example.com (devwin2010) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45411&p=277630#p277630 Wed, 12 Feb 2025 22:09:26 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45411&p=277630#p277630
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Ayuda HBSSl Lib con cms incluida para firmar archivos xml con certificado y key :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45411&p=277631#p277631
Entiendo que te refieres a este código:
https://www.forums.fivetechsupport.com/ ... 91#p235791

Aqui tienes los OBJs para enlazarlos a tu app:
https://github.com/FiveTechSoft/FWH_too ... gnfile.zip]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45411&p=277631#p277631 Wed, 12 Feb 2025 22:23:46 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45411&p=277631#p277631
<![CDATA[FiveWin para Harbour/xHarbour :: tlayout refresh :: Author MGA]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45409&p=277626#p277626 hLays["TITLE" ] := hLays["MAIN"]:addVLayout(38)
hLays["GET" ] := hLays["MAIN"]:addVLayout(120)
hLays["BROWSE"] := hLays["MAIN"]:addVLayout()
...

Después de crear una ventana con TLAYOUT, me gustaría tener un botón que, al hacer clic, cambie el tamaño del GET creado.

function RedimensionarGet()

hLays["GET"]:nHeight := 200
hLays["GET"]:refresh()

//aqui!!!!!
//Cómo puedo actualizar TLAYOUT para que la clase asuma el nuevo valor GET y redimensione los recursos restantes?

return]]>
no_email@example.com (MGA) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45409&p=277626#p277626 Wed, 12 Feb 2025 14:20:50 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45409&p=277626#p277626
<![CDATA[FiveWin para Harbour/xHarbour :: Re: tlayout refresh :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45409&p=277633#p277633
gracias!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45409&p=277633#p277633 Wed, 12 Feb 2025 22:33:40 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45409&p=277633#p277633
<![CDATA[FiveWin para Harbour/xHarbour :: Ajustar tamaño caja toast :: Author leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277495#p277495
Image

Code: Select all | Expand

cRutaLgo := CurDrive()+":\"+CurDir()+"\loguito.bmp"
Toast( "CONFIRMACION DE PROCESO", "Documento nomina radicado correctamente DIAN","HymLyma | Digital Products ",cRutaLgo )	
De paso aprovechamos para preguntar, si se puede colocar algún botón o enlace, que ejecute una acción dentro de nuestra aplicación.]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277495#p277495 Fri, 07 Feb 2025 16:11:23 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277495#p277495
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Ajustar tamaño caja toast :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277504#p277504
La función Toast() usa funciones propias de WinRT basado en Windows.UI y no es nada estandard ni fácil de modificar.

Te adjunto aqui todo el código por si quieres revisarlo. He consultado con DeepSeek para ver si se puede hacer lo que quieres pero no parece dar una solución clara.

Comentarte que Cristobal implementó la Clase TToast en FWH y que usándola puedes tener mucho mas control aunque esa clase también tiene un nivel de complejidad.

winrt.prg

Code: Select all | Expand

#include "FiveWin.ch"

#define Show                       7
#define CreateToastNotification    7
#define CreateToastNotifierWithId  8
#define Item                       8
#define GetNamedItem               9
#define GetTemplateContent         9
#define add_Activated             12  
#define CreateTextNode            12
#define Get_Attributes            17
#define GetElementsByTagName      17
#define AppendChild               23

//---------------------------------------------------------------------------//

function WinRTString( cText )

   local pString
   
   WindowsCreateString( AnsiToWide( cText ), Len( cText ), @pString )

return pString

//---------------------------------------------------------------------------//

static function SetNodeText( pNodeList, nItem, cText, pXml )

   local pXmlNode, pXmlText, pXmlNodeChild
   local pString

   WinRTMethod( pNodeList, Item, nItem, @pXmlNode )
   pString = WinRTString( cText )
   WinRTMethod( pXml, CreateTextNode, pString, @pXmlText )
   WindowsDeleteString( pString )
   WinRTMethod( pXmlNode, AppendChild, pXmlText, @pXmlNodeChild )

return nil

//---------------------------------------------------------------------------//

static function SetImageFileName( pXml, cImageFileName ) 

   local pString := WinRTString( "image" )
   local pNodeList, pXmlNode, pAttributeMap
   local pXmlNodeAttribute, pXmlText, pXmlNodeChild

   WinRTMethod( pXml, GetElementsByTagName, pString, @pNodeList )
   WindowsDeleteString( pString )
   WinRTMethod( pNodeList, Item, 0, @pXmlNode )
   WinRTMethod( pXmlNode, Get_Attributes, @pAttributeMap )
   pString = WinRTString( "src" )
   WinRTMethod( pAttributeMap, GetNamedItem, pString, @pXmlNodeAttribute )
   WindowsDeleteString( pString )
   pString = WinRTString( cImageFileName )
   WinRTMethod( pXml, CreateTextNode, pString, @pXmlText )
   WindowsDeleteString( pString )
   WinRTMethod( pXmlNodeAttribute, AppendChild, pXmlText, @pXmlNodeChild )

return nil

//---------------------------------------------------------------------------//

function Toast( cFirstLine, cSecondLine, cThirdLine, cImageFileName )

   local pString, cIID, pToastFactory
   local pXml, pNodeList
   local pNotification, pNotificationFactory, pNotifier

   DEFAULT cFirstLine := "FiveWin notification",;
           cSecondLine := " ", cThirdLine := " ",;
           cImageFileName := "c:\fwh\bitmaps\pngs\fivetech.png"

   RoInitialize( 1 )

   pString = WinRTString( "Windows.UI.Notifications.ToastNotificationManager" )

   // "50AC103F-D235-4598-BBEF-98FE4D1A3AD4"
   cIID = Chr( 0x3F ) + Chr( 0x10 ) + Chr( 0xAC ) + Chr( 0x50 ) + ;
          Chr( 0x35 ) + Chr( 0xD2 ) + Chr( 0x98 ) + Chr( 0x45 ) + ;
          Chr( 0xBB ) + Chr( 0xEF ) + Chr( 0x98 ) + Chr( 0xFE ) + ;
          Chr( 0x4D ) + Chr( 0x1A ) + Chr( 0x3A ) + Chr( 0xD4 )

   RoGetActivationFactory( pString, cIID, @pToastFactory )

   WindowsDeleteString( pString );

   WinRTMethod( pToastFactory, GetTemplateContent, 3, @pXml )

   SetImageFileName( pXml, cImageFileName )
   
   pString = WinRTString( "text" )
   WinRTMethod( pXml, GetElementsByTagName, pString, @pNodeList )
   WindowsDeleteString( pString )

   SetNodeText( pNodeList, 0, cFirstLine,  pXml ) 
   SetNodeText( pNodeList, 1, cSecondLine, pXml ) 
   SetNodeText( pNodeList, 2, cThirdLine,  pXml ) 

   // 04124B20-82C6-4229-B109-FD9ED4662B53
   cIID = Chr( 0x20 ) + Chr( 0x4B ) + Chr( 0x12 ) + Chr( 0x04 ) + ;
          Chr( 0xC6 ) + Chr( 0x82 ) + Chr( 0x29 ) + Chr( 0x42 ) + ;
          Chr( 0xB1 ) + Chr( 0x09 ) + Chr( 0xFD ) + Chr( 0x9E ) + ;
          Chr( 0xD4 ) + Chr( 0x66 ) + Chr( 0x2B ) + Chr( 0x53 )

   pString = WinRTString( "Windows.UI.Notifications.ToastNotification" )
   RoGetActivationFactory( pString, cIID, @pNotificationFactory )
   WindowsDeleteString( pString )

   WinRTMethod( pNotificationFactory, CreateToastNotification, pXML, @pNotification )

   pString = WinRTString( " " )
   WinRTMethod( pToastFactory, CreateToastNotifierWithId, pString, @pNotifier )
   WindowsDeleteString( pString )

   // pEventHandler = WinRTEventHandler()
   // WinRTMethod( pNotification, add_Activated, pEventHandler, nEventToken )
   // MsgInfo( WinRTEventToken() )
   // WinRTMethod( pNotification, add_Activated + 1, pEventHandler, nEventToken )
   // MsgInfo( WinRTEventToken() )
   // WinRTMethod( pNotification, add_Activated + 2, pEventHandler, nEventToken )
   // MsgInfo( WinRTEventToken() )

   WinRTMethod( pNotifier, Show, pNotification )

   RoUninitialize()

return nil

//---------------------------------------------------------------------------//

DLL FUNCTION RoInitialize( nType AS LONG ) AS LONG PASCAL LIB "combase.dll"

DLL FUNCTION RoUninitialize() AS VOID PASCAL LIB "combase.dll"

DLL FUNCTION WindowsCreateString( cWideText AS LPSTR, nLength AS LONG, @pString AS PTR ) ;
   AS LONG PASCAL LIB "combase.dll"
   
DLL FUNCTION WindowsDeleteString( pString AS PTR ) AS LONG PASCAL LIB "combase.dll"

DLL FUNCTION RoGetActivationFactory( pString AS PTR, REFIID AS LPSTR, @pFactory AS PTR ) ;
   AS LONG PASCAL LIB "combase.dll"

DLL FUNCTION WindowsGetStringRawBuffer( pString AS PTR, @nLenght AS LONG ) ;
   AS LONG PASCAL LIB "combase.dll"
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277504#p277504 Sat, 08 Feb 2025 02:41:31 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277504#p277504
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Ajustar tamaño caja toast :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277506#p277506

Code: Select all | Expand

function Toast( cFirstLine, cSecondLine, cThirdLine, cImageFileName )

   local pString, cIID, pToastFactory
   local pXml, pNodeList
   local pNotification, pNotificationFactory, pNotifier
   local cXml

   DEFAULT cFirstLine := "FiveWin notification",;
           cSecondLine := " ", cThirdLine := " ",;
           cImageFileName := "c:\fwh\bitmaps\pngs\fivetech.png"

   RoInitialize( 1 )

   // Create XML document instance
   pString = WinRTString( "Windows.Data.Xml.Dom.XmlDocument" )
   RoActivateInstance( pString, @pXml )
   WindowsDeleteString( pString )

   // Define compact XML (no image or inline image)
   cXml := ;
   '<toast>'+;
      '<visual>'+;
         '<binding template="ToastGeneric">'+;
            iif( Empty( cImageFileName ), '', '<image src="' + cImageFileName + '"/>' ) + ;
            '<text>' + cFirstLine + '</text>'+;
            '<text>' + cSecondLine + '</text>'+;
            '<text>' + cThirdLine + '</text>'+;
         '</binding>'+;
      '</visual>'+;
   '</toast>'

   // Load the XML into the document
   pString = WinRTString( cXml )
   WinRTMethod( pXml, "LoadXml", pString )
   WindowsDeleteString( pString )

   // Proceed with creating the notification (same as before)
   pString = WinRTString( "Windows.UI.Notifications.ToastNotificationManager" )
   cIID = Chr( 0x3F ) + Chr( 0x10 ) + Chr( 0xAC ) + Chr( 0x50 ) + ;
          Chr( 0x35 ) + Chr( 0xD2 ) + Chr( 0x98 ) + Chr( 0x45 ) + ;
          Chr( 0xBB ) + Chr( 0xEF ) + Chr( 0x98 ) + Chr( 0xFE ) + ;
          Chr( 0x4D ) + Chr( 0x1A ) + Chr( 0x3A ) + Chr( 0xD4 )
   RoGetActivationFactory( pString, cIID, @pToastFactory )
   WindowsDeleteString( pString )

   // ... (rest of the code remains the same)
   
   WinRTMethod( pNotifier, "Show", pNotification )

   RoUninitialize()

return nil
For a minimal Toast with just one line of text and no image:
Toast( "Short Message", "", "" )
Toast( "Short Message", "", "", "c:\path\to\small_image.png" )]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277506#p277506 Sat, 08 Feb 2025 03:45:00 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277506#p277506
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Ajustar tamaño caja toast :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277572#p277572
Intentamos compilar la función, pero salen los siguiente errores:

Code: Select all | Expand

┌────────────────────────────────────────────────────────────────────────────┐
?FiveWin for xHarbour 24.09 64bits - Sep. 2024   Harbour development power  │▄
?(c) FiveTech 1993-2024 for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7/8/10 │█
└────────────────────────────────────────────────────────────────────────────┘?
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀?
Compiling...
C:\xHar2407_64\bin\harbour leandro16 /n /d__64__ /iC:\fwh64_2409\include;C:\xHar2407_64\include /w /p
xHarbour 1.3.1 Intl. (SimpLex) (Build 20240624)
Copyright 1999-2024, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'leandro16.prg' and generating preprocessed output to 'leandro16.ppo'...
Generating C source output to 'leandro16.c'...
Done.
Lines 58, Functions/Procedures 1, pCodes 159
Embarcadero C++ 7.70 for Win64 Copyright (c) 2012-2023 Embarcadero Technologies, Inc.
leandro16.c:
Turbo Incremental Link64 6.98 Copyright (c) 1997-2023 Embarcadero Technologies, Inc.
Error: Unresolved external 'HB_FUN_ROACTIVATEINSTANCE' referenced from C:\FWH64_2409\SAMPLES\LEANDRO16.OBJ
* Linking errors *

c:\fwh64_2409\samples>

Code: Select all | Expand

#include "Fivewin.ch"

function Toast( cFirstLine, cSecondLine, cThirdLine, cImageFileName )

   local pString, cIID, pToastFactory
   local pXml, pNodeList
   local pNotification, pNotificationFactory, pNotifier
   local cXml

   DEFAULT cFirstLine := "FiveWin notification"
   DEFAULT cSecondLine := " " 
   DEFAULT cThirdLine := " "
   DEFAULT cImageFileName := "c:\fwh\bitmaps\pngs\fivetech.png"

   RoInitialize( 1 )

   // Create XML document instance
   pString = WinRTString( "Windows.Data.Xml.Dom.XmlDocument" )
   RoActivateInstance( pString, @pXml )
   WindowsDeleteString( pString )

   // Define compact XML (no image or inline image)
   cXml := ;
   '<toast>'+;
      '<visual>'+;
         '<binding template="ToastGeneric">'+;
            iif( Empty( cImageFileName ), '', '<image src="' + cImageFileName + '"/>' ) + ;
            '<text>' + cFirstLine + '</text>'+;
            '<text>' + cSecondLine + '</text>'+;
            '<text>' + cThirdLine + '</text>'+;
         '</binding>'+;
      '</visual>'+;
   '</toast>'

   // Load the XML into the document
   pString = WinRTString( cXml )
   WinRTMethod( pXml, "LoadXml", pString )
   WindowsDeleteString( pString )

   // Proceed with creating the notification (same as before)
   pString = WinRTString( "Windows.UI.Notifications.ToastNotificationManager" )
   cIID = Chr( 0x3F ) + Chr( 0x10 ) + Chr( 0xAC ) + Chr( 0x50 ) + ;
          Chr( 0x35 ) + Chr( 0xD2 ) + Chr( 0x98 ) + Chr( 0x45 ) + ;
          Chr( 0xBB ) + Chr( 0xEF ) + Chr( 0x98 ) + Chr( 0xFE ) + ;
          Chr( 0x4D ) + Chr( 0x1A ) + Chr( 0x3A ) + Chr( 0xD4 )
   RoGetActivationFactory( pString, cIID, @pToastFactory )
   WindowsDeleteString( pString )

   // ... (rest of the code remains the same)
   
   WinRTMethod( pNotifier, "Show", pNotification )

   RoUninitialize()

return nil
]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277572#p277572 Mon, 10 Feb 2025 14:17:00 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277572#p277572
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Ajustar tamaño caja toast :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277580#p277580 https://learn.microsoft.com/en-us/windo ... teinstance

Prueba con este código:

Code: Select all | Expand

DLL FUNCTION RoActivateInstance( pRuntimeClassName AS LPSTR, @pInstance AS PTR ) AS LONG PASCAL LIB "combase.dll"

FUNCTION RoActivateInstanceWrapper( cRuntimeClassName )
   LOCAL nResult, pHString, pInstance
   LOCAL nLength := Len( cRuntimeClassName )
   LOCAL IID_IInspectable := "{AF86E2E0-B12D-4C6A-9C5A-D7AA65101E90}" // IID de IInspectable

   // Inicializar el entorno de Windows Runtime
   nResult := RoInitialize( 0 ) // RO_INIT_SINGLETHREADED
   IF nResult != 0
      RETURN nResult
   ENDIF

   // Crear un HSTRING a partir de la cadena Unicode
   nResult := WindowsCreateString( cRuntimeClassName, nLength, @pHString )
   IF nResult != 0
      RoUninitialize()
      RETURN nResult
   ENDIF

   // Llamar a RoActivateInstance directamente
   nResult := RoActivateInstance( pHString, @pInstance )
   IF nResult != 0
      WindowsDeleteString( pHString )
      RoUninitialize()
      RETURN nResult
   ENDIF

   // Liberar HSTRING
   WindowsDeleteString( pHString )

   // Desinicializar Windows Runtime
   // RoUninitialize()

   // Retornar la instancia obtenida
RETURN pInstance
]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277580#p277580 Tue, 11 Feb 2025 00:30:53 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277580#p277580
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Ajustar tamaño caja toast :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277593#p277593
Se compilo la aplicación sin problema, pero no ejecuta ninguna acción.

Code: Select all | Expand

┌────────────────────────────────────────────────────────────────────────────┐
?FiveWin for xHarbour 24.09 64bits - Sep. 2024   Harbour development power  │▄
?(c) FiveTech 1993-2024 for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7/8/10 │█
└────────────────────────────────────────────────────────────────────────────┘?
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀?
Compiling...
C:\xHar2407_64\bin\harbour leandro16 /n /d__64__ /iC:\fwh64_2409\include;C:\xHar2407_64\include /w /p
xHarbour 1.3.1 Intl. (SimpLex) (Build 20240624)
Copyright 1999-2024, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'leandro16.prg' and generating preprocessed output to 'leandro16.ppo'...
Generating C source output to 'leandro16.c'...
Done.
Lines 41, Functions/Procedures 2, pCodes 192
Embarcadero C++ 7.70 for Win64 Copyright (c) 2012-2023 Embarcadero Technologies, Inc.
leandro16.c:
Turbo Incremental Link64 6.98 Copyright (c) 1997-2023 Embarcadero Technologies, Inc.
* Application successfully built *

c:\fwh64_2409\samples>

Code: Select all | Expand

#include "Fivewin.ch"


DLL FUNCTION RoActivateInstance( pRuntimeClassName AS LPSTR, @pInstance AS PTR ) AS LONG PASCAL LIB "combase.dll"

FUNCTION RoActivateInstanceWrapper( cRuntimeClassName )
   LOCAL nResult, pHString, pInstance
   LOCAL nLength := Len( cRuntimeClassName )
   LOCAL IID_IInspectable := "{AF86E2E0-B12D-4C6A-9C5A-D7AA65101E90}" // IID de IInspectable

   // Inicializar el entorno de Windows Runtime
   nResult := RoInitialize( 0 ) // RO_INIT_SINGLETHREADED
   IF nResult != 0
      RETURN nResult
   ENDIF

   // Crear un HSTRING a partir de la cadena Unicode
   nResult := WindowsCreateString( cRuntimeClassName, nLength, @pHString )
   IF nResult != 0
      RoUninitialize()
      RETURN nResult
   ENDIF

   // Llamar a RoActivateInstance directamente
   nResult := RoActivateInstance( pHString, @pInstance )
   IF nResult != 0
      WindowsDeleteString( pHString )
      RoUninitialize()
      RETURN nResult
   ENDIF

   // Liberar HSTRING
   WindowsDeleteString( pHString )

   // Desinicializar Windows Runtime
   // RoUninitialize()

   // Retornar la instancia obtenida
RETURN pInstance
]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277593#p277593 Tue, 11 Feb 2025 11:48:34 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277593#p277593
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Ajustar tamaño caja toast :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277601#p277601
Estas usando la versión modificada que publicaste ?]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277601#p277601 Tue, 11 Feb 2025 15:17:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277601#p277601
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Ajustar tamaño caja toast :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277654#p277654
Antonio Linares wrote: Tue Feb 11, 2025 10:17 pm El Toast aparece con el mismo tamaño ?
Si el mismo tamaño.
Antonio Linares wrote: Tue Feb 11, 2025 10:17 pm Estas usando la versión modificada que publicaste ?
Si correcto.]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277654#p277654 Thu, 13 Feb 2025 12:58:00 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45391&p=277654#p277654
<![CDATA[FiveWin para Harbour/xHarbour :: Incompatibilidad tDolphin - IA - MySQl :: Author JoseAlvarez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45401&p=277575#p277575
He utilizado la inteligencia artificial para crear muchas consultas de mariadb y mysql. De verdad es fantástico y no tengo problemas en usarla. es una gran herramienta para todo, y si lo podemos aprovechar, ¿por qué no?

El caso es que me he encontrado que a veces las consultas funcionan perfecto en NAVICAT (podría ser cualquier otro administrador de BD) pero cuando lo llevo a FW+HARBOUR arroja error de sintaxis. Todo se copia tal cual y me aseguro de no tener errores de mi parte. pero nada, sigue arrojando el error 1064.

Revisando pude darme cuenta de algo, si se intenta ejecutar mas de una operación en una sola consulta no funciona. si las separo, funciona.
por ejemplo el DROP TEMPORARY TABLE IF EXIST seguido de otras instrucciones, no sirve. si lo ejecuto primero con un execute y luego el resto de la consulta en otra, si funciona.

el caso es que la IA me proporciona consultas donde usa cosas de mysql que ni sabia que existían, pero me dan lo que necesito. Solo que al llevarlo a harbour, no funciona. asi de simple.

uso tDolphin. ¿alguien tiene idea del porque de esto?

Se que la solución seria trabajarla por partes y/o quitarle esas cosas extras de mysql que usa la IA, pero quedaría en el mismo sitio de antes, y quiero aprovechar la ayuda.

aqui dejo el ejemplo de una consulta, solo para fines orientativos.

Code: Select all | Expand

-- Eliminar la tabla temporal si ya existe
DROP TEMPORARY TABLE IF EXISTS temp_resultados;

-- Crear una tabla temporal para almacenar los resultados intermedios
CREATE TEMPORARY TABLE temp_resultados AS
SELECT 
    C.codigo_cliente, 
    C.razon_social_cliente, 
    M.codigo_medio, 
    M.nombre_medio, 
    D.fecha_pago, 
    D.code_clien, 
    D.numero_recibo, 
    D.doc_pagado, 
    D.monto, 
    D.doc_deleted
FROM 
    c32demo_clientes   AS C,
    c32demo_mediospago AS M,
    c32demo_desglose   AS D 
WHERE 
    C.codigo_cliente = D.code_clien 
    AND M.codigo_medio = D.codigo_medio 
    AND D.fecha_pago BETWEEN '2025-02-06' AND '2025-02-09' 
    AND D.doc_deleted <> '.T.'
ORDER BY 
    D.fecha_pago, 
    D.codigo_medio, 
    D.numero_recibo, 
    D.doc_pagado;

-- Consulta final con subtotales después del grupo de fecha_pago
SELECT fecha_pago, nombre_medio, codigo_medio, numero_recibos, total_doc_pagado, total_monto FROM (
    -- Datos principales
    SELECT 
        fecha_pago,
        nombre_medio, 
        codigo_medio, 
        COUNT(numero_recibo) AS numero_recibos, 
        SUM(doc_pagado) AS total_doc_pagado, 
        SUM(monto) AS total_monto,
        0 AS orden
    FROM temp_resultados
    GROUP BY fecha_pago, codigo_medio, nombre_medio 

    UNION ALL

    -- Filas de subtotales (colocadas después)
    SELECT 
        fecha_pago,
        'SUBTOTAL' AS nombre_medio,
        NULL AS codigo_medio,
        NULL AS numero_recibos,
        NULL AS total_doc_pagado,
        SUM(monto) AS total_monto,
        1 AS orden
    FROM temp_resultados
    GROUP BY fecha_pago
) AS final_query
ORDER BY fecha_pago, orden, codigo_medio, nombre_medio;
]]>
no_email@example.com (JoseAlvarez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45401&p=277575#p277575 Mon, 10 Feb 2025 14:58:25 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45401&p=277575#p277575
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Incompatibilidad tDolphin - IA - MySQl :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45401&p=277603#p277603
Por lo que tengo entendido no todos los motores de bases de datos soportan la misma sintaxis SQL.

Al pedir una determinada sintaxis para una sentencia SQL especifícale el motor de base de datos a usar.]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45401&p=277603#p277603 Tue, 11 Feb 2025 15:22:00 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45401&p=277603#p277603
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Incompatibilidad tDolphin - IA - MySQl :: Reply by JoseAlvarez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45401&p=277605#p277605
Sí, siempre lo hago, le digo que trabajo en local con mariadb y en la nube con mysql. Siempre me dice "Ok, prepararé la consulta para que funcione en ambos"

Lo que si he comprobado por ejemplo es que tDolphin no acepta dos operaciones diferentes, un execute y un query en la misma consulta, por ejemplo un drop, create y select juntos, cosa que funciona perfecto en el generador de querys de navicat o cualquiera parecido.]]>
no_email@example.com (JoseAlvarez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45401&p=277605#p277605 Tue, 11 Feb 2025 17:02:04 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45401&p=277605#p277605
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Incompatibilidad tDolphin - IA - MySQl (Solucionado) :: Reply by JoseAlvarez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45401&p=277655#p277655
Cuando se desea hacer una consulta mysql a la IA basta con decirle "Hazla adaptada para el lenguaje HARBOUR"

y listo... así de simple.

Un abrazo.

Les dejo la explicación de la IA:
Harbour es un lenguaje de programación muy potente y versátil, pero tiene algunas limitaciones al ejecutar consultas complejas y comandos avanzados de MySQL. Aquí te menciono algunas de ellas:

Compatibilidad limitada con MySQL: Aunque Harbour puede conectarse a bases de datos MySQL, no soporta todas las funcionalidades avanzadas de MySQL, como ciertas funciones de agregación, subconsultas y operaciones complejas de JOIN.

Rendimiento: Al ejecutar consultas complejas, el rendimiento puede ser inferior en comparación con otros lenguajes y herramientas especializadas en bases de datos.

Documentación y soporte: La documentación y el soporte para el uso de MySQL con Harbour pueden ser limitados, lo que puede dificultar la resolución de problemas y la implementación de soluciones avanzadas.

Actualizaciones y mantenimiento: Harbour no se actualiza tan frecuentemente como otros lenguajes modernos, lo que puede resultar en una menor compatibilidad con las últimas versiones y características de MySQL.

A pesar de estas limitaciones, Harbour sigue siendo una herramienta valiosa para aplicaciones de bases de datos y negocios, especialmente para aquellos familiarizados con el lenguaje Clipper.
]]>
no_email@example.com (JoseAlvarez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45401&p=277655#p277655 Thu, 13 Feb 2025 13:39:00 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45401&p=277655#p277655
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Incompatibilidad tDolphin - IA - MySQl :: Reply by Vikthor]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45401&p=277660#p277660
¿ Cuál fue la diferencia significativa entre la primer consulta que generaba error y la segunda que se ejecutaba de forma correcta ?]]>
no_email@example.com (Vikthor) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45401&p=277660#p277660 Thu, 13 Feb 2025 16:06:06 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45401&p=277660#p277660
<![CDATA[FiveWin para Harbour/xHarbour :: Firmar archivo xml con certificado Argentina harbour o xharbour :: Author devwin2010]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45404&p=277596#p277596
Estoy tratando de fimar un archivo xml con harbour_win32_bcc_2020_10_19 incluyo librerias hbssl y libeay32 , y me faltan las siguientes funciones unresolved external

CMS_CREATE
CMS_CERTFILE
CMS_SETKEYFILE
CMS_SIGN
CMS_GETSIGNEDCMS
CMS_REALEASE

alguien tiene la libreria armada o como hacerlo sin que arroje estos errores desde ya muchas gracias
Fabian]]>
no_email@example.com (devwin2010) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45404&p=277596#p277596 Tue, 11 Feb 2025 13:41:36 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45404&p=277596#p277596
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Firmar archivo xml con certificado Argentina harbour o xharbour :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45404&p=277677#p277677

Code: Select all | Expand

libcrypto-1_1-x64.dll
libcrypto-1_1.dll
libeay32.dll
libssl-1_1-x64.dll
libssl-1_1.dll
ssleay32.dll
ò sus .libs?

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45404&p=277677#p277677 Fri, 14 Feb 2025 09:12:31 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45404&p=277677#p277677
<![CDATA[FiveWin para Harbour/xHarbour :: Ayuda para compiar :: Author servicomver]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45419&p=277679#p277679
Este es el Buildh.bat
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ FiveWin for Harbour 24.09 - Sep. 2024 Harbour development power ³Ü
ECHO ³ (c) FiveTech 1993-2024 for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7/8/10 ³Û
ECHO ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
ECHO ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

if A%1 == A GOTO :SINTAX
if NOT EXIST %1.prg GOTO :NOEXIST

if "%FWDIR%" == "" set FWDIR=C:\fwh
if "%HBDIR%" == "" set HBDIR=c:\harbour
rem if "%2" == "/b" set GT=gtwin
rem if not "%2" == "/b" set GT=gtgui
set GT=gtgui

ECHO Compiling...

set hdir=%HBDIR%
set hdirl=%hdir%\lib\win\bcc32c
set fwh=%FWDIR%
if exist c:\bcc77 set bcdir=c:\bcc77
if exist c:\bcc64 set bcdir=c:\bcc64

%hdir%\bin\win\bcc32c\harbour %1 /n /i%fwh%\include;%hdir%\include /w /p %2 %3 > comp.log 2> warnings.log


if errorlevel 1 goto COMPILEERRORS
@type comp.log
@type warnings.log

echo -O2 -e%1.exe -I%hdir%\include -I%bcdir%\include -I%fwh%\include %1.c > b32.bc
%bcdir%\bin\bcc32 -M -c @b32.bc
:ENDCOMPILE

IF EXIST %1.rc %bcdir%\bin\bcc32.exe -r -I%bcdir%\include -I%bcdir%\include\windows\sdk %1
rem IF EXIST %1.rc %bcdir%\bin\cgrc.exe -r -m -I%bcdir%\include -I%bcdir%\include\windows\sdk %1
rem IF EXIST %1.rc %vcdir%\bin\rc -r -d__FLAT__ %1

echo -L%bcdir%\lib;%bcdir%\lib\psdk + > b32.bc
echo %bcdir%\lib\c0w32.obj + >> b32.bc
echo %1.obj, + >> b32.bc
echo %1.exe, + >> b32.bc
echo %1.map, + >> b32.bc
echo %fwh%\lib\FiveH.lib %fwh%\lib\FiveHC.lib %fwh%\lib\libmysql.lib + >> b32.bc
rem echo %fwh%\lib\drxlsx32_bcc.lib + >> b32.bc
rem echo %fwh%\lib\xlsxlibhbbcc.lib + >> b32.bc
echo %fwh%\lib\hbpgsql.lib %fwh%\lib\libpq.lib + >> b32.bc
echo %fwh%\lib\drxlsx32_bcc.lib + >> b32.bc
echo %hdirl%\hbhpdf.lib + >> b32.bc
echo %hdirl%\libhpdf.lib + >> b32.bc
echo %hdirl%\png.lib + >> b32.bc
echo %hdirl%\hbwin.lib + >> b32.bc
echo %hdirl%\gtgui.lib + >> b32.bc
echo %hdirl%\hbrtl.lib + >> b32.bc
echo %hdirl%\hbvm.lib + >> b32.bc
echo %hdirl%\hblang.lib + >> b32.bc
echo %hdirl%\hbmacro.lib + >> b32.bc
echo %hdirl%\hbrdd.lib + >> b32.bc
echo %hdirl%\rddntx.lib + >> b32.bc
echo %hdirl%\rddcdx.lib + >> b32.bc
echo %hdirl%\rddfpt.lib + >> b32.bc
echo %hdirl%\hbsix.lib + >> b32.bc
echo %hdirl%\hbdebug.lib + >> b32.bc
echo %hdirl%\hbcommon.lib + >> b32.bc
echo %hdirl%\hbpp.lib + >> b32.bc
echo %hdirl%\hbcpage.lib + >> b32.bc
echo %hdirl%\hbcplr.lib + >> b32.bc
echo %hdirl%\hbct.lib + >> b32.bc
echo %hdirl%\hbpcre.lib + >> b32.bc
echo %hdirl%\xhb.lib + >> b32.bc
echo %hdirl%\hbziparc.lib + >> b32.bc
echo %hdirl%\hbmzip.lib + >> b32.bc
echo %hdirl%\hbzlib.lib + >> b32.bc
echo %hdirl%\minizip.lib + >> b32.bc
rem echo %hdirl%\png.lib + >> b32.bc
echo %hdirl%\hbusrrdd.lib + >> b32.bc
echo %hdirl%\hbtip.lib + >> b32.bc
echo %hdirl%\hbzebra.lib + >> b32.bc
echo %hdirl%\hbcurl.lib + >> b32.bc
echo %hdirl%\libcurl.lib + >> b32.bc
echo %hdirl%\hbtip.lib + >> b32.bc

rem Uncomment these two lines to use Advantage RDD
rem echo %hdirl%\rddads.lib + >> b32.bc
rem echo %hdirl%\Ace32.lib + >> b32.bc

echo %fwh%\lib\dolphin.lib + >> b32.bc
rem echo %fwh%\lib\libmysql.lib + >> b32.bc

echo %bcdir%\lib\cw32.lib + >> b32.bc
echo %bcdir%\lib\psdk\uuid.lib + >> b32.bc
echo %bcdir%\lib\import32.lib + >> b32.bc
echo %bcdir%\lib\psdk\ws2_32.lib + >> b32.bc
echo %bcdir%\lib\psdk\odbc32.lib + >> b32.bc
echo %bcdir%\lib\psdk\nddeapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\iphlpapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\msimg32.lib + >> b32.bc
echo %bcdir%\lib\psdk\psapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\rasapi32.lib + >> b32.bc
echo %bcdir%\lib\psdk\gdiplus.lib + >> b32.bc
echo %bcdir%\lib\psdk\shell32.lib + >> b32.bc
echo %bcdir%\lib\psdk\uxtheme.lib , >> b32.bc

IF EXIST %1.res echo %1.res >> b32.bc
if %GT% == gtwin %bcdir%\bin\ilink32 -Gn -Tpe -s @b32.bc
IF ERRORLEVEL 1 GOTO LINKERROR
if %GT% == gtgui %bcdir%\bin\ilink32 -Gn -aa -Tpe -s @b32.bc
IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built *
rem signtool.exe sign /fd sha256 %1.exe
%1
GOTO EXIT
ECHO

rem delete temporary files
@del %1.c

:COMPILEERRORS
@type comp.log
@type warnings.log
ECHO * Compile errors *
GOTO EXIT

:LINKERROR
ECHO * Linking errors *
GOTO EXIT

:SINTAX
ECHO SYNTAX: Build [Program] {-- No especifiques la extensi?n PRG
ECHO {-- Don't specify .PRG extension
GOTO EXIT

:NOEXIST
ECHO The specified PRG %1 does not exist

:EXIT

y este es el error
Error E2194: Could not find file 'tutor01.cpp'

Uso la última versión de FIveWin.

Gracias por su ayuda, Saludos,]]>
no_email@example.com (servicomver) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45419&p=277679#p277679 Fri, 14 Feb 2025 12:09:18 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45419&p=277679#p277679
<![CDATA[FiveWin para Harbour/xHarbour :: xBrowse con Tree se comporta erronemente. :: Author Joel Andujo]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45420&p=277682#p277682 por tercera vez, se pierde el item principal y aparece un fondo negro como si intentara mostrar una imagen.

el código:

Code: Select all | Expand

TREE oTree; lPVez:=.t.
         do while !oRs:oRs:Eof()
            cNat   :=oRs:coCtaNat
            nSalIni:=oRs:SalIni
            nCargo :=oRs:Cargo
            nAbono :=oRs:Abono
            nSalAct:=nSalIni+if(cNat=='D', (nCargo-nAbono), (nAbono-nCargo))

            // Ignoro cuentas sin saldos
            if empty(nCargo) .and. empty(nAbono) .and. empty(nSalAct)
               oRs:oRs:MoveNext(); loop
            endif
             //                                                   1              2              3              4        5          6          7        8
            // _TreeItem(strFormat('Cta{1}', oRs:cosCtaSub)):Cargo:={oRs:cosCtaSsb, oRs:cosCtaSss, oRs:cosCosNum, nSalIni, oRs:Cargo, oRs:Abono, nSalAct, oRs:x0Cta2Nom(_TRIM)}
            TREEITEM strFormat('Cta{1}', oRs:cosCtaSub) CARGO {oRs:cosCtaSsb, oRs:cosCtaSss, oRs:cosCosNum, nSalIni, oRs:Cargo, oRs:Abono, nSalAct, oRs:x0Cta2Nom(_TRIM)}
            nSub:=oRs:cosCtaSub

            oRs:oRs:MoveNext()
            lTreeSub:=.f.; if (oRs:cosCtaSub == nSub); TREE; lTreeSub:=.t.; endif
            do while (oRs:cosCtaSub == nSub) .and. !oRs:oRs:Eof()
               TREEITEM strFormat('Cta{1}', oRs:cosCtaSsb) CARGO {oRs:cosCtaSsb, oRs:cosCtaSss, oRs:cosCosNum, nSalIni, oRs:Cargo, oRs:Abono, nSalAct, oRs:x0Cta3Nom(_TRIM)}
               nSsb:=oRs:cosCtaSsb

               oRs:oRs:MoveNext()
               lTreeSsb:=.f.; if (oRs:cosCtaSsb == nSsb); TREE; lTreeSsb:=.t.; endif
               do while (oRs:cosCtaSsb == nSsb) .and. !oRs:oRs:Eof()
                  TREEITEM strFormat('Cta{1}', oRs:cosCtaSss) CARGO {oRs:cosCtaSsb, oRs:cosCtaSss, oRs:cosCosNum, nSalIni, oRs:Cargo, oRs:Abono, nSalAct, oRs:x0Cta4Nom(_TRIM)}
                  oRs:oRs:MoveNext()
               enddo
               if lTreeSsb
                  ENDTREE
               endif
            enddo
            if lTreeSub
               ENDTREE
            endif

         enddo
         ENDTREE
       ENDTREE
       // Si cargo el Tree desde un xbrowse de un recurs, pasa lo mismo
       xbrowse(oTree)
Les muestro el resultado:

Image

FWxH 24.10 BCC 7.70 con FWxH 21.04 y BCC 7.0 pasa lo mismo

De antemano gracias
Joel Andujo]]>
no_email@example.com (Joel Andujo) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45420&p=277682#p277682 Fri, 14 Feb 2025 12:34:50 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45420&p=277682#p277682
<![CDATA[FiveWin para Harbour/xHarbour :: Problemas con SkinButtons() FWH24.07 :: Author sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45422&p=277690#p277690 SkinButtons() y COMBOBOX se odian :?
usando la funcion SkinButtons() desaparecen los botones
solo se muestran cuando pasamos el raton por encima

Image
Image

les comparto un ejemplo para reproducir la cucaracha,
compilado con FWH24.07/HARBOUR

Code: Select all | Expand

#include <fivewin.ch>

//15-02-2025
//testcbx.prg
// EJEMPLO QUE REPRODUCE UN BUG FWH24.07+HARBOUR
// COMPILAR EN SAMPLES CON: BUILDH testcbx

FUNCTION Main()
   LOCAL cUser := space(10)
   LOCAL cName := space(50)
   LOCAL cEmpresa := "SysCtrl"
   LOCAL oDlg,oGet1,oGet2, oCbx, oBtn1, oBtn2
   LOCAL oBrush
   LOCAL lVal := .f.
   LOCAL oFont
   DEFINE BRUSH oBrush COLOR nRGB( 255, 255, 255 )
   DEFINE FONT oFont NAME "Tahoma" SIZE 0, -12  BOLD
   DEFINE DIALOG oDlg  SIZE 610, 330 brush oBrush
   oDlg:lTransparent := .t.
   oDlg:cTitle := "FiveWin Harbour 24.07"

   @ 10, 10 SAY "* Code user: " OF oDlg pixel
   @ 10, 90 GET oGet1 VAR cUser OF oDlg SIZE 60, 12 PICTURE "@!k" PIXEL

   @ 25, 10 SAY "* Name user: " OF oDlg pixel
   @ 25, 90 GET oGet2 VAR cName OF oDlg SIZE 60, 12 PICTURE "@!k" PIXEL

   @ 60, 10 SAY "* SELECCIONE UNA EMBRESA :" OF oDlg ;
      SIZE 100, 12 PIXEL FONT oFont COLOR CLR_BLUE
   @ 60, 120 COMBOBOX oCbx VAR cEmpresa SIZE 180,150 PIXEL OF oDlg UPDATE ;
      ITEMS {"Fivetech", "SysCtrl", "Otro"} ;
      COLOR "W+/BG" ;
      ON CHANGE MsgBeep() ;
      MESSAGE "Selecciona una empresa"

   @ 130, 70 BUTTON oBtn1 PROMPT "Aceptar"  SIZE 40, 12 OF oDlg ;
       ACTION ( lVal := .t. , oDlg:end() ) PIXEL

   @ 130, 120 BUTTON oBtn2 PROMPT "Cancelar" SIZE 40, 12 OF oDlg ;
       ACTION ( lVal := .f. , oDlg:end() ) CANCEL PIXEL

   oDlg:lhelpicon := .F.

   ACTIVATE DIALOG oDlg CENTERED
RETURN (.T.)

INIT PROCEDURE Setup()
   SkinButtons()
RETURN NIL

]]>
no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45422&p=277690#p277690 Sat, 15 Feb 2025 10:49:03 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45422&p=277690#p277690
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Problemas con SkinButtons() FWH24.07 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45422&p=277691#p277691
Aqui funciona bien, te envío las librerias actualizadas :)

Image]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45422&p=277691#p277691 Sat, 15 Feb 2025 11:05:11 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45422&p=277691#p277691
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Problemas con SkinButtons() FWH24.07 :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45422&p=277692#p277692 si es tan amable a mi correo,
le mando mensajito por WhatsApp
gracias !!!]]>
no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45422&p=277692#p277692 Sat, 15 Feb 2025 11:12:15 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45422&p=277692#p277692
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Problemas con SkinButtons() FWH24.07 (RESUELTO) :: Reply by sysctrl2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45422&p=277693#p277693 con la nuevas lib ya funciona
Image]]>
no_email@example.com (sysctrl2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45422&p=277693#p277693 Sat, 15 Feb 2025 12:54:14 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45422&p=277693#p277693
<![CDATA[FiveWin para Harbour/xHarbour :: Ayuda tPrinter (Estoy viejoooo) :: Author D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277705#p277705 Tratando de usar la clase tPrinter.
Cuando hago el PREVIEW y le doy imprimir, me aparece el menú de impresión con los radiobuttons incompletos y además se sale de
la aplicación.
Hago un ENDPAGE Y UN PAGE para que muestre el menú de impresión

dejo imágen y codigo.
https://ibb.co/5X6VJcKL

Gracias.

Code: Select all | Expand

FUNCTION PRNSLOT()
    LOCAL  slnro,slnombre,slvalor,slbanco, slcam1,slcam2,slcam3,slmoneda,slcam4
  
    basesl := TData():New(,ruta+"SLOTS" )
    If basesl:Use() 
        basesl:SetOrder("NMAQ")
        basesl:GoTop()
    else
        MsgInfo('Error de apertura de archivo', 'Informe')
        return(.f.) 
    endif
     titulolistado := "Listado de Slots"
    CursorWait()
   
    
    PRINT oPrn NAME "Lista de Slots" PREVIEW MODAL 
        
        oPrn:SetPage(1)
        oPrn:SetPortrait()
    
    
        DEFINE FONT oFont11 NAME "TIMES NEW ROMAN" SIZE 0,-14 BOLD OF oPrn
        DEFINE FONT oFont12 NAME "HELVETICA" SIZE 0,-10 OF oPrn
        DEFINE FONT oFont13 NAME "HELVETICA" SIZE 0,-16 BOLD ITALIC  OF oPrn
        DEFINE FONT oFont14 NAME "Segoe UI" SIZE 0,-10    OF oPrn
        DEFINE FONT oFont15 NAME "TAHOMA" SIZE 0,-8 OF oPrn
        DEFINE FONT oFont16 NAME "CAMBRIA" SIZE 0,-10 BOLD ITALIC  OF oPrn
        DEFINE BRUSH oBrush COLOR CLR_WHITE 
        DEFINE PEN oPen WIDTH 1 COLOR CLR_BLACK
        
     
        aDesde := oPrn:Cmtr2Pix(0.5,2.5)
        aAncho := oPrn:Cmtr2Pix(3,2.5)
    
           
        cmt := 1
        PAGE 
              
        oPrn:RoundBox(2,8,3,14,0.3,0.3,oPen,CLR_WHITE,{"Qué hago mal ?", {oFont11 }, CLR_BLACK},"CM")

        cmt+=0.7 
        basesl:Gotop()   
    
        do while !basesl:Eof()
          
            slnro:=basesl:nslot
            slnombre:=basesl:snom
            slbanco:=basesl:cbanco
            slcam1:=basesl:cubre1
            slcam2:=basesl:cubre2
            slcam3:=basesl:cubre3
            slmoneda:= if(basesl:moneda="D",HBA("Dólares"), "Pesos")
          
            slvalor:= basesl:valor
            slcam4:= xTrim(slcam1)+" - "+xTrim(slcam2)+" - "+xTrim(slcam3)
            oPrn:CmSay( cmt,  3.2, slnro, oFont15,2, CLR_BLACK,,1)
                      
            cmt+=0.5
            SysRefresh()
          
            if cmt >=23
              // PieSlotPagina()
              //OtraSlotPagina()
               basesl:Skip()
            ELSE
               basesl:Skip()
            ENDIF
        ENDDO
      
   
    ENDPAGE

    PAGE
    ENDPAGE  

    ENDPRINT
    
    oFont11:END()
    oFont12:END()
    oFont13:END()
    oFont14:END()
    oFont15:END()
    oFont16:END()
    oBrush:End()
    oPen:End()    
    SysRefresh()
    
      
    basesl:Close()

 return(nil)
]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277705#p277705 Sun, 16 Feb 2025 14:40:42 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277705#p277705
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Ayuda tPrinter (Estoy viejoooo) :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277707#p277707
Se genera un fuchero error.log ?

De ser así, por favor cópialo aqui, gracias]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277707#p277707 Sun, 16 Feb 2025 23:02:33 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277707#p277707
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Ayuda tPrinter (Estoy viejoooo) :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277712#p277712
Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277712#p277712 Mon, 17 Feb 2025 05:39:09 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277712#p277712
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Ayuda tPrinter (Estoy viejoooo) :: Reply by D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277713#p277713 Aqui está

Code: Select all | Expand

Application Internal Error - C:\Fuentes\MasterForm\Masterform.Exe
Terminated at: 2025-02-17 10:23:28
Error irrecuperable 6005: Exception error:

    Exception Code:C0000005 ACCESS_VIOLATION
    Exception Address:6DD586A6
    EAX:75736956  EBX:00CFCF54  ECX:00000084  EDX:00000000
    ESI:00380032  EDI:00000000  EBP:00CFCE20
    CS:EIP:0023:6DD586A6  SS:ESP:002B:00CFCD90
    DS:002B  ES:002B  FS:0053  GS:002B
    Flags:00010293
    Exception Parameters: 00000000 75736962
    CS:EIP: 8A 40 0C 24 0F 3C 07 0F 85 89 07 00 00 B8 FF FF
    SS:ESP: 6DD58620 00000084 000F0D48 01B50356 00000000 00000002 00380032 003CF708 00CFCEE0 00101B98 00000000 00000000 00000004 00000003 0000013D 00000493

    C stack:
    EIP:     EBP:       Frame: OldEBP, RetAddr, Params...
    6DD586A6 00CFCE20   00CFCE4C 77277943 000F0D48 00000084 00000000 01B50356 00000084 DCBAABCD 00CFCF54 6DD58620
    77277943 00CFCE4C   00CFCF48 7726601D 6DD58620 000F0D48 00000084 00000000 01B50356 CD19CD34 6DD58620 000F0D48
    7726601D 00CFCF48   00CFCF94 772A1383 FFFF0A23 00000084 772A1383 6DD58620 00000000 00000084 00000000 01B50356
    772A1383 00CFCF94   00CFCFAC 772A1E9B 00000084 00000000 01B50356 00000001
    772A1E9B 00CFCFAC   00CFCFD0 00027237 FFFF0A23 000F0D48 00000084 00000000 01B50356 50000007 000EAE43
    00027237 00CFCFD0   00CFCFFC 77277943 000F0D48 00000084 00000000 01B50356 00000084 DCBAABCD 00CFD104 000271E0
    77277943 00CFCFFC   00CFD0F8 7726601D 000271E0 000F0D48 00000084 00000000 01B50356 CD19D284 000271E0 000F0D48
    7726601D 00CFD0F8   00CFD144 772A1383 77265D09 00000084 772A1383 000271E0 00000000 00000084 00000000 01B50356
    772A1383 00CFD144   00CFD15C 772A1E9B 00000084 00000000 01B50356 00000001
    772A1E9B 00CFD15C   00CFD17C 0004E299 000271E0 000F0D48 00000084 00000000 01B50356 000271E0
    0004E299 00CFD17C   00CFD198 0008DE55 000F0D48 00000084 00000000 01B50356 0000003F
    0008DE55 00CFD198   00CFD1C4 77277943 000F0D48 00000084 00000000 01B50356 00000084 DCBAABCD 00CFD2C8 0008DE30
    77277943 00CFD1C4   00CFD2C0 7726601D 0008DE30 000F0D48 00000084 00000000 01B50356 CD19D0BC 00003308 00000000
    7726601D 00CFD2C0   00CFD32C 77265AC0 00000084 77265AC0 0008DE30 00000000 00000084 00000000 01B50356 00AF3000
    77265AC0 00CFD32C   00CFD368 77272349 01995C90 00000000 00000084 00000000 01B50356 0008DE30 00CFD458 00370CEC
    77272349 00CFD368   00CFD3F0 77E5BA96 00CFD384 00000020 00CFE1B0 77E5B9E0 00CFD3A4 01995C90 00000000 00000084
    77E5BA96 00CFD3F0   00CFD42C 77271331 00000000 00000000 00000001 00000000 00000000 00370CEC 00000000 00120D8A
    77271331 00CFD42C   00CFD488 772AD26C 00CFD458 00000000 00000000 00000000 00000001 00000001 00370CEC 00000000
    772AD26C 00CFD488   00CFD4BC 772AD7B1 00000000 00000001 003CB028 00000000 001DA5F8 02F10004 07E904B0 00020000
    772AD7B1 00CFD4BC   00CFD4D4 772A4D17 00370CEC 000A1390 00000000 00000003


Modules:
00020000 005B0000 C:\Fuentes\MasterForm\Masterform.Exe
77DE0000 001BA000 C:\WINDOWS\SYSTEM32\ntdll.dll
76FC0000 000F0000 C:\WINDOWS\System32\KERNEL32.DLL
76140000 002A9000 C:\WINDOWS\System32\KERNELBASE.dll
77240000 001C5000 C:\WINDOWS\System32\USER32.dll
76BA0000 0001A000 C:\WINDOWS\System32\win32u.dll
77DA0000 00022000 C:\WINDOWS\System32\GDI32.dll
770C0000 000EB000 C:\WINDOWS\System32\gdi32full.dll
766F0000 00085000 C:\WINDOWS\System32\msvcp_win.dll
75E60000 00110000 C:\WINDOWS\System32\ucrtbase.dll
768C0000 000B4000 C:\WINDOWS\System32\COMDLG32.dll
76460000 0027F000 C:\WINDOWS\System32\combase.dll
77480000 000B9000 C:\WINDOWS\System32\RPCRT4.dll
6DCD0000 00227000 C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.26100.3037_none_85b65d03f7afec7e\COMCTL32.dll
77660000 000C8000 C:\WINDOWS\System32\shcore.dll
6CBC0000 00090000 C:\WINDOWS\SYSTEM32\WINSPOOL.DRV
76780000 000C7000 C:\WINDOWS\System32\msvcrt.dll
76E40000 0004B000 C:\WINDOWS\System32\SHLWAPI.dll
77790000 005EB000 C:\WINDOWS\System32\SHELL32.dll
76E90000 0007F000 C:\WINDOWS\System32\ADVAPI32.dll
721B0000 00049000 C:\WINDOWS\SYSTEM32\cfgmgr32.dll
775B0000 00083000 C:\WINDOWS\System32\sechost.dll
76CE0000 00151000 C:\WINDOWS\System32\ole32.dll
75F80000 0009E000 C:\WINDOWS\System32\OLEAUT32.dll
77540000 00060000 C:\WINDOWS\System32\WS2_32.dll
6ECD0000 00019000 C:\WINDOWS\SYSTEM32\MPR.dll
752F0000 00008000 C:\WINDOWS\SYSTEM32\VERSION.dll
75730000 00006000 C:\WINDOWS\SYSTEM32\MSIMG32.dll
6CA10000 0016C000 C:\WINDOWS\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.26100.3037_none_b6a14fe95242664c\gdiplus.dll
5BE40000 0002E000 C:\WINDOWS\SYSTEM32\oledlg.dll
6EB70000 00033000 C:\WINDOWS\SYSTEM32\WINMM.dll
67A10000 00008000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
76A00000 00025000 C:\WINDOWS\System32\IMM32.DLL
74790000 00082000 C:\WINDOWS\system32\uxtheme.dll
76BC0000 00117000 C:\WINDOWS\System32\MSCTF.dll
6AF90000 0009F000 C:\WINDOWS\SYSTEM32\TextShaping.dll
75360000 00014000 C:\WINDOWS\SYSTEM32\kernel.appcore.dll
77410000 00069000 C:\WINDOWS\System32\bcryptPrimitives.dll
68B30000 00101000 C:\WINDOWS\SYSTEM32\textinputframework.dll
6A940000 000DC000 C:\WINDOWS\SYSTEM32\CoreMessaging.dll
5C740000 00292000 C:\WINDOWS\SYSTEM32\CoreUIComponents.dll
720B0000 000F9000 C:\WINDOWS\SYSTEM32\wintypes.dll
72290000 0000B000 C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL
10000000 00341000 C:\WINDOWS\SYSTEM32\freeimage.dll
73BC0000 006B7000 C:\WINDOWS\SYSTEM32\Windows.Storage.dll
6B040000 001DE000 C:\WINDOWS\SYSTEM32\WindowsCodecs.dll
771B0000 00081000 C:\WINDOWS\System32\clbcatq.dll
6F1B0000 00025000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
77640000 00007000 C:\WINDOWS\System32\NSI.dll
6F050000 00018000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
6F030000 0001D000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
6F0D0000 000DB000 C:\WINDOWS\SYSTEM32\DNSAPI.dll
5F000000 00011000 C:\WINDOWS\SYSTEM32\CTL3D32.DLL

Called from DIALOGBOXINDIRECT(0) in .\source\classes\dialog.prg
Called from TDIALOG:ACTIVATE(325) in .\source\classes\dialog.prg
Called from TPREVIEW:PRINTPAGE(1599) in .\source\classes\rpreview.prg
Called from (b)TPREVIEW_BUILDBUTTONBAR(367) in .\source\classes\rpreview.prg
Called from TBTNBMP:CLICK(816) in .\source\classes\btnbmp.prg
Called from TBTNBMP:LBUTTONUP(1100) in .\source\classes\btnbmp.prg
Called from TCONTROL:HANDLEEVENT(1867) in .\source\classes\control.prg
Called from TBTNBMP:HANDLEEVENT(2145) in .\source\classes\btnbmp.prg
Called from _FWH(3719) in .\source\classes\window.prg
Called from SYSREFRESH(0) in emple.prg
Called from STOPUNTIL(70) in .\source\function\msgrun.prg
Called from TPREVIEW:ACTIVATE(179) in .\source\classes\rpreview.prg
Called from RPREVIEW(1880) in .\source\classes\rpreview.prg
Called from (b)TPRINTER(327) in .\source\classes\printer.prg
Called from TPRINTER:PREVIEW(0) in .\source\classes\printer.prg
Called from PRINTEND(2067) in .\source\classes\printer.prg
Called from EMPLEIMPRE(936) in emple.prg
Called from (b)HACEBAREMPLE(342) in emple.prg
Called from TBTNBMP:CLICK(816) in .\source\classes\btnbmp.prg
Called from TBTNBMP:LBUTTONUP(1103) in .\source\classes\btnbmp.prg
Called from TCONTROL:HANDLEEVENT(1867) in .\source\classes\control.prg
Called from TBTNBMP:HANDLEEVENT(2145) in .\source\classes\btnbmp.prg
Called from _FWH(3719) in .\source\classes\window.prg
Called from WINRUN(0) in .\source\classes\window.prg
Called from TMDIFRAME:ACTIVATE(1137) in .\source\classes\window.prg
Called from MAIN(262) in masterform.prg
------------------------------------------------------------------------
]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277713#p277713 Mon, 17 Feb 2025 06:25:27 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277713#p277713
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Ayuda tPrinter (Estoy viejoooo) :: Reply by D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277714#p277714 Aqui está

Code: Select all | Expand

Application Internal Error - C:\Fuentes\MasterForm\Masterform.Exe
Terminated at: 2025-02-17 10:23:28
Error irrecuperable 6005: Exception error:

    Exception Code:C0000005 ACCESS_VIOLATION
    Exception Address:6DD586A6
    EAX:75736956  EBX:00CFCF54  ECX:00000084  EDX:00000000
    ESI:00380032  EDI:00000000  EBP:00CFCE20
    CS:EIP:0023:6DD586A6  SS:ESP:002B:00CFCD90
    DS:002B  ES:002B  FS:0053  GS:002B
    Flags:00010293
    Exception Parameters: 00000000 75736962
    CS:EIP: 8A 40 0C 24 0F 3C 07 0F 85 89 07 00 00 B8 FF FF
    SS:ESP: 6DD58620 00000084 000F0D48 01B50356 00000000 00000002 00380032 003CF708 00CFCEE0 00101B98 00000000 00000000 00000004 00000003 0000013D 00000493

    C stack:
    EIP:     EBP:       Frame: OldEBP, RetAddr, Params...
    6DD586A6 00CFCE20   00CFCE4C 77277943 000F0D48 00000084 00000000 01B50356 00000084 DCBAABCD 00CFCF54 6DD58620
    77277943 00CFCE4C   00CFCF48 7726601D 6DD58620 000F0D48 00000084 00000000 01B50356 CD19CD34 6DD58620 000F0D48
    7726601D 00CFCF48   00CFCF94 772A1383 FFFF0A23 00000084 772A1383 6DD58620 00000000 00000084 00000000 01B50356
    772A1383 00CFCF94   00CFCFAC 772A1E9B 00000084 00000000 01B50356 00000001
    772A1E9B 00CFCFAC   00CFCFD0 00027237 FFFF0A23 000F0D48 00000084 00000000 01B50356 50000007 000EAE43
    00027237 00CFCFD0   00CFCFFC 77277943 000F0D48 00000084 00000000 01B50356 00000084 DCBAABCD 00CFD104 000271E0
    77277943 00CFCFFC   00CFD0F8 7726601D 000271E0 000F0D48 00000084 00000000 01B50356 CD19D284 000271E0 000F0D48
    7726601D 00CFD0F8   00CFD144 772A1383 77265D09 00000084 772A1383 000271E0 00000000 00000084 00000000 01B50356
    772A1383 00CFD144   00CFD15C 772A1E9B 00000084 00000000 01B50356 00000001
    772A1E9B 00CFD15C   00CFD17C 0004E299 000271E0 000F0D48 00000084 00000000 01B50356 000271E0
    0004E299 00CFD17C   00CFD198 0008DE55 000F0D48 00000084 00000000 01B50356 0000003F
    0008DE55 00CFD198   00CFD1C4 77277943 000F0D48 00000084 00000000 01B50356 00000084 DCBAABCD 00CFD2C8 0008DE30
    77277943 00CFD1C4   00CFD2C0 7726601D 0008DE30 000F0D48 00000084 00000000 01B50356 CD19D0BC 00003308 00000000
    7726601D 00CFD2C0   00CFD32C 77265AC0 00000084 77265AC0 0008DE30 00000000 00000084 00000000 01B50356 00AF3000
    77265AC0 00CFD32C   00CFD368 77272349 01995C90 00000000 00000084 00000000 01B50356 0008DE30 00CFD458 00370CEC
    77272349 00CFD368   00CFD3F0 77E5BA96 00CFD384 00000020 00CFE1B0 77E5B9E0 00CFD3A4 01995C90 00000000 00000084
    77E5BA96 00CFD3F0   00CFD42C 77271331 00000000 00000000 00000001 00000000 00000000 00370CEC 00000000 00120D8A
    77271331 00CFD42C   00CFD488 772AD26C 00CFD458 00000000 00000000 00000000 00000001 00000001 00370CEC 00000000
    772AD26C 00CFD488   00CFD4BC 772AD7B1 00000000 00000001 003CB028 00000000 001DA5F8 02F10004 07E904B0 00020000
    772AD7B1 00CFD4BC   00CFD4D4 772A4D17 00370CEC 000A1390 00000000 00000003


Modules:
00020000 005B0000 C:\Fuentes\MasterForm\Masterform.Exe
77DE0000 001BA000 C:\WINDOWS\SYSTEM32\ntdll.dll
76FC0000 000F0000 C:\WINDOWS\System32\KERNEL32.DLL
76140000 002A9000 C:\WINDOWS\System32\KERNELBASE.dll
77240000 001C5000 C:\WINDOWS\System32\USER32.dll
76BA0000 0001A000 C:\WINDOWS\System32\win32u.dll
77DA0000 00022000 C:\WINDOWS\System32\GDI32.dll
770C0000 000EB000 C:\WINDOWS\System32\gdi32full.dll
766F0000 00085000 C:\WINDOWS\System32\msvcp_win.dll
75E60000 00110000 C:\WINDOWS\System32\ucrtbase.dll
768C0000 000B4000 C:\WINDOWS\System32\COMDLG32.dll
76460000 0027F000 C:\WINDOWS\System32\combase.dll
77480000 000B9000 C:\WINDOWS\System32\RPCRT4.dll
6DCD0000 00227000 C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.26100.3037_none_85b65d03f7afec7e\COMCTL32.dll
77660000 000C8000 C:\WINDOWS\System32\shcore.dll
6CBC0000 00090000 C:\WINDOWS\SYSTEM32\WINSPOOL.DRV
76780000 000C7000 C:\WINDOWS\System32\msvcrt.dll
76E40000 0004B000 C:\WINDOWS\System32\SHLWAPI.dll
77790000 005EB000 C:\WINDOWS\System32\SHELL32.dll
76E90000 0007F000 C:\WINDOWS\System32\ADVAPI32.dll
721B0000 00049000 C:\WINDOWS\SYSTEM32\cfgmgr32.dll
775B0000 00083000 C:\WINDOWS\System32\sechost.dll
76CE0000 00151000 C:\WINDOWS\System32\ole32.dll
75F80000 0009E000 C:\WINDOWS\System32\OLEAUT32.dll
77540000 00060000 C:\WINDOWS\System32\WS2_32.dll
6ECD0000 00019000 C:\WINDOWS\SYSTEM32\MPR.dll
752F0000 00008000 C:\WINDOWS\SYSTEM32\VERSION.dll
75730000 00006000 C:\WINDOWS\SYSTEM32\MSIMG32.dll
6CA10000 0016C000 C:\WINDOWS\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.26100.3037_none_b6a14fe95242664c\gdiplus.dll
5BE40000 0002E000 C:\WINDOWS\SYSTEM32\oledlg.dll
6EB70000 00033000 C:\WINDOWS\SYSTEM32\WINMM.dll
67A10000 00008000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
76A00000 00025000 C:\WINDOWS\System32\IMM32.DLL
74790000 00082000 C:\WINDOWS\system32\uxtheme.dll
76BC0000 00117000 C:\WINDOWS\System32\MSCTF.dll
6AF90000 0009F000 C:\WINDOWS\SYSTEM32\TextShaping.dll
75360000 00014000 C:\WINDOWS\SYSTEM32\kernel.appcore.dll
77410000 00069000 C:\WINDOWS\System32\bcryptPrimitives.dll
68B30000 00101000 C:\WINDOWS\SYSTEM32\textinputframework.dll
6A940000 000DC000 C:\WINDOWS\SYSTEM32\CoreMessaging.dll
5C740000 00292000 C:\WINDOWS\SYSTEM32\CoreUIComponents.dll
720B0000 000F9000 C:\WINDOWS\SYSTEM32\wintypes.dll
72290000 0000B000 C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL
10000000 00341000 C:\WINDOWS\SYSTEM32\freeimage.dll
73BC0000 006B7000 C:\WINDOWS\SYSTEM32\Windows.Storage.dll
6B040000 001DE000 C:\WINDOWS\SYSTEM32\WindowsCodecs.dll
771B0000 00081000 C:\WINDOWS\System32\clbcatq.dll
6F1B0000 00025000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
77640000 00007000 C:\WINDOWS\System32\NSI.dll
6F050000 00018000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
6F030000 0001D000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
6F0D0000 000DB000 C:\WINDOWS\SYSTEM32\DNSAPI.dll
5F000000 00011000 C:\WINDOWS\SYSTEM32\CTL3D32.DLL

Called from DIALOGBOXINDIRECT(0) in .\source\classes\dialog.prg
Called from TDIALOG:ACTIVATE(325) in .\source\classes\dialog.prg
Called from TPREVIEW:PRINTPAGE(1599) in .\source\classes\rpreview.prg
Called from (b)TPREVIEW_BUILDBUTTONBAR(367) in .\source\classes\rpreview.prg
Called from TBTNBMP:CLICK(816) in .\source\classes\btnbmp.prg
Called from TBTNBMP:LBUTTONUP(1100) in .\source\classes\btnbmp.prg
Called from TCONTROL:HANDLEEVENT(1867) in .\source\classes\control.prg
Called from TBTNBMP:HANDLEEVENT(2145) in .\source\classes\btnbmp.prg
Called from _FWH(3719) in .\source\classes\window.prg
Called from SYSREFRESH(0) in emple.prg
Called from STOPUNTIL(70) in .\source\function\msgrun.prg
Called from TPREVIEW:ACTIVATE(179) in .\source\classes\rpreview.prg
Called from RPREVIEW(1880) in .\source\classes\rpreview.prg
Called from (b)TPRINTER(327) in .\source\classes\printer.prg
Called from TPRINTER:PREVIEW(0) in .\source\classes\printer.prg
Called from PRINTEND(2067) in .\source\classes\printer.prg
Called from EMPLEIMPRE(936) in emple.prg
Called from (b)HACEBAREMPLE(342) in emple.prg
Called from TBTNBMP:CLICK(816) in .\source\classes\btnbmp.prg
Called from TBTNBMP:LBUTTONUP(1103) in .\source\classes\btnbmp.prg
Called from TCONTROL:HANDLEEVENT(1867) in .\source\classes\control.prg
Called from TBTNBMP:HANDLEEVENT(2145) in .\source\classes\btnbmp.prg
Called from _FWH(3719) in .\source\classes\window.prg
Called from WINRUN(0) in .\source\classes\window.prg
Called from TMDIFRAME:ACTIVATE(1137) in .\source\classes\window.prg
Called from MAIN(262) in masterform.prg
------------------------------------------------------------------------
]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277714#p277714 Mon, 17 Feb 2025 06:25:34 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277714#p277714
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Ayuda tPrinter (Estoy viejoooo) :: Reply by D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277715#p277715 Aqui está

Code: Select all | Expand

Application Internal Error - C:\Fuentes\MasterForm\Masterform.Exe
Terminated at: 2025-02-17 10:23:28
Error irrecuperable 6005: Exception error:

    Exception Code:C0000005 ACCESS_VIOLATION
    Exception Address:6DD586A6
    EAX:75736956  EBX:00CFCF54  ECX:00000084  EDX:00000000
    ESI:00380032  EDI:00000000  EBP:00CFCE20
    CS:EIP:0023:6DD586A6  SS:ESP:002B:00CFCD90
    DS:002B  ES:002B  FS:0053  GS:002B
    Flags:00010293
    Exception Parameters: 00000000 75736962
    CS:EIP: 8A 40 0C 24 0F 3C 07 0F 85 89 07 00 00 B8 FF FF
    SS:ESP: 6DD58620 00000084 000F0D48 01B50356 00000000 00000002 00380032 003CF708 00CFCEE0 00101B98 00000000 00000000 00000004 00000003 0000013D 00000493

    C stack:
    EIP:     EBP:       Frame: OldEBP, RetAddr, Params...
    6DD586A6 00CFCE20   00CFCE4C 77277943 000F0D48 00000084 00000000 01B50356 00000084 DCBAABCD 00CFCF54 6DD58620
    77277943 00CFCE4C   00CFCF48 7726601D 6DD58620 000F0D48 00000084 00000000 01B50356 CD19CD34 6DD58620 000F0D48
    7726601D 00CFCF48   00CFCF94 772A1383 FFFF0A23 00000084 772A1383 6DD58620 00000000 00000084 00000000 01B50356
    772A1383 00CFCF94   00CFCFAC 772A1E9B 00000084 00000000 01B50356 00000001
    772A1E9B 00CFCFAC   00CFCFD0 00027237 FFFF0A23 000F0D48 00000084 00000000 01B50356 50000007 000EAE43
    00027237 00CFCFD0   00CFCFFC 77277943 000F0D48 00000084 00000000 01B50356 00000084 DCBAABCD 00CFD104 000271E0
    77277943 00CFCFFC   00CFD0F8 7726601D 000271E0 000F0D48 00000084 00000000 01B50356 CD19D284 000271E0 000F0D48
    7726601D 00CFD0F8   00CFD144 772A1383 77265D09 00000084 772A1383 000271E0 00000000 00000084 00000000 01B50356
    772A1383 00CFD144   00CFD15C 772A1E9B 00000084 00000000 01B50356 00000001
    772A1E9B 00CFD15C   00CFD17C 0004E299 000271E0 000F0D48 00000084 00000000 01B50356 000271E0
    0004E299 00CFD17C   00CFD198 0008DE55 000F0D48 00000084 00000000 01B50356 0000003F
    0008DE55 00CFD198   00CFD1C4 77277943 000F0D48 00000084 00000000 01B50356 00000084 DCBAABCD 00CFD2C8 0008DE30
    77277943 00CFD1C4   00CFD2C0 7726601D 0008DE30 000F0D48 00000084 00000000 01B50356 CD19D0BC 00003308 00000000
    7726601D 00CFD2C0   00CFD32C 77265AC0 00000084 77265AC0 0008DE30 00000000 00000084 00000000 01B50356 00AF3000
    77265AC0 00CFD32C   00CFD368 77272349 01995C90 00000000 00000084 00000000 01B50356 0008DE30 00CFD458 00370CEC
    77272349 00CFD368   00CFD3F0 77E5BA96 00CFD384 00000020 00CFE1B0 77E5B9E0 00CFD3A4 01995C90 00000000 00000084
    77E5BA96 00CFD3F0   00CFD42C 77271331 00000000 00000000 00000001 00000000 00000000 00370CEC 00000000 00120D8A
    77271331 00CFD42C   00CFD488 772AD26C 00CFD458 00000000 00000000 00000000 00000001 00000001 00370CEC 00000000
    772AD26C 00CFD488   00CFD4BC 772AD7B1 00000000 00000001 003CB028 00000000 001DA5F8 02F10004 07E904B0 00020000
    772AD7B1 00CFD4BC   00CFD4D4 772A4D17 00370CEC 000A1390 00000000 00000003


Modules:
00020000 005B0000 C:\Fuentes\MasterForm\Masterform.Exe
77DE0000 001BA000 C:\WINDOWS\SYSTEM32\ntdll.dll
76FC0000 000F0000 C:\WINDOWS\System32\KERNEL32.DLL
76140000 002A9000 C:\WINDOWS\System32\KERNELBASE.dll
77240000 001C5000 C:\WINDOWS\System32\USER32.dll
76BA0000 0001A000 C:\WINDOWS\System32\win32u.dll
77DA0000 00022000 C:\WINDOWS\System32\GDI32.dll
770C0000 000EB000 C:\WINDOWS\System32\gdi32full.dll
766F0000 00085000 C:\WINDOWS\System32\msvcp_win.dll
75E60000 00110000 C:\WINDOWS\System32\ucrtbase.dll
768C0000 000B4000 C:\WINDOWS\System32\COMDLG32.dll
76460000 0027F000 C:\WINDOWS\System32\combase.dll
77480000 000B9000 C:\WINDOWS\System32\RPCRT4.dll
6DCD0000 00227000 C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.26100.3037_none_85b65d03f7afec7e\COMCTL32.dll
77660000 000C8000 C:\WINDOWS\System32\shcore.dll
6CBC0000 00090000 C:\WINDOWS\SYSTEM32\WINSPOOL.DRV
76780000 000C7000 C:\WINDOWS\System32\msvcrt.dll
76E40000 0004B000 C:\WINDOWS\System32\SHLWAPI.dll
77790000 005EB000 C:\WINDOWS\System32\SHELL32.dll
76E90000 0007F000 C:\WINDOWS\System32\ADVAPI32.dll
721B0000 00049000 C:\WINDOWS\SYSTEM32\cfgmgr32.dll
775B0000 00083000 C:\WINDOWS\System32\sechost.dll
76CE0000 00151000 C:\WINDOWS\System32\ole32.dll
75F80000 0009E000 C:\WINDOWS\System32\OLEAUT32.dll
77540000 00060000 C:\WINDOWS\System32\WS2_32.dll
6ECD0000 00019000 C:\WINDOWS\SYSTEM32\MPR.dll
752F0000 00008000 C:\WINDOWS\SYSTEM32\VERSION.dll
75730000 00006000 C:\WINDOWS\SYSTEM32\MSIMG32.dll
6CA10000 0016C000 C:\WINDOWS\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.26100.3037_none_b6a14fe95242664c\gdiplus.dll
5BE40000 0002E000 C:\WINDOWS\SYSTEM32\oledlg.dll
6EB70000 00033000 C:\WINDOWS\SYSTEM32\WINMM.dll
67A10000 00008000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
76A00000 00025000 C:\WINDOWS\System32\IMM32.DLL
74790000 00082000 C:\WINDOWS\system32\uxtheme.dll
76BC0000 00117000 C:\WINDOWS\System32\MSCTF.dll
6AF90000 0009F000 C:\WINDOWS\SYSTEM32\TextShaping.dll
75360000 00014000 C:\WINDOWS\SYSTEM32\kernel.appcore.dll
77410000 00069000 C:\WINDOWS\System32\bcryptPrimitives.dll
68B30000 00101000 C:\WINDOWS\SYSTEM32\textinputframework.dll
6A940000 000DC000 C:\WINDOWS\SYSTEM32\CoreMessaging.dll
5C740000 00292000 C:\WINDOWS\SYSTEM32\CoreUIComponents.dll
720B0000 000F9000 C:\WINDOWS\SYSTEM32\wintypes.dll
72290000 0000B000 C:\WINDOWS\SYSTEM32\CRYPTBASE.DLL
10000000 00341000 C:\WINDOWS\SYSTEM32\freeimage.dll
73BC0000 006B7000 C:\WINDOWS\SYSTEM32\Windows.Storage.dll
6B040000 001DE000 C:\WINDOWS\SYSTEM32\WindowsCodecs.dll
771B0000 00081000 C:\WINDOWS\System32\clbcatq.dll
6F1B0000 00025000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
77640000 00007000 C:\WINDOWS\System32\NSI.dll
6F050000 00018000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL
6F030000 0001D000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL
6F0D0000 000DB000 C:\WINDOWS\SYSTEM32\DNSAPI.dll
5F000000 00011000 C:\WINDOWS\SYSTEM32\CTL3D32.DLL

Called from DIALOGBOXINDIRECT(0) in .\source\classes\dialog.prg
Called from TDIALOG:ACTIVATE(325) in .\source\classes\dialog.prg
Called from TPREVIEW:PRINTPAGE(1599) in .\source\classes\rpreview.prg
Called from (b)TPREVIEW_BUILDBUTTONBAR(367) in .\source\classes\rpreview.prg
Called from TBTNBMP:CLICK(816) in .\source\classes\btnbmp.prg
Called from TBTNBMP:LBUTTONUP(1100) in .\source\classes\btnbmp.prg
Called from TCONTROL:HANDLEEVENT(1867) in .\source\classes\control.prg
Called from TBTNBMP:HANDLEEVENT(2145) in .\source\classes\btnbmp.prg
Called from _FWH(3719) in .\source\classes\window.prg
Called from SYSREFRESH(0) in emple.prg
Called from STOPUNTIL(70) in .\source\function\msgrun.prg
Called from TPREVIEW:ACTIVATE(179) in .\source\classes\rpreview.prg
Called from RPREVIEW(1880) in .\source\classes\rpreview.prg
Called from (b)TPRINTER(327) in .\source\classes\printer.prg
Called from TPRINTER:PREVIEW(0) in .\source\classes\printer.prg
Called from PRINTEND(2067) in .\source\classes\printer.prg
Called from EMPLEIMPRE(936) in emple.prg
Called from (b)HACEBAREMPLE(342) in emple.prg
Called from TBTNBMP:CLICK(816) in .\source\classes\btnbmp.prg
Called from TBTNBMP:LBUTTONUP(1103) in .\source\classes\btnbmp.prg
Called from TCONTROL:HANDLEEVENT(1867) in .\source\classes\control.prg
Called from TBTNBMP:HANDLEEVENT(2145) in .\source\classes\btnbmp.prg
Called from _FWH(3719) in .\source\classes\window.prg
Called from WINRUN(0) in .\source\classes\window.prg
Called from TMDIFRAME:ACTIVATE(1137) in .\source\classes\window.prg
Called from MAIN(262) in masterform.prg
------------------------------------------------------------------------
]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277715#p277715 Mon, 17 Feb 2025 06:26:05 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277715#p277715
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Ayuda tPrinter (Estoy viejoooo) :: Reply by D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277716#p277716 voy a probar con la 2206 a ver que pasa.

Gracias
Saludos.
Perdon, se me fue el dedo y envie el post varias veces.]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277716#p277716 Mon, 17 Feb 2025 06:28:07 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277716#p277716
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Ayuda tPrinter (Estoy viejoooo) :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277717#p277717

Code: Select all | Expand

FUNCTION PRNSLOT()

   LOCAL  slnro, slnombre, slvalor, slbanco, slcam1, slcam2, slcam3, slmoneda, slcam4

   basesl := TData():New(, ruta + "SLOTS" )

   IF basesl:Use()

      basesl:SetOrder( "NMAQ" )
      basesl:GoTop()

   ELSE

      MsgInfo( 'Error de apertura de archivo', 'Informe' )

      return( .F. )

   ENDIF

   titulolistado := "Listado de Slots"

   CursorWait()

   DEFINE BRUSH oBrush COLOR CLR_WHITE // aqui

   PRINT oPrn NAME "Lista de Slots" PREVIEW MODAL

   DEFINE FONT oFont11 NAME "TIMES NEW ROMAN" SIZE 0, - 14 BOLD        OF oPrn
   DEFINE FONT oFont12 NAME "HELVETICA"       SIZE 0, - 10             OF oPrn
   DEFINE FONT oFont13 NAME "HELVETICA"       SIZE 0, - 16 BOLD ITALIC OF oPrn
   DEFINE FONT oFont14 NAME "Segoe UI"        SIZE 0, - 10             OF oPrn
   DEFINE FONT oFont15 NAME "TAHOMA"          SIZE 0, -  8             OF oPrn
   DEFINE FONT oFont16 NAME "CAMBRIA"         SIZE 0, - 10 BOLD ITALIC OF oPrn

   DEFINE PEN oPen WIDTH 1 COLOR CLR_BLACK OF oPrn  // aqui

   oPrn:SetPage( 9 ) // ?? 1
   oPrn:SetPortrait()

   aDesde := oPrn:Cmtr2Pix( 0.5, 2.5 )
   aAncho := oPrn:Cmtr2Pix( 3, 2.5 )

   cmt    := 1  //??

   PAGE

      oPrn:RoundBox( 2, 8, 3, 14, 0.3, 0.3, oPen, CLR_WHITE, { "Qué hago mal ?", { oFont11 }, CLR_BLACK }, "CM" )

      cmt += 0.7

      basesl:Gotop()

      WHILE( .NOT. basesl:Eof() ) // O WHILE( .NOT. EOF() )

         SYSREFRESH() // aqui

         slnro    := basesl:nslot
         slnombre := basesl:snom
         slbanco  := basesl:cbanco
         slcam1   := basesl:cubre1
         slcam2   := basesl:cubre2
         slcam3   := basesl:cubre3
         slmoneda := if( basesl:moneda = "D", HBA( "Dólares" ), "Pesos" )
         slvalor  := basesl:valor
         slcam4   := xTrim( slcam1 ) + " - " + xTrim( slcam2 ) + " - " + xTrim( slcam3 )

         oPrn:CmSay( cmt,  3.2, slnro, oFont15, 2, CLR_BLACK,, 1 )

         cmt += 0.5 // Lynea ??

         IF cmt >= 23 // ??? se lynea...

            ENDPAGE

            PAGE // new page

            cmt    := 1  //??  lynea? inicia de nuevo.

            // PieSlotPagina()
            // OtraSlotPagina()

            // basesl:Skip() // ???

         ELSE

            // basesl:Skip() // ???  / no comprendo

         ENDIF

         SKIP() // aqui

      ENDDO

   ENDPAGE

   /*
   PAGE
   ENDPAGE // No comprendo???
   */

   ENDPRINT

   oFont11:END()
   oFont12:END()
   oFont13:END()
   oFont14:END()
   oFont15:END()
   oFont16:END()
   oBrush:End()
   oPen:End()

   // SysRefresh() //?? para?

   CursorArrow()

   basesl:Close()

RETURN NIL
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277717#p277717 Mon, 17 Feb 2025 06:59:42 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277717#p277717
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Ayuda tPrinter (Estoy viejoooo) :: Reply by D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277721#p277721
Todo sigue igual con los tips.
Perooo estoy usando el FWH 2212 y todo va mejor.
Seguire por este camino.

Gracias.

Saludos

Ruben Fernandez]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277721#p277721 Mon, 17 Feb 2025 09:09:50 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45425&p=277721#p277721
<![CDATA[FiveWin para Harbour/xHarbour :: Alerta de notificaciones en icono barra del windows :: Author leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45435&p=277756#p277756
No se si sean efectos especiales y solo sea cambiar el icono, pero seria bueno saber como hacer para cambiar el icono en tiempo de ejecución, gracias de antemano.

Image]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45435&p=277756#p277756 Wed, 19 Feb 2025 07:21:18 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45435&p=277756#p277756
<![CDATA[FiveWin para Harbour/xHarbour :: Nuevo FWH 25.01 :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45434&p=277748#p277748 viewtopic.php?t=45432]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45434&p=277748#p277748 Wed, 19 Feb 2025 01:17:04 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45434&p=277748#p277748 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Nuevo FWH 25.01 :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45434&p=277760#p277760
Buenos días querido maestro, no vi ninguna referencia a la solución al problema creado en FWH2409 en referencia al problema de acentuación usando: HB_SETCODEPAGE( "PT850" ). Gracias.

Gracias, tks.

Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45434&p=277760#p277760 Wed, 19 Feb 2025 07:32:06 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45434&p=277760#p277760
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Nuevo FWH 25.01 :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45434&p=277761#p277761 ]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45434&p=277761#p277761 Wed, 19 Feb 2025 07:33:25 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45434&p=277761#p277761 <![CDATA[FiveWin para Harbour/xHarbour :: Curso virtual implementación IA en nuestras aplicaciones :: Author leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277390#p277390
Así que iniciamos este POST para definir la fecha temario y participantes.

Fechas sugerida curso: Preferiblemente antes que se termine febrero 2025
Costo: Por definir de parte de Antonio
Numero sesiones: por definir
Modalidad: Virtual
Idioma: Español
Medio comunicación: **skype**
Zona horaria: Preferiblemente Latinoamérica

Temas
... Por definir de parte de Antonio

viewtopic.php?p=277326#p277326]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277390#p277390 Mon, 03 Feb 2025 08:21:53 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277390#p277390
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277396#p277396 cuenta conmigo
un abrazo]]>
no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277396#p277396 Mon, 03 Feb 2025 10:30:54 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277396#p277396
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by carito]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277404#p277404
Saludos a todos,
Carito]]>
no_email@example.com (carito) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277404#p277404 Mon, 03 Feb 2025 16:51:34 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277404#p277404
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by csincuir]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277412#p277412 Gracias Leandro nuevamente por tomar la iniciativa.

Saludos cordiales.]]>
no_email@example.com (csincuir) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277412#p277412 Tue, 04 Feb 2025 06:08:57 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277412#p277412
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Enrrique Vertiz]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277432#p277432 no_email@example.com (Enrrique Vertiz) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277432#p277432 Tue, 04 Feb 2025 18:31:16 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277432#p277432 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277434#p277434
También veremos como usar Ollama cuando los datos sean confidenciales y no puedan enviarse a la web

Y en general revisaremos las opciones existentes para que tengais una visión actual del uso de la IA desde vuestras apps! :)
Entendereis que ha supuesto la revolución tecnológica de DeepSeek y las implicaciones técnicas que ha generado.

Os animo a apovechar este momento y adelantaros a la competencia :wink:

Precio del webinar: 50 euros a pagar por PayPal a alinares@fivetechsoft.com. El pago será la confirmación del registro al webinar.

El importe obtenido de este webinar se destinará a hardware para entrenamientos IA. Gracias por vuestro apoyo!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277434#p277434 Tue, 04 Feb 2025 21:55:38 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277434#p277434
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277439#p277439
Antonio si te parece haré pago por transferencia como el anterior Webinar.]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277439#p277439 Wed, 05 Feb 2025 03:45:03 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277439#p277439
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277440#p277440 gracias por ofrecer este webminar un abrazo
Wilson]]>
no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277440#p277440 Wed, 05 Feb 2025 04:24:35 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277440#p277440
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277443#p277443 Resumen general actualizado 5 feb 2025 6:53 am hora de Colombia

Fechas para inicio curso: Preferiblemente antes que se termine febrero 2025
Costo: 50 Euros
Numero sesiones: por definir
Modalidad: Virtual
Idioma: Español
Medio comunicación: skype
Zona horaria: Preferiblemente Latinoamérica

Temas
En el curso veremos como usar chatgpt y deepseek desde nuestras aplicaciones en Harbour + FWH creando potentes "Agentes IA"
También veremos como usar Ollama cuando los datos sean confidenciales y no puedan enviarse a la web
Y en general revisaremos las opciones existentes para que tengáis una visión actual del uso de la IA desde vuestras apps! :)
Entenderéis que ha supuesto la revolución tecnológica de DeepSeek y las implicaciones técnicas que ha generado.

Participantes con pago
1- Wilson Gamboa - Ecuador

Participantes confirmados
Leandro Arévalo - Colombia
Juan (Carito) - Chile
Carlos Sincuir - Guatemala
Enrrique Vertiz Pitta - Perú
Carlos Gelabert - España]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277443#p277443 Wed, 05 Feb 2025 05:08:34 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277443#p277443
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by jnavas]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277446#p277446 Saludos
Excelente iniciativa.
PD: Contamos con cuenta zoom para 100 y 500 participantes.]]>
no_email@example.com (jnavas) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277446#p277446 Wed, 05 Feb 2025 08:12:34 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277446#p277446
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by jnavas]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277447#p277447 Saludos.
1. Me interesa la funcionalidad para generar consultas SQL desde lenguaje natural
2. Capacitación para respuestas o cálculos tributarios o laborales.
3. Otros usos para generar valores predictivos desde un objetivo financieros deseables vs comparado con datos actuales.]]>
no_email@example.com (jnavas) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277447#p277447 Wed, 05 Feb 2025 08:16:43 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277447#p277447
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277449#p277449
jnavas wrote: Wed Feb 05, 2025 3:16 pm Antonio
Saludos.
1. Me interesa la funcionalidad para generar consultas SQL desde lenguaje natural
2. Capacitación para respuestas o cálculos tributarios o laborales.
3. Otros usos para generar valores predictivos desde un objetivo financieros deseables vs comparado con datos actuales.
Querido Juan,

Incluiremos esos temas en el webinar :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277449#p277449 Wed, 05 Feb 2025 09:43:47 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277449#p277449
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277450#p277450
jnavas wrote: Wed Feb 05, 2025 3:12 pm Colegas,
Saludos
Excelente iniciativa.
PD: Contamos con cuenta zoom para 100 y 500 participantes.
Genial! :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277450#p277450 Wed, 05 Feb 2025 09:44:17 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277450#p277450
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by ralph]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277452#p277452
Saludos]]>
no_email@example.com (ralph) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277452#p277452 Wed, 05 Feb 2025 14:37:01 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277452#p277452
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Enrrique Vertiz]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277453#p277453
Igualmente acabo de pasarte por WA el pago de los 50 euros]]>
no_email@example.com (Enrrique Vertiz) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277453#p277453 Wed, 05 Feb 2025 14:54:27 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277453#p277453
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277456#p277456
Muchas gracias amigos por apoyarnos en este nuevo webinar :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277456#p277456 Wed, 05 Feb 2025 15:37:26 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277456#p277456
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277457#p277457 Resumen general actualizado 5 feb 2025 6:01 pm hora de Colombia

Fechas para inicio curso: Preferiblemente antes que se termine febrero 2025
Costo: 50 Euros
Numero sesiones: por definir
Modalidad: Virtual
Idioma: Español
Medio comunicación: skype
Zona horaria: Preferiblemente Latinoamérica

Temas
1. En el curso veremos como usar chatgpt y deepseek desde nuestras aplicaciones en Harbour + FWH creando potentes "Agentes IA"
2. También veremos como usar ollama cuando los datos sean confidenciales y no puedan enviarse a la web
3. En general revisaremos las opciones existentes para que tengáis una visión actual del uso de la IA desde vuestras apps! :) Entenderéis que ha supuesto la revolución tecnológica de DeepSeek y las implicaciones técnicas que ha generado.
4. La funcionalidad para generar consultas SQL desde lenguaje natural
5. Capacitación para respuestas o cálculos tributarios o laborales.
6. Otros usos para generar valores predictivos desde un objetivo financieros deseables vs comparado con datos actuales.

Participantes con pago
1- Wilson Gamboa - Ecuador
2- Ralph del Castillo - Perú
3- Enrique Vertiz Pitta - Perú

Participantes confirmados
Leandro Arévalo - Colombia
Juan (Carito) - Chile
Carlos Sincuir - Guatemala
Carlos Gelabert - España
Juan Navas - Venezuela]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277457#p277457 Wed, 05 Feb 2025 16:02:06 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277457#p277457
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277472#p277472
Te envío el soporte de pago del webinar mi tío y el mío.
Image]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277472#p277472 Thu, 06 Feb 2025 14:36:16 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277472#p277472
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277473#p277473 Resumen general actualizado 6 feb 2025 4:37 pm hora de Colombia

Fechas para inicio curso: Preferiblemente antes que se termine febrero 2025
Costo: 50 Euros
Numero sesiones: por definir
Modalidad: Virtual
Idioma: Español
Medio comunicación: skype
Zona horaria: Preferiblemente Latinoamérica

Temas
1. En el curso veremos como usar chatgpt y deepseek desde nuestras aplicaciones en Harbour + FWH creando potentes "Agentes IA"
2. También veremos como usar ollama cuando los datos sean confidenciales y no puedan enviarse a la web
3. En general revisaremos las opciones existentes para que tengáis una visión actual del uso de la IA desde vuestras apps! :) Entenderéis que ha supuesto la revolución tecnológica de DeepSeek y las implicaciones técnicas que ha generado.
4. La funcionalidad para generar consultas SQL desde lenguaje natural
5. Capacitación para respuestas o cálculos tributarios o laborales.
6. Otros usos para generar valores predictivos desde un objetivo financieros deseables vs comparado con datos actuales.

Participantes con pago
1- Wilson Gamboa - Ecuador
2- Ralph del Castillo - Perú
3- Enrique Vertiz Pitta - Perú
4- Mauricio Arévalo - Colombia
5- Leandro Arévalo - Colombia

Participantes confirmados
Juan (Carito) - Chile
Carlos Sincuir - Guatemala
Carlos Gelabert - España
Juan Navas - Venezuela]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277473#p277473 Thu, 06 Feb 2025 14:38:21 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277473#p277473
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277490#p277490 Oferta, oferta, oferta
Antonio propone lo siguiente:
Imagino que muchos asistentes querrán obtener la versión más reciente de FWH con las nuevas classes TOpenAI, TDeepSeek y TOLlama
Webinar + actualización FWH: 90 euros
Los invito que se animen, La IA es algo que debemos implementar en nuestras aplicaciones, y que mas si viene con la ultima versión de FW. :D :D :D :D]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277490#p277490 Fri, 07 Feb 2025 12:02:07 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277490#p277490
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277491#p277491 Resumen general actualizado 7 feb 2025 2:04 pm hora de Colombia

Fechas para inicio curso: Preferiblemente antes que se termine febrero 2025
:arrow: Costo: 50 Euros solo webinar
:arrow: Costo: 90 Euros con la ultima versión de FW, que incluye las clases TOpenAI, TDeepSeek y TOLlama
Numero sesiones: por definir
Modalidad: Virtual
Idioma: Español
Medio comunicación: skype
Zona horaria: Preferiblemente Latinoamérica

Temas
1. En el curso veremos como usar chatgpt y deepseek desde nuestras aplicaciones en Harbour + FWH creando potentes "Agentes IA"
2. También veremos como usar ollama cuando los datos sean confidenciales y no puedan enviarse a la web
3. En general revisaremos las opciones existentes para que tengáis una visión actual del uso de la IA desde vuestras apps! :) Entenderéis que ha supuesto la revolución tecnológica de DeepSeek y las implicaciones técnicas que ha generado.
4. La funcionalidad para generar consultas SQL desde lenguaje natural
5. Capacitación para respuestas o cálculos tributarios o laborales.
6. Otros usos para generar valores predictivos desde un objetivo financieros deseables vs comparado con datos actuales.
7. Durante el webinar, Antonio, nos va a explicar como crear un asistente contable, que pueda ayudarnos con el ingreso de información en nuestras aplicaciones.

Participantes con pago
1- Wilson Gamboa - Ecuador
2- Ralph del Castillo - Perú
3- Enrique Vertiz Pitta - Perú
4- Mauricio Arévalo - Colombia
5- Leandro Arévalo - Colombia

Participantes confirmados
Juan (Carito) - Chile
Carlos Sincuir - Guatemala
Carlos Gelabert - España
Juan Navas - Venezuela]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277491#p277491 Fri, 07 Feb 2025 12:07:19 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277491#p277491
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by D.Fernandez]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277493#p277493
Pago enviado.
Saludos
Ruben Dario Fernandez]]>
no_email@example.com (D.Fernandez) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277493#p277493 Fri, 07 Feb 2025 15:40:57 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277493#p277493
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277505#p277505
Hemos acordado que pagando 90 euros se consigue el webinar y la última versión de FWH 32 bits.
Por 100 euros obteneis FWH 32 y 64 bits.

Os agradezco de corazón vuestro apoyo que va a ser para invertirlo en hardware para investigación en Inteligencia Artificial :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277505#p277505 Sat, 08 Feb 2025 03:38:36 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277505#p277505
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by jnavas]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277509#p277509 Colegas,
En nuestro caso adaptapro estamos realizando implementacion de cambios regulatorios exigidos de ley para el tema tributario.
https://adaptaproerp.com/homologacion/

Por esto estamos dedicados con esta regulación, sin embargo no podemos desaprovechar esta oportunidad.
Mediante Wilmer guerrero, forma parte de nuestro equipo de desarrollo , tramitará el pago y asistirá a esta importante actividad en nuestra representación.]]>
no_email@example.com (jnavas) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277509#p277509 Sat, 08 Feb 2025 07:15:37 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277509#p277509
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Marco Augusto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277511#p277511
que se necesita para el curso?

Harbour o Xharbour Versiones?
32 o 64 bits?]]>
no_email@example.com (Marco Augusto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277511#p277511 Sat, 08 Feb 2025 08:37:17 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277511#p277511
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277513#p277513
El uso de la Inteligencia Artificial funciona 100% tanto con Harbour como xHarbour asi como en 32 y 64 bits.

Veremos ejemplos con todos ellos :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277513#p277513 Sat, 08 Feb 2025 09:51:23 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277513#p277513
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277531#p277531 Resumen general actualizado 8 feb 2025 4:07 pm hora de Colombia

Fechas para inicio curso: Preferiblemente antes que se termine febrero 2025
:arrow: Costo: 50 Euros solo webinar
:arrow: Costo: 90 Euros con la ultima versión de FW 32, que incluye las clases TOpenAI, TDeepSeek y TOLlama
:arrow: Costo: 100 Euros con la ultima versión de FW 32 y 64, que incluye las clases TOpenAI, TDeepSeek y TOLlama
Numero sesiones: por definir
Modalidad: Virtual
Idioma: Español
Medio comunicación: skype
Zona horaria: Preferiblemente Latinoamérica

Temas
1. En el curso veremos como usar chatgpt y deepseek desde nuestras aplicaciones en Harbour + FWH creando potentes "Agentes IA"
2. También veremos como usar ollama cuando los datos sean confidenciales y no puedan enviarse a la web
3. En general revisaremos las opciones existentes para que tengáis una visión actual del uso de la IA desde vuestras apps! :) Entenderéis que ha supuesto la revolución tecnológica de DeepSeek y las implicaciones técnicas que ha generado.
4. La funcionalidad para generar consultas SQL desde lenguaje natural
5. Capacitación para respuestas o cálculos tributarios o laborales.
6. Otros usos para generar valores predictivos desde un objetivo financieros deseables vs comparado con datos actuales.
7. Durante el webinar, Antonio, nos va a explicar como crear un asistente contable, que pueda ayudarnos con el ingreso de información en nuestras aplicaciones.

Participantes con pago webinar
1- Wilson Gamboa - Ecuador
2- Ralph del Castillo - Perú
3- Enrique Vertiz Pitta - Perú
4- Mauricio Arévalo - Colombia
5- Leandro Arévalo - Colombia
6- Ruben Dario Fernandez - Uruguay

Participantes confirmados
Juan (Carito) - Chile
Carlos Sincuir - Guatemala
Carlos Gelabert - España
Juan Navas - Venezuela]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277531#p277531 Sat, 08 Feb 2025 14:10:26 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277531#p277531
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277546#p277546 En este webinar os enseñaré a construir modelos de Inteligencia Artificial con los datos que querais para venderlos a Empresas!!! :D

In this webinar I will teach you to build AI models with the data that you want to sell them to companies!!! :D ]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277546#p277546 Sun, 09 Feb 2025 01:18:28 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277546#p277546
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277547#p277547
Cuanto antes se sepa la fecha mejor.

Si me 'cuadra' me apunto.

Gracias por este tipo de iniciativas.]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277547#p277547 Sun, 09 Feb 2025 03:49:40 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277547#p277547
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Compuin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277550#p277550
Pago realizado]]>
no_email@example.com (Compuin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277550#p277550 Sun, 09 Feb 2025 07:30:20 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277550#p277550
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Otto]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277551#p277551 I am looking forward to the webinar and hereby confirm my registration.
Best regards,
Otto]]>
no_email@example.com (Otto) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277551#p277551 Sun, 09 Feb 2025 09:12:23 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277551#p277551
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277552#p277552 ]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277552#p277552 Sun, 09 Feb 2025 09:57:28 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277552#p277552 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277558#p277558 saludos y gracias
Wilson]]>
no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277558#p277558 Sun, 09 Feb 2025 14:34:49 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277558#p277558
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by csincuir]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277559#p277559 Nos vemos en el Curso amigos.

Saludos cordiales.

Carlos Sincuir]]>
no_email@example.com (csincuir) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277559#p277559 Sun, 09 Feb 2025 15:26:44 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277559#p277559
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277561#p277561
wilsongamboa wrote: Sun Feb 09, 2025 9:34 pm Master Antonio una pregunta si compramos con tu amable descuento ( del webminar de IA ) la nueva versión de fwh estará incluido la mejora de gmail y OAuth que están anunciando ?
saludos y gracias
Wilson
Estimado Wilson,

gmail + OAuth lo está implementando Lailton. En cuanto esté terminado estará disponible para todos :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277561#p277561 Sun, 09 Feb 2025 15:33:21 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277561#p277561
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277569#p277569 no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277569#p277569 Mon, 10 Feb 2025 10:53:08 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277569#p277569 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277570#p277570 Resumen general actualizado 10 feb 2025 4:05 pm hora de Colombia

Fechas para inicio curso: Preferiblemente antes que se termine febrero 2025
:arrow: Costo: 50 Euros solo webinar
:arrow: Costo: 90 Euros con la ultima versión de FW 32, que incluye las clases TOpenAI, TDeepSeek y TOLlama
:arrow: Costo: 100 Euros con la ultima versión de FW 32 y 64, que incluye las clases TOpenAI, TDeepSeek y TOLlama
Numero sesiones: por definir
Modalidad: Virtual
Idioma: Español
Medio comunicación: skype
Zona horaria: Preferiblemente Latinoamérica
Fecha de inicio sugerida: 28 de febrero de 2025

Temas
1. En el curso veremos como usar chatgpt y deepseek desde nuestras aplicaciones en Harbour + FWH creando potentes "Agentes IA"
2. También veremos como usar ollama cuando los datos sean confidenciales y no puedan enviarse a la web
3. En general revisaremos las opciones existentes para que tengáis una visión actual del uso de la IA desde vuestras apps! :) Entenderéis que ha supuesto la revolución tecnológica de DeepSeek y las implicaciones técnicas que ha generado.
4. La funcionalidad para generar consultas SQL desde lenguaje natural
5. Capacitación para respuestas o cálculos tributarios o laborales.
6. Otros usos para generar valores predictivos desde un objetivo financieros deseables vs comparado con datos actuales.
7. Durante el webinar, Antonio, nos va a explicar como crear un asistente contable, que pueda ayudarnos con el ingreso de información en nuestras aplicaciones.

Participantes con pago webinar + actualización 32 y 64
1- Carlos Sincuir - Guatemala

Participantes con pago webinar
1- Wilson Gamboa - Ecuador
2- Ralph del Castillo - Perú
3- Enrique Vertiz Pitta - Perú
4- Mauricio Arévalo - Colombia
5- Leandro Arévalo - Colombia
6- Ruben Dario Fernandez - Uruguay

Participantes confirmados
Juan (Carito) - Chile
Carlos Gelabert - España
Juan Navas - Venezuela]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277570#p277570 Mon, 10 Feb 2025 14:05:18 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277570#p277570
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Compuin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277571#p277571
Yo realice el pago de Participantes con pago webinar + actualización 32 y 64, mas sin embargo no me veo en esta lista]]>
no_email@example.com (Compuin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277571#p277571 Mon, 10 Feb 2025 14:11:58 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277571#p277571
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277573#p277573
Yo realice el pago de Participantes con pago webinar + actualización 32 y 64, mas sin embargo no me veo en esta lista
Amigo como vas? que pena molestarte, por donde hiciste el pago? Antonio no lo ve reflejado en su cuenta.]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277573#p277573 Mon, 10 Feb 2025 14:19:09 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277573#p277573
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Compuin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277574#p277574
Pago realizado via Paypal sabado pasado

Transaction ID
9029561067956200B]]>
no_email@example.com (Compuin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277574#p277574 Mon, 10 Feb 2025 14:22:24 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277574#p277574
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277576#p277576
Compuin wrote: Mon Feb 10, 2025 9:11 pm Saludos,

Yo realice el pago de Participantes con pago webinar + actualización 32 y 64, mas sin embargo no me veo en esta lista
+1

Pero Antonio no lo verá hasta el miércoles en su banco. Transferencia entre bancos diferentes.]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277576#p277576 Mon, 10 Feb 2025 15:26:34 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277576#p277576
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Compuin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277577#p277577 no_email@example.com (Compuin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277577#p277577 Mon, 10 Feb 2025 16:02:58 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277577#p277577 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277578#p277578
Compuin wrote: Mon Feb 10, 2025 11:02 pm Fue via PayPal
Estimado amigo,

Primero pedirte disculpas por las molestias. Estamos intentando localizarlo pero no lo encontramos.

Tienes el resguardo de envio ? Comprobemos que lo enviaste al email correcto: alinares@fivetechsoft.com

Muchas gracias]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277578#p277578 Mon, 10 Feb 2025 20:59:45 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277578#p277578
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by wilsongamboa]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277582#p277582 favor si puedes verificar mi pago de fwh 32 y 64 bits te lo agradezco lo acabo de hacer via paypal, te envie via mail las capturas de pantalla
un abrazo
Wilson
pd: con esto estoy con webminar + fwh]]>
no_email@example.com (wilsongamboa) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277582#p277582 Tue, 11 Feb 2025 05:15:08 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277582#p277582
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Compuin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277583#p277583
Antonio Linares wrote: Tue Feb 11, 2025 3:59 am
Compuin wrote: Mon Feb 10, 2025 11:02 pm Fue via PayPal
Estimado amigo,

Primero pedirte disculpas por las molestias. Estamos intentando localizarlo pero no lo encontramos.

Tienes el resguardo de envio ? Comprobemos que lo enviaste al email correcto: alinares@fivetechsoft.com

Muchas gracias
Estimado Antonio,

Tengo la imagen del pago realizado con Paypal pero no se como incluirla en el foro. Me ayudan con ello?]]>
no_email@example.com (Compuin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277583#p277583 Tue, 11 Feb 2025 06:02:01 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277583#p277583
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestra aplicaciones :: Reply by Compuin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277584#p277584
wilsongamboa wrote: Tue Feb 11, 2025 12:15 pm Antonio buenos dias
favor si puedes verificar mi pago de fwh 32 y 64 bits te lo agradezco lo acabo de hacer via paypal, te envie via mail las capturas de pantalla
un abrazo
Wilson
pd: con esto estoy con webminar + fwh
Yo envie copia de mi pago tamnbien a alinares@fivetechsoft.com]]>
no_email@example.com (Compuin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277584#p277584 Tue, 11 Feb 2025 06:03:17 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277584#p277584
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277585#p277585 Resumen general actualizado 11 feb 2025 8:37 am hora de Colombia

:arrow: Costo: 50 Euros solo webinar
:arrow: Costo: 90 Euros con la ultima versión de FW 32, que incluye las clases TOpenAI, TDeepSeek y TOLlama
:arrow: Costo: 100 Euros con la ultima versión de FW 32 y 64, que incluye las clases TOpenAI, TDeepSeek y TOLlama
Numero sesiones: por definir
Modalidad: Virtual
Idioma: Español
Medio comunicación: skype
Zona horaria: Preferiblemente Latinoamérica
Fecha de inicio sugerida: 28 de febrero de 2025

Temas
1. En el curso veremos como usar chatgpt y deepseek desde nuestras aplicaciones en Harbour + FWH creando potentes "Agentes IA"
2. También veremos como usar ollama cuando los datos sean confidenciales y no puedan enviarse a la web
3. En general revisaremos las opciones existentes para que tengáis una visión actual del uso de la IA desde vuestras apps! :) Entenderéis que ha supuesto la revolución tecnológica de DeepSeek y las implicaciones técnicas que ha generado.
4. La funcionalidad para generar consultas SQL desde lenguaje natural
5. Capacitación para respuestas o cálculos tributarios o laborales.
6. Otros usos para generar valores predictivos desde un objetivo financieros deseables vs comparado con datos actuales.
7. Durante el webinar, Antonio, nos va a explicar como crear un asistente contable, que pueda ayudarnos con el ingreso de información en nuestras aplicaciones.

Participantes con pago webinar + actualización 32 y 64
1- Carlos Sincuir - Guatemala
2- Wuilmer Guerrero - Canadá

Participantes con pago webinar
1- Wilson Gamboa - Ecuador
2- Ralph del Castillo - Perú
3- Enrique Vertiz Pitta - Perú
4- Mauricio Arévalo - Colombia
5- Leandro Arévalo - Colombia
6- Ruben Dario Fernandez - Uruguay

Participantes confirmados
Juan (Carito) - Chile
Carlos Gelabert - España
Juan Navas - Venezuela]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277585#p277585 Tue, 11 Feb 2025 06:38:14 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277585#p277585
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Enrrique Vertiz]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277598#p277598
Acabo de depositar 50 Euros adicionales para el derecho al FWH de 32 y 64 que se entregaran con el curso, le pase por WA a Antonio la constancia.
Gracias]]>
no_email@example.com (Enrrique Vertiz) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277598#p277598 Tue, 11 Feb 2025 14:18:29 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277598#p277598
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277599#p277599

un abrazo]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277599#p277599 Tue, 11 Feb 2025 15:14:49 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277599#p277599
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277614#p277614 Resumen general actualizado 12 feb 2025 8:41 am hora de Colombia

:arrow: Costo: 50 Euros solo webinar
:arrow: Costo: 90 Euros con la ultima versión de FW 32, que incluye las clases TOpenAI, TDeepSeek y TOLlama
:arrow: Costo: 100 Euros con la ultima versión de FW 32 y 64, que incluye las clases TOpenAI, TDeepSeek y TOLlama
Numero sesiones: por definir
Modalidad: Virtual
Idioma: Español
Medio comunicación: skype
Zona horaria: Preferiblemente Latinoamérica
Fecha de inicio sugerida: 28 de febrero de 2025

Temas
1. En el curso veremos como usar chatgpt y deepseek desde nuestras aplicaciones en Harbour + FWH creando potentes "Agentes IA"
2. También veremos como usar ollama cuando los datos sean confidenciales y no puedan enviarse a la web
3. En general revisaremos las opciones existentes para que tengáis una visión actual del uso de la IA desde vuestras apps! :) Entenderéis que ha supuesto la revolución tecnológica de DeepSeek y las implicaciones técnicas que ha generado.
4. La funcionalidad para generar consultas SQL desde lenguaje natural
5. Capacitación para respuestas o cálculos tributarios o laborales.
6. Otros usos para generar valores predictivos desde un objetivo financieros deseables vs comparado con datos actuales.
7. Durante el webinar, Antonio, nos va a explicar como crear un asistente contable, que pueda ayudarnos con el ingreso de información en nuestras aplicaciones.

Participantes con pago webinar + actualización 32 y 64
1- Carlos Sincuir - Guatemala
2- Wuilmer Guerrero - Canadá
3- Enrique Vertiz Pitta - Perú
4- Juan Caro Saldivia - Chile
5- Alfredo Arteaga - México
6- Wilson Gamboa - Ecuador

Participantes con pago webinar
1- Ralph del Castillo - Perú
2- Mauricio Arévalo - Colombia
3- Leandro Arévalo - Colombia
4- Ruben Dario Fernandez - Uruguay

Participantes confirmados
Carlos Gelabert - España
Juan Navas - Venezuela]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277614#p277614 Wed, 12 Feb 2025 06:42:36 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277614#p277614
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277615#p277615 Temario:

1. Inteligencia Artificial: Descripción, tipos y modelos a usar con Harbour y xHarbour.

2. Clases TOpenAI y TDeepSeek. Explicación y ejemplos de uso.

3. Clase TOLlama: Uso de Inteligencia artificial de forma privada en red local desde Harbour y xHarbour. Explicación y ejemplos de uso.

4. Agentes IA: Explicación y construcción de Agentes IA con Harbour y xHarbour.

5. Ajuste de modelos IA con datos propios: SFT y RL para uso privado.

En los modelos locales (uso privado de datos) revisaremos y haremos ejemplos con Phi4 de Microsoft, Llama Visión de Meta, Qwen de Alibaba y DeepSeek]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277615#p277615 Wed, 12 Feb 2025 08:00:55 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277615#p277615
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Lautaro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277616#p277616
Acabo de hacer el pago por 100 euros , el id de la transaccion es : 018731277Y458594Y.

Saludos desde Chile,

Lautaro Moreira]]>
no_email@example.com (Lautaro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277616#p277616 Wed, 12 Feb 2025 08:11:39 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277616#p277616
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277617#p277617

un abrazo]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277617#p277617 Wed, 12 Feb 2025 08:16:39 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277617#p277617
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277618#p277618
There should not be any difficulties to understand the webinar.

best regards,]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277618#p277618 Wed, 12 Feb 2025 08:19:10 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277618#p277618
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277619#p277619 Resumen general actualizado 12 feb 2025 4:09 pm hora de Colombia

:arrow: Costo: 50 Euros solo webinar
:arrow: Costo: 90 Euros con la ultima versión de FW 32, que incluye las clases TOpenAI, TDeepSeek y TOLlama
:arrow: Costo: 100 Euros con la ultima versión de FW 32 y 64, que incluye las clases TOpenAI, TDeepSeek y TOLlama
Numero sesiones: por definir
Modalidad: Virtual
Idioma: Español con traducción en ingles
Medio comunicación: skype
Zona horaria: Preferiblemente Latinoamérica
Fecha de inicio sugerida: 28 de febrero de 2025

Temario:
1. Inteligencia Artificial: Descripción, tipos y modelos a usar con Harbour y xHarbour.
2. Clases TOpenAI y TDeepSeek. Explicación y ejemplos de uso.
3. Clase TOLlama: Uso de Inteligencia artificial de forma privada en red local desde Harbour y xHarbour. Explicación y ejemplos de uso.
4. Agentes IA: Explicación y construcción de Agentes IA con Harbour y xHarbour.
5. Ajuste de modelos IA con datos propios: SFT y RL para uso privado.

En los modelos locales (uso privado de datos) revisaremos y haremos ejemplos con Phi4 de Microsoft, Llama Visión de Meta, Qwen de Alibaba y DeepSeek

Temas
1. En el curso veremos como usar chatgpt y deepseek desde nuestras aplicaciones en Harbour + FWH creando potentes "Agentes IA"
2. También veremos como usar ollama cuando los datos sean confidenciales y no puedan enviarse a la web
3. En general revisaremos las opciones existentes para que tengáis una visión actual del uso de la IA desde vuestras apps! :) Entenderéis que ha supuesto la revolución tecnológica de DeepSeek y las implicaciones técnicas que ha generado.
4. La funcionalidad para generar consultas SQL desde lenguaje natural
5. Capacitación para respuestas o cálculos tributarios o laborales.
6. Otros usos para generar valores predictivos desde un objetivo financieros deseables vs comparado con datos actuales.
7. Durante el webinar, Antonio, nos va a explicar como crear un asistente contable, que pueda ayudarnos con el ingreso de información en nuestras aplicaciones.

Participantes con pago webinar + actualización 32 y 64
1- Carlos Sincuir - Guatemala
2- Wuilmer Guerrero - Canadá
3- Enrique Vertiz Pitta - Perú
4- Juan Caro Saldivia - Chile
5- Alfredo Arteaga - México
6- Wilson Gamboa - Ecuador
7- Lautaro Moreira - Chile
8- Carlos Gelabert - España

Participantes con pago webinar
1- Ralph del Castillo - Perú
2- Mauricio Arévalo - Colombia
3- Leandro Arévalo - Colombia
4- Ruben Dario Fernandez - Uruguay
5- Javier Parada - México

Participantes confirmados
Juan Navas - Venezuela]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277619#p277619 Wed, 12 Feb 2025 09:11:34 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277619#p277619
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by rodmc]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277629#p277629 Cuando ya tengan información del horario (y ya tengan confirmadas las fechas) de dicho webinar, favor si pudieran publicarlo para así ver la posibilidad de participar.
Gracias!
RodMc]]>
no_email@example.com (rodmc) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277629#p277629 Wed, 12 Feb 2025 20:34:11 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277629#p277629
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277632#p277632
La fecha se establecerá tan pronto como alcancemos 20 participantes.]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277632#p277632 Wed, 12 Feb 2025 22:26:07 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277632#p277632
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277637#p277637

viewtopic.php?t=45412]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277637#p277637 Thu, 13 Feb 2025 01:36:14 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277637#p277637
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Lautaro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277647#p277647
Una consulta : ¿ Existira el video grabado de la(s) sesiones del Curso Virtual ?

Gracias por su atencion,

Lautaro]]>
no_email@example.com (Lautaro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277647#p277647 Thu, 13 Feb 2025 10:59:16 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277647#p277647
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by VikthorThomas]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277648#p277648
Antonio, favor de confirmar el envío vía paypal.]]>
no_email@example.com (VikthorThomas) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277648#p277648 Thu, 13 Feb 2025 11:12:45 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277648#p277648
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277650#p277650
Pago recibido, muchas gracias por tu apoyo al webinar de IA con Harbour! :)

un abrazo]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277650#p277650 Thu, 13 Feb 2025 11:42:07 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277650#p277650
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277651#p277651
Lautaro wrote: Thu Feb 13, 2025 5:59 pm Hola

Una consulta : ¿ Existira el video grabado de la(s) sesiones del Curso Virtual ?

Gracias por su atencion,

Lautaro
Sí, grabaremos las sesiones! :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277651#p277651 Thu, 13 Feb 2025 11:43:07 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277651#p277651
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277653#p277653 Resumen general actualizado 13 feb 2025 2:49 pm hora de Colombia

:arrow: Costo: 50 Euros solo webinar
:arrow: Costo: 90 Euros con la ultima versión de FW 32, que incluye las clases TOpenAI, TDeepSeek y TOLlama
:arrow: Costo: 100 Euros con la ultima versión de FW 32 y 64, que incluye las clases TOpenAI, TDeepSeek y TOLlama
Numero sesiones: por definir
Modalidad: Virtual
Idioma: Español con traducción en ingles
Medio comunicación: skype
Zona horaria: Preferiblemente Latinoamérica
Fecha de inicio sugerida: 28 de febrero de 2025

Temario:
1. Inteligencia Artificial: Descripción, tipos y modelos a usar con Harbour y xHarbour.
2. Clases TOpenAI y TDeepSeek. Explicación y ejemplos de uso.
3. Clase TOLlama: Uso de Inteligencia artificial de forma privada en red local desde Harbour y xHarbour. Explicación y ejemplos de uso.
4. Agentes IA: Explicación y construcción de Agentes IA con Harbour y xHarbour.
5. Ajuste de modelos IA con datos propios: SFT y RL para uso privado.

En los modelos locales (uso privado de datos) revisaremos y haremos ejemplos con Phi4 de Microsoft, Llama Visión de Meta, Qwen de Alibaba y DeepSeek

Temas
1. En el curso veremos como usar chatgpt y deepseek desde nuestras aplicaciones en Harbour + FWH creando potentes "Agentes IA"
2. También veremos como usar ollama cuando los datos sean confidenciales y no puedan enviarse a la web
3. En general revisaremos las opciones existentes para que tengáis una visión actual del uso de la IA desde vuestras apps! :) Entenderéis que ha supuesto la revolución tecnológica de DeepSeek y las implicaciones técnicas que ha generado.
4. La funcionalidad para generar consultas SQL desde lenguaje natural
5. Capacitación para respuestas o cálculos tributarios o laborales.
6. Otros usos para generar valores predictivos desde un objetivo financieros deseables vs comparado con datos actuales.
7. Durante el webinar, Antonio, nos va a explicar como crear un asistente contable, que pueda ayudarnos con el ingreso de información en nuestras aplicaciones.

Participantes con pago webinar + actualización 32 y 64
1- Carlos Sincuir - Guatemala
2- Wuilmer Guerrero - Canadá
3- Enrique Vertiz Pitta - Perú
4- Juan Caro Saldivia - Chile
5- Alfredo Arteaga - México
6- Wilson Gamboa - Ecuador
7- Lautaro Moreira - Chile
8- Carlos Gelabert - España
9- Víctor Manuel Tomás Díaz - México

Participantes con pago webinar
1- Ralph del Castillo - Perú
2- Mauricio Arévalo - Colombia
3- Leandro Arévalo - Colombia
4- Ruben Dario Fernandez - Uruguay
5- Javier Parada - México

Participantes confirmados
Juan Navas - Venezuela]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277653#p277653 Thu, 13 Feb 2025 12:50:31 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277653#p277653
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Sebastián Almirón]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277664#p277664 ¿Tengo que esperar la confirmación de la inscripción para enviarle el pago a Antonio o lo envío ya?

Saludos
Sebastián]]>
no_email@example.com (Sebastián Almirón) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277664#p277664 Fri, 14 Feb 2025 03:31:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277664#p277664
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277665#p277665
En cuanto hagas el envio por PayPal a alinares@fivetechsoft.com quedas registrado :)

Muchas gracias por tu apoyo al webinar!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277665#p277665 Fri, 14 Feb 2025 03:40:54 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277665#p277665
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by cpheraclio]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277676#p277676
Usted envió €100.00 EUR a FiveTech Software S.L.

PARA FiveTech Software S.L.:
FiveWin 32 y 64 webinar

Detalles de la transacción
Id. de transacción: 0SD92040WE637574X
Fecha de la transacción: 14 de febrero de 2025
Fondos enviados €100.00 EUR]]>
no_email@example.com (cpheraclio) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277676#p277676 Fri, 14 Feb 2025 09:11:53 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277676#p277676
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277678#p277678
Muchas gracias por tu apoyo al webinar! :)

un abrazo]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277678#p277678 Fri, 14 Feb 2025 12:04:11 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277678#p277678
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277681#p277681 Resumen general actualizado 15 feb 2025 7:06 am hora de Colombia

:arrow: Costo: 50 Euros solo webinar
:arrow: Costo: 90 Euros con la ultima versión de FW 32, que incluye las clases TOpenAI, TDeepSeek y TOLlama
:arrow: Costo: 100 Euros con la ultima versión de FW 32 y 64, que incluye las clases TOpenAI, TDeepSeek y TOLlama
Numero sesiones: por definir
Modalidad: Virtual
Idioma: Español con traducción en ingles
Medio comunicación: skype
Zona horaria: Preferiblemente Latinoamérica
Fecha de inicio sugerida: 28 de febrero de 2025

Temario:
1. Inteligencia Artificial: Descripción, tipos y modelos a usar con Harbour y xHarbour.
2. Clases TOpenAI y TDeepSeek. Explicación y ejemplos de uso.
3. Clase TOLlama: Uso de Inteligencia artificial de forma privada en red local desde Harbour y xHarbour. Explicación y ejemplos de uso.
4. Agentes IA: Explicación y construcción de Agentes IA con Harbour y xHarbour.
5. Ajuste de modelos IA con datos propios: SFT y RL para uso privado.

En los modelos locales (uso privado de datos) revisaremos y haremos ejemplos con Phi4 de Microsoft, Llama Visión de Meta, Qwen de Alibaba y DeepSeek

Temas
1. En el curso veremos como usar chatgpt y deepseek desde nuestras aplicaciones en Harbour + FWH creando potentes "Agentes IA"
2. También veremos como usar ollama cuando los datos sean confidenciales y no puedan enviarse a la web
3. En general revisaremos las opciones existentes para que tengáis una visión actual del uso de la IA desde vuestras apps! :) Entenderéis que ha supuesto la revolución tecnológica de DeepSeek y las implicaciones técnicas que ha generado.
4. La funcionalidad para generar consultas SQL desde lenguaje natural
5. Capacitación para respuestas o cálculos tributarios o laborales.
6. Otros usos para generar valores predictivos desde un objetivo financieros deseables vs comparado con datos actuales.
7. Durante el webinar, Antonio, nos va a explicar como crear un asistente contable, que pueda ayudarnos con el ingreso de información en nuestras aplicaciones.

Participantes con pago webinar + actualización 32 y 64
1- Carlos Sincuir - Guatemala
2- Wuilmer Guerrero - Canadá
3- Enrique Vertiz Pitta - Perú
4- Juan Caro Saldivia - Chile
5- Alfredo Arteaga - México
6- Wilson Gamboa - Ecuador
7- Lautaro Moreira - Chile
8- Carlos Gelabert - España
9- Víctor Manuel Tomás Díaz - México
10- Ertan Hakan Ozturk - Turquía
11- Heraclio Cruz Pacheco - México
12- Manuel Aranda Rosales - España

Participantes con pago webinar
1- Ralph del Castillo - Perú
2- Mauricio Arévalo - Colombia
3- Leandro Arévalo - Colombia
4- Ruben Dario Fernandez - Uruguay
5- Javier Parada - México
6- Luis Gonzaga Krause - Canadá

Participantes confirmados
Juan Navas - Venezuela]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277681#p277681 Fri, 14 Feb 2025 12:15:18 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277681#p277681
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Sebastián Almirón]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277698#p277698 ID DE transación: 10R17877SY473770A]]> no_email@example.com (Sebastián Almirón) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277698#p277698 Sun, 16 Feb 2025 04:04:54 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277698#p277698 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277702#p277702
Muchas gracias por tu apoyo al webinar de IA con Harbour/xHarbour :)

un abrazo]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277702#p277702 Sun, 16 Feb 2025 11:01:13 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277702#p277702
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277703#p277703
Miércoles 26 y Jueves 27.

Os ruego vuestra confirmación y/ó comentarios

Gracias!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277703#p277703 Sun, 16 Feb 2025 13:16:49 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277703#p277703
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by leandro]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277704#p277704 Resumen general actualizado 18 feb 2025 12:00 pm hora de Colombia

:arrow: Costo: 50 Euros solo webinar
:arrow: Costo: 90 Euros con la ultima versión de FW 32, que incluye las clases TOpenAI, TDeepSeek y TOLlama
:arrow: Costo: 100 Euros con la ultima versión de FW 32 y 64, que incluye las clases TOpenAI, TDeepSeek y TOLlama
Numero sesiones: por definir
Modalidad: Virtual
Idioma: Español con traducción en ingles
Medio comunicación: skype
Zona horaria: Preferiblemente Latinoamérica
Fechas sugeridas webinar: 26 y 27 de febrero de 2025

Hora inicio capacitación por país
05:00 pm hora de España
01:00 pm hora de Argentina
01:00 pm hora de Chile
12:00 am hora de Bolivia
11:00 am hora de Colombia
11:00 am hora de Ecuador
11:00 am hora de Perú
10:00 am hora de Guatemala
10:00 am hora de México


Temario:
1. Inteligencia Artificial: Descripción, tipos y modelos a usar con Harbour y xHarbour.
2. Clases TOpenAI y TDeepSeek. Explicación y ejemplos de uso.
3. Clase TOLlama: Uso de Inteligencia artificial de forma privada en red local desde Harbour y xHarbour. Explicación y ejemplos de uso.
4. Agentes IA: Explicación y construcción de Agentes IA con Harbour y xHarbour.
5. Ajuste de modelos IA con datos propios: SFT y RL para uso privado.

En los modelos locales (uso privado de datos) revisaremos y haremos ejemplos con Phi4 de Microsoft, Llama Visión de Meta, Qwen de Alibaba y DeepSeek

Temas
1. En el curso veremos como usar chatgpt y deepseek desde nuestras aplicaciones en Harbour + FWH creando potentes "Agentes IA"
2. También veremos como usar ollama cuando los datos sean confidenciales y no puedan enviarse a la web
3. En general revisaremos las opciones existentes para que tengáis una visión actual del uso de la IA desde vuestras apps! :) Entenderéis que ha supuesto la revolución tecnológica de DeepSeek y las implicaciones técnicas que ha generado.
4. La funcionalidad para generar consultas SQL desde lenguaje natural
5. Capacitación para respuestas o cálculos tributarios o laborales.
6. Otros usos para generar valores predictivos desde un objetivo financieros deseables vs comparado con datos actuales.
7. Durante el webinar, Antonio, nos va a explicar como crear un asistente contable, que pueda ayudarnos con el ingreso de información en nuestras aplicaciones.

Participantes con pago webinar + actualización 32 y 64
1- Carlos Sincuir - Guatemala
2- Wuilmer Guerrero - Canadá
3- Enrique Vertiz Pitta - Perú
4- Juan Caro Saldivia - Chile
5- Alfredo Arteaga - México
6- Wilson Gamboa - Ecuador
7- Lautaro Moreira - Chile
8- Carlos Gelabert - España
9- Víctor Manuel Tomás Díaz - México
10- Ertan Hakan Ozturk - Turquía
11- Heraclio Cruz Pacheco - México
12- Manuel Aranda Rosales - España
13- Sebastián Almirón - España
14- O(scar) - México
15- Ralph del Castillo - Perú

Participantes con pago webinar
1- Mauricio Arévalo - Colombia
2- Leandro Arévalo - Colombia
3- Ruben Dario Fernandez - Uruguay
4- Javier Parada - México
5- Luis Gonzaga Krause - Canadá]]>
no_email@example.com (leandro) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277704#p277704 Sun, 16 Feb 2025 13:26:33 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277704#p277704
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277737#p277737
con antelación para enviarles la invitación a Skype por privado!

Miércoles dia 26 a las 17 horas de España :!:]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277737#p277737 Tue, 18 Feb 2025 10:32:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277737#p277737
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Compuin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277738#p277738
Antonio Linares wrote: Tue Feb 18, 2025 5:32 pm Necesitamos que los asistentes registrados al webinar proporcionen sus IDs en Skype :idea:
con antelación para enviarles la invitación a Skype por privado!

Miércoles dia 26 a las 17 horas de España :!:
Hola maestro, como lo envio pro mensaje privado?]]>
no_email@example.com (Compuin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277738#p277738 Tue, 18 Feb 2025 10:41:42 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277738#p277738
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277741#p277741 ]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277741#p277741 Tue, 18 Feb 2025 13:33:34 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277741#p277741 <![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Compuin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277742#p277742
Antonio Linares wrote: Tue Feb 18, 2025 8:33 pm Email ó whatsapp, gracias :)
Enviado al email. Gracias]]>
no_email@example.com (Compuin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277742#p277742 Tue, 18 Feb 2025 14:04:32 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277742#p277742
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277744#p277744
No lo he recibido. Si puedes envíame un mensaje por Skype, gracias!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277744#p277744 Wed, 19 Feb 2025 00:14:08 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277744#p277744
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277745#p277745
Por favor enviadme vuestro id en Skype ó directamente un mensaje por Skype, gracias! :!:]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277745#p277745 Wed, 19 Feb 2025 00:41:43 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277745#p277745
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Compuin]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277755#p277755
Antonio Linares wrote: Wed Feb 19, 2025 7:14 am Compuin,

No lo he recibido. Si puedes envíame un mensaje por Skype, gracias!
Enviado a Skype]]>
no_email@example.com (Compuin) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277755#p277755 Wed, 19 Feb 2025 06:08:13 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277755#p277755
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277758#p277758 antonio.fivetech@hotmail.com

gracias!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277758#p277758 Wed, 19 Feb 2025 07:26:32 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277758#p277758
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Curso virtual implementación IA en nuestras aplicaciones :: Reply by SergioC]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277764#p277764 Me presento: Mi nombre es Sergio Castellari, soy de Argentina.
Programo hace mas de 25 años, arranque con Clipper, miraba sin poder llegar a FiveWin en sus inicios.
Siento admiración por Antonio Linares, es INMENSO el aporte que ha hecho y hace al mundo Clipper (ahora Harbour).
Programo utilizando la GUI ooHG. No utilizo FiveWin aunque podría hacerlo en un futuro.
Quisiera saber si aun así, puedo hacer el Webinar ofrecido, o si es obligatorio conocer Fivewin para realizarlo.
En caso afirmativo de poder realizarlo, donde enviar los 50 euros y que pasos seguir.

Desde ya muchas gracias!
Saludos,
Sergio]]>
no_email@example.com (SergioC) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277764#p277764 Wed, 19 Feb 2025 12:11:13 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45373&p=277764#p277764
<![CDATA[FiveWin para Harbour/xHarbour :: Error al descomprimir Harbour_bcc770_64_20250216.zip :: Author Vikthor]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45436&p=277763#p277763
He descargado https://github.com/FiveTechSoft/harbour ... 250216.zip para comenzar a compilar con la versión más reciente de fivewin.

Sin embargo el zip no descomprime los archivos de la carpeta "..\bin\win\bcc64".

Ya desactive el firewall y el antivirus de mi equipo sin éxito.

¿ Alguna sugerencia ?]]>
no_email@example.com (Vikthor) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45436&p=277763#p277763 Wed, 19 Feb 2025 12:09:47 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45436&p=277763#p277763
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Error al descomprimir Harbour_bcc770_64_20250216.zip :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45436&p=277765#p277765
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45436&p=277765#p277765 Wed, 19 Feb 2025 13:11:03 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45436&p=277765#p277765
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Error al descomprimir Harbour_bcc770_64_20250216.zip :: Reply by karinha]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45436&p=277766#p277766

Code: Select all | Expand

Pasta(carpeta) de c:\LIXO\harbour_bcc770\bin\win\bcc64

6/02/2025  06:38    <DIR>          .
6/02/2025  06:38    <DIR>          ..
6/02/2025  06:30         1.180.160 harbour.exe
6/02/2025  06:34         1.447.424 hbformat.exe
6/02/2025  06:32         1.119.232 hbi18n.exe
6/02/2025  06:32         5.186.560 hbmk2.exe
6/02/2025  06:34         2.452.480 hbnetio.exe
6/02/2025  06:30           563.200 hbpp.exe
6/02/2025  06:34         5.751.808 hbrun.exe
6/02/2025  06:32         1.851.904 hbtest.exe
              8 arquivo(s)     19.552.768 bytes
Regards, saludos.]]>
no_email@example.com (karinha) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45436&p=277766#p277766 Wed, 19 Feb 2025 13:14:31 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45436&p=277766#p277766
<![CDATA[FiveWin para Harbour/xHarbour :: Re: Error al descomprimir Harbour_bcc770_64_20250216.zip :: Reply by Vikthor]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45436&p=277767#p277767
karinha wrote: Wed Feb 19, 2025 8:11 pm No detecté ningún problema con el archivo .zip. Utilice WINRAR.exe para descomprimirlo.

Regards, saludos.
El problema era la versión de Winzip. Instalé WinRar y no tuve problemas.
Gracias]]>
no_email@example.com (Vikthor) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45436&p=277767#p277767 Wed, 19 Feb 2025 15:00:23 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=6&t=45436&p=277767#p277767
<![CDATA[mod_harbour :: UT v2.0 - Proyecto Open Souce :: Author Carles]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=46&t=45344&p=277184#p277184
He publicado en el repositorio todos los fuentes del proyecto UT v.2.0 y queda liberado como proyecto MIT. Era el momento y algo que hacia mucho tiempo que queria hacer pero la cantidad de piezas a tocar y reorganizar me hacia aguantar el momento.

Un proyecto que no es una clase, una función o un simple código, sino una herramienta que te ayudará a trabajar la web de una manera fácil pero muy efectiva. Empezamos hace 5 años con mod_harbour en búsqueda de esa solución y todo cambiando, mutando, adaptándose,... Creo que mas de uno lo usará bien. :D

Queda libre para quien quiera aportar, modificar, rehacer, ...

https://carles9000.github.io/

Image]]>
no_email@example.com (Carles) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=46&t=45344&p=277184#p277184 Fri, 24 Jan 2025 10:05:11 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=46&t=45344&p=277184#p277184
<![CDATA[All products support :: Android program :: Author vinpug]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277227#p277227 Thank you.]]> no_email@example.com (vinpug) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277227#p277227 Mon, 27 Jan 2025 10:22:34 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277227#p277227 <![CDATA[All products support :: Re: Android program :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277238#p277238
https://carles9000.github.io/]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277238#p277238 Mon, 27 Jan 2025 23:54:19 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277238#p277238
<![CDATA[All products support :: Re: Android program :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277247#p277247
Antonio Linares wrote: Tue Jan 28, 2025 6:54 am Write a web app using UT from Charly:

https://carles9000.github.io/
Pero el servidor debería ser Windows, verdad?]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277247#p277247 Tue, 28 Jan 2025 09:59:17 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277247#p277247
<![CDATA[All products support :: Re: Android program :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277248#p277248
Charly ya ha liberado todos los fuentes, asi que es cuestión de construirlo para Linux ó Apple OSX :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277248#p277248 Tue, 28 Jan 2025 10:02:41 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277248#p277248
<![CDATA[All products support :: Re: Android program :: Reply by vinpug]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277268#p277268 También me gustaría saber si hay algún contacto aquí en Italia para el producto que indicas.
Gracias.]]>
no_email@example.com (vinpug) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277268#p277268 Wed, 29 Jan 2025 02:05:35 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277268#p277268
<![CDATA[All products support :: Re: Android program :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277280#p277280 no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277280#p277280 Wed, 29 Jan 2025 09:28:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277280#p277280 <![CDATA[All products support :: Re: Android program :: Reply by vinpug]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277294#p277294 no_email@example.com (vinpug) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277294#p277294 Thu, 30 Jan 2025 02:25:02 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277294#p277294 <![CDATA[All products support :: Re: Android program :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277306#p277306 carles9000@gmail.com]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277306#p277306 Thu, 30 Jan 2025 10:49:54 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277306#p277306 <![CDATA[All products support :: Re: Android program :: Reply by vinpug]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277375#p277375 no_email@example.com (vinpug) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277375#p277375 Sun, 02 Feb 2025 11:51:49 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45349&p=277375#p277375 <![CDATA[All products support :: FTP :: Author vinpug]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45386&p=277480#p277480 no_email@example.com (vinpug) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45386&p=277480#p277480 Fri, 07 Feb 2025 02:05:04 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45386&p=277480#p277480 <![CDATA[All products support :: Re: FTP :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45386&p=277500#p277500 viewtopic.php?p=257813#p257813]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45386&p=277500#p277500 Fri, 07 Feb 2025 21:26:22 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45386&p=277500#p277500 <![CDATA[All products support :: Invio posta elettronica (CDO) tramite server SMTP di gmail con il sistema di autenticazione oAuth2 :: Author mauri.menabue]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45398&p=277548#p277548 Avrei bisogno di una mano per poter inviare da una mia applicazione FiveWin 32 bit delle e-mail
mediante l'uso di uno o più server SMTP gmail con la recente autenticazione oAuth2.
Sul forum inglese Antonio risponde però il codice fornito è pseudo codice fornito da deepseek e non
ho l'esperienza necessaria per trasformarlo in codice utilizzabile in produzione.
Grazie a tutti Maurizio Menabue]]>
no_email@example.com (mauri.menabue) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45398&p=277548#p277548 Sun, 09 Feb 2025 05:53:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45398&p=277548#p277548
<![CDATA[All products support :: Re: Invio posta elettronica (CDO) tramite server SMTP di gmail con il sistema di autenticazione oAuth2 :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45398&p=277668#p277668 no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45398&p=277668#p277668 Fri, 14 Feb 2025 06:12:19 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45398&p=277668#p277668 <![CDATA[All products support :: Re: Invio posta elettronica (CDO) tramite server SMTP di gmail con il sistema di autenticazione oAuth2 :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45398&p=277669#p277669 no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45398&p=277669#p277669 Fri, 14 Feb 2025 06:26:26 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45398&p=277669#p277669 <![CDATA[All products support :: Ricarico costo prodotti :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45423&p=277695#p277695
praticamente nPercentuale:= (((nRicavo-nCosto)) / nCosto)*100

se il costo di un prodotto è 0.55 e voglio venderlo a 2.50 il calcolo da me creato in fwh fa 354,55 mentre dovrebbe fare 354,44 o così mi dicono che deve fare controllato anche on line su alcuni siti web

allora la mia domanda è semplice c'è qualcosa in fwh che arrotonda le cifre decimali ?]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45423&p=277695#p277695 Sat, 15 Feb 2025 16:19:34 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45423&p=277695#p277695
<![CDATA[All products support :: Re: Ricarico costo prodotti :: Reply by MarcoBoschi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45423&p=277697#p277697
dove hai trovato che deve fare 354,44? manda il link se sono calcoli online grazie]]>
no_email@example.com (MarcoBoschi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45423&p=277697#p277697 Sun, 16 Feb 2025 01:42:41 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45423&p=277697#p277697
<![CDATA[All products support :: Re: Ricarico costo prodotti :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45423&p=277700#p277700

e il sito è https://www.calcolopercentuale.it/calcolatore-ricarico/]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45423&p=277700#p277700 Sun, 16 Feb 2025 10:16:51 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45423&p=277700#p277700
<![CDATA[All products support :: carico moduli esterni :: Author Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45427&p=277708#p277708 Chiedo questo perchè rimordenizzando una vecchia procedura i file prg sono diventanti molti e grandi ed ogni volta per avere l'applicazione devo ricompilare tutti i file e le librerie , a me piacerebbe un sistema tipo il vecchio nostro clipper quando il Blinker acconsentiva di creare i file OVL]]> no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45427&p=277708#p277708 Mon, 17 Feb 2025 00:54:31 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45427&p=277708#p277708 <![CDATA[All products support :: Re: :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=10304&p=277735#p277735
pymsoft wrote: Wed Mar 12, 2008 1:00 pm Prova questa funzione:

Code: Select all | Expand

#define LOGPIXELSX         88

function DimFont()

   local hDC, nPixelX

   hDC     = CreateDC( "DISPLAY", "", "" )
   nPixelX = GetDeviceCaps( hDC, LOGPIXELSX )

   DeleteDC( hDC )

//   msginfo( nPixelX )

return nPixelX
scusa come potrei settare la grandezza dei font a seconda dello schermo

esempio

oFont := TFont():New( "TAHOMA", 0, 16,, )
oBold := TFont():New( "TAHOMA", 0, 14,,.t. )]]>
no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=10304&p=277735#p277735 Tue, 18 Feb 2025 06:42:34 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=10304&p=277735#p277735
<![CDATA[All products support :: Da forum inglese : Search someone help me :: Author mauri.menabue]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45431&p=277733#p277733 vorrei porti alcune domande prima di provare a darti una mano sempre che io sia in grado.
1) Perchè pensi che sia un vantaggio per l'utente vedere tutto quel movimento del browse
e dei campi di filtro ? Non sarebbe più semplice impostare qualcosa di simile a questo
STATICO in modo da non distrarre l'attenzione dell'utente semmai trovando qualcosa
per far capire che il browse è cambiato a causa del filtro impostato ?
0
------------------------------------------------------------------------------------------------------- 1
| |2
| Browse |3
| |4 Altezza iniziale 7
| |5
| |6
--------------------------------------------------------------------------------------------------------7
F I L T R O 8
Città __________________________________________ 9
Stato __________________________________________ 10
Stato civile Tutti _ Spostati _ Nubili _ 11
Età Da _____ A ______ 12
Salario Da __________________ A __________________ 13
14
--------------------------- 15
| Esegui filtro | 16
--------------------------- 17
18
Siccome hai detto che i vari campi di ricerca devono essere collegati fra loro dall'operatore
.AND. puoi risolvere il problema che l'utente potrebbe cercare legando fra loro : 'Città' e
'Salario' campi esattamente all'inizio e alla fine del tuo form di filtro.

LOCAL cCitta AS CHARACTER
LOCAL cStato AS CHARACTER
LOCAL aStACiv AS ARRAY
LOCAL nEtaDa AS NUMERIC
LOCAL nEtaA AS NUMERIC
LOCAL nStiDa AS NUMERIC
LOCAL nStiA AS NUMERIC
LOCAL cAlias AS CHARACTER

*-------------------------------------------------------------------------------------------------------------------------------
*- Valori di default
*-------------------------------------------------------------------------------------------------------------------------------

cCitta := space(80)
cStato := space(40)
aStaCiv := { padr("TUTTI", 20), padr("SPOSATI",20), padr("NUBILI",20) }
nEtaDa := 0
nEtaA := 999
nStiDa := 0
nStiA := 999999,99

*-------------------------------------------------------------------------------------------------------------------------------
*- Filtro
*-------------------------------------------------------------------------------------------------------------------------------

Es. upper(alltrim( POPOLAZIONE->POP_CITTA ) $ upper(alltrim( cCitta)) .and. ;
POPOLAZIONE->POP_SALARIO >= nStiDa .and. ;
POPOLAZIONE->POP_SALARIO <= nStiA

Per l'utente sarebbe scomodo prima selezionare città poi salario.

2) Se invece desideri proseguire con l'idea iniziale si potrebbe impostare l'altezza del browse
in funzione della scelta effettutata il modo che il browse copra / scopra i vari campi di filtro

0
------------------------------------------------------------------------------------------------------- 1 |Posizione iniziale Top Browse
| |2 |
| Browse |3 |
| |4 | Altezza iniziale browse : 7
| |5 |
| |6 |
--------------------------------------------------------------------------------------------------------7 |
8
Città __________________________________________ 9 |Posizione iniziale dell'area di filtro Top : 9
Stato __________________________________________ 10 |
Stato civile Tutti _ Spostati _ Nubili _ 11 |Altezza Area filtro iniziale : 5
Età Da _____ A ______ 12 |
Salario Da __________________ A __________________ 13 |
14
Città_ Stato_ Stato civile_ Età_ Salario_ Reset Filtro_ 15
16

L'altezza dell'area filtro = al numero di scelte di filtro effettuate.

Es. scelta filtro su : Salario, Stato, Età ---> Altezza area filtro = 3
Altezza area browse = Altezza area iniziale browse + Altezza area filtro = 7 + 3 = 10
Posizione top area filtro = Posizione Top browse + Altezza browse + 1 = 1 + 10 + 1 = 12

Fammi sapere
Saluti Maurizio Menabue]]>
no_email@example.com (mauri.menabue) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45431&p=277733#p277733 Tue, 18 Feb 2025 03:33:19 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45431&p=277733#p277733
<![CDATA[All products support :: Re: Da forum inglese : Search someone help me :: Reply by Silvio.Falconi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45431&p=277740#p277740 no_email@example.com (Silvio.Falconi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45431&p=277740#p277740 Tue, 18 Feb 2025 11:04:48 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=20&t=45431&p=277740#p277740 <![CDATA[WhatsNew / Novedades :: Re: xHarbour.org updated! :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277296#p277296
"This domain name registration has expired and renewal or deletion are pending. If you are the registrant and want to renew the domain name, please contact your registration service provider."

Anybody knows how to contact Patrick Mast?]]>
no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277296#p277296 Thu, 30 Jan 2025 07:10:32 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277296#p277296
<![CDATA[WhatsNew / Novedades :: Re: xHarbour.org updated! :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277304#p277304 patrick.Mast@WinFakt.com

email sent :)]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277304#p277304 Thu, 30 Jan 2025 10:46:05 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277304#p277304
<![CDATA[WhatsNew / Novedades :: Re: xHarbour.org updated! :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277311#p277311 no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277311#p277311 Thu, 30 Jan 2025 11:57:13 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277311#p277311 <![CDATA[WhatsNew / Novedades :: Re: xHarbour.org updated! :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277347#p277347 ]]> no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277347#p277347 Fri, 31 Jan 2025 11:59:02 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277347#p277347 <![CDATA[WhatsNew / Novedades :: Re: xHarbour.org updated! :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277350#p277350 https://xharbour.org/]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277350#p277350 Fri, 31 Jan 2025 13:38:54 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277350#p277350 <![CDATA[WhatsNew / Novedades :: Re: xHarbour.org updated! :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277563#p277563 no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277563#p277563 Mon, 10 Feb 2025 02:44:18 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277563#p277563 <![CDATA[WhatsNew / Novedades :: Re: xHarbour.org updated! :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277568#p277568
https://github.com/FiveTechSoft/harbour ... our_builds]]>
no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277568#p277568 Mon, 10 Feb 2025 09:25:20 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=33542&p=277568#p277568
<![CDATA[WhatsNew / Novedades :: Re: Latest Harbour and xHarbour builds :: Reply by Enrico Maria Giordano]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=43878&p=277699#p277699
https://github.com/FiveTechSoft/harbour ... our_builds]]>
no_email@example.com (Enrico Maria Giordano) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=43878&p=277699#p277699 Sun, 16 Feb 2025 04:55:20 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=43878&p=277699#p277699
<![CDATA[WhatsNew / Novedades :: Re: Latest Harbour and xHarbour builds :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=43878&p=277701#p277701
Many thanks!]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=43878&p=277701#p277701 Sun, 16 Feb 2025 10:59:50 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=43878&p=277701#p277701
<![CDATA[WhatsNew / Novedades :: New FTDN January/Enero 2025 (FWH 25.01) :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=45432&p=277746#p277746 =====================================

* New: FWH for xHarbour64 and MSVC64 is already available. Please review
samples\buildxh64.bat. Please keep in mind that the used FiveHC64.lib is
the same one as used by Harbour 64 and MSVC64 for simplicity.

* Enhancement: warnings removed from samples\olebrow.prg

* New: samples\fastreport\main.prg shows FastReport with CreateObject + events.

* New: samples\qrcode2.prg new example for creting QR codes.

* fix: Toolbar.prg: accented chars are not displayed
properly in tooltips (from 2310) fixed.

* Enhanced multi-monitor support:
ACTIVATE WINDOW/DIALOG [CENTERED] IN onMonitor
onMontior can be number of the monitor or monitor object.

* Enhanced: While defining BUTTONBAR in a dialog
clauses TOP/LEFT/BOTTO/RIGHT work now.

* New: Class TRating and samples\testrat1.prg, samples\testrat2.prg and samples\testrat3.prg
A very nice class created by Silvio Falconi!

* New: samples\webchart2.prg shows how to use Class TWebView2 to display a Google bars chart.

* Fix: FWMariaConnection CreateTable(): Fixed runtime error (due
to a bug introduced in 24.04) when the structure contains a
field type "=" (current timestamp)

* New: Class TOpenAI with Vision API support. Please review samples/openai1.prg and openai2.prg

* Enhancement: function SourceEdit( @cSource ) behaves as modal when there is no a defined main
window.

* Enhancement: function Execute() uses TRY CATCH END now.

* New: Class TDeepSeek and samples/deepseek1.prg. AI DeepSeek is as powerfull as OpenAI
and much cheaper.

* New: samples/agentdb.prg shows how to create an AI Agent using SQL that allows us to talk
to any database using natural language!

* Fix: TWebView2.prg: Fix to method End() by setting ::hWebView to nil instead
of 0 to avoid run time error when creating a new TWebView2() instance after
ending an instance.

* Fix: XBrowse: Flickering due to repainting row when single click on the same
active cell. fixed

* New: Class TOllama to use any LLM locally. Please review samples\ollama1.prg,
samples\ollama2.prg, samples\ollama3.prg, samples\ollama4.prg and samples\ollama5.prg

To start the local ollama server, after installing ollama please do:
ollama run phi4

* dialog.prg: Fixed issues of painting checkbox on themed and
transparent dialogs.
viewtopic.php?t=45368

* New: Class TGemini to use Google AI Gemini from our Harbour/xHarbour apps.
Please review samples\gemini1.prg, gemini2.prg, gemini3.prg

* New: Agents AI examples. Please review samples\buildit.prg, samples\agentdb.prg and
samples\agentdoc2.prg]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=45432&p=277746#p277746 Wed, 19 Feb 2025 01:08:39 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=16&t=45432&p=277746#p277746
<![CDATA[Utilities / Utilidades :: Active Topics option is working !!! :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=17&t=45332&p=277092#p277092
Working fine:
https://forums.fivetechsupport.com/sear ... ive_topics]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=17&t=45332&p=277092#p277092 Tue, 21 Jan 2025 05:51:08 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=17&t=45332&p=277092#p277092
<![CDATA[Utilities / Utilidades :: Re: Active Topics option is working !!! :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=17&t=45332&p=277093#p277093
Esta es la mejor manera de comprobar de que se está hablando en estos foros:

Image]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=17&t=45332&p=277093#p277093 Tue, 21 Jan 2025 06:02:30 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=17&t=45332&p=277093#p277093
<![CDATA[Utilities / Utilidades :: Re: Active Topics option is working !!! :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=17&t=45332&p=277095#p277095
También los cookies se han arreglado, por lo que ahora no deberiais ser logeados fuera de los foros. Por favor observad esto y comentar.]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=17&t=45332&p=277095#p277095 Tue, 21 Jan 2025 06:14:09 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=17&t=45332&p=277095#p277095
<![CDATA[Utilities / Utilidades :: Re: Active Topics option is working !!! :: Reply by hua]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=17&t=45332&p=277109#p277109 I don't know if anyone is still using RSS to monitor forum's posts]]> no_email@example.com (hua) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=17&t=45332&p=277109#p277109 Tue, 21 Jan 2025 21:03:15 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=17&t=45332&p=277109#p277109 <![CDATA[Utilities / Utilidades :: Re: Active Topics option is working !!! :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=17&t=45332&p=277114#p277114
Already implemented! :)
Image]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=17&t=45332&p=277114#p277114 Wed, 22 Jan 2025 03:22:53 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=17&t=45332&p=277114#p277114
<![CDATA[Utilities / Utilidades :: Re: Active Topics option is working !!! :: Reply by hua]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=17&t=45332&p=277172#p277172 no_email@example.com (hua) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=17&t=45332&p=277172#p277172 Thu, 23 Jan 2025 21:16:20 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=17&t=45332&p=277172#p277172 <![CDATA[Off Topic / Otros temas :: VERIFACTU, criterios, dudas 07/02/2025 :: Reply by FiveWiDi]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45082&p=277474#p277474
Necesito opiniones al respecto de cuando se debe anular un registro Verifactu. En que situaciones está justificado. Que criterios se deben seguir. Que entienden Ustedes que Hacienda acepta como 'normal/aceptable' el anular un registro Verifactu. Y si se anula el registro, se puede reutilizar el número de factura?

¿Me echan una mano?

Muchas gracias,]]>
no_email@example.com (FiveWiDi) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45082&p=277474#p277474 Thu, 06 Feb 2025 16:18:25 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45082&p=277474#p277474
<![CDATA[Off Topic / Otros temas :: Possible using AI to manipulate data in dbf? :: Author hua]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45384&p=277475#p277475 So we can say "list me records where the date is such and such" or "delete record in a.dbf where field customer is not found in b.dbf"

It's just a thought that crosses my mind while writing a data patching routine :)]]>
no_email@example.com (hua) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45384&p=277475#p277475 Thu, 06 Feb 2025 20:35:35 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45384&p=277475#p277475
<![CDATA[Off Topic / Otros temas :: Re: Possible using AI to manipulate data in dbf? :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45384&p=277478#p277478
We will review this in the webinar we have announced:

viewtopic.php?p=277473#p277473]]>
no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45384&p=277478#p277478 Thu, 06 Feb 2025 23:55:46 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=19&t=45384&p=277478#p277478
<![CDATA[Artificial Intelligence :: Aprendizaje por Refuerzo :: Author VikthorThomas]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=38&t=45414&p=277649#p277649
Además del aprendizaje supervisado y no supervisado hay otro tipo de aprendizaje llamado "Aprendizaje por Refuerzo". ( RL - Por sus siglas en inglés , Reinforcement Learning ).

El objetivo de RL es obtener conocimiento en el tiempo mediante la prueba y el error. Al día de hoy hay muchos algoritmos que aplican RL para resolver problemás que involucren aprendizaje.

Les dejo el siguiente enlace https://web.stanford.edu/class/psych209 ... k2ndEd.pdf del libro "Reinforcement Learning: An introduction" de Sutton y Barto.]]>
no_email@example.com (VikthorThomas) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=38&t=45414&p=277649#p277649 Thu, 13 Feb 2025 11:38:45 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=38&t=45414&p=277649#p277649
<![CDATA[Artificial Intelligence :: Re: Aprendizaje por Refuerzo :: Reply by ramirezosvaldo2]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=38&t=45414&p=277673#p277673 no_email@example.com (ramirezosvaldo2) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=38&t=45414&p=277673#p277673 Fri, 14 Feb 2025 08:52:22 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=38&t=45414&p=277673#p277673 <![CDATA[Artificial Intelligence :: Re: Aprendizaje por Refuerzo :: Reply by Vikthor]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=38&t=45414&p=277685#p277685 ]]> no_email@example.com (Vikthor) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=38&t=45414&p=277685#p277685 Fri, 14 Feb 2025 15:13:22 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=38&t=45414&p=277685#p277685 <![CDATA[Artificial Intelligence :: Re: Aprendizaje por Refuerzo :: Reply by Vikthor]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=38&t=45414&p=277686#p277686
  • Aston Zhang et al. Dive into Deep Learning, 2021
    https://d2l.ai/index.html
  • ]]>
    no_email@example.com (Vikthor) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=38&t=45414&p=277686#p277686 Fri, 14 Feb 2025 15:12:43 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=38&t=45414&p=277686#p277686
    <![CDATA[Artificial Intelligence examples :: Ollama + vision :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45383&p=277466#p277466 https://ollama.com/blog/llama3.2-vision
    ollama run llama3.2-vision

    Code: Select all | Expand

    // Vision example
    
    #include "FiveWin.ch"
    
    function Main()
    
        local oChat := TOLlama():New( "llama3.2-vision" )
    
        oChat:SendImage( "c:/fwh/bitmaps/pngs/pan_setting.png" )
        fw_memoEdit( oChat:GetValue() )
    
        oChat:End()
    
    return nil  
    ]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45383&p=277466#p277466 Thu, 06 Feb 2025 04:27:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45383&p=277466#p277466
    <![CDATA[Artificial Intelligence examples :: Re: Ollama + vision :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45383&p=277479#p277479
    Image]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45383&p=277479#p277479 Fri, 07 Feb 2025 00:37:49 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45383&p=277479#p277479
    <![CDATA[Artificial Intelligence examples :: Class TGemini to use Google Gemini AI :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45412&p=277636#p277636

    Code: Select all | Expand

    // Get your API key from https://aistudio.google.com
    
    #include "FiveWin.ch"
    #include "c:\harbour\contrib\hbcurl\hbcurl.ch"
    
    //----------------------------------------------------------------------------//
    
    CLASS TGemini
        
        DATA   cKey   INIT ""
        DATA   cModel INIT "gemini-2.0-flash"
        DATA   cResponse
        DATA   cUrl
        DATA   hCurl
        DATA   nError INIT 0
        DATA   nHttpCode INIT 0
        DATA   nTemperature INIT 0
    
        METHOD New( cKey, cModel )
        METHOD Send( cPrompt )    
        METHOD End()    
        METHOD GetValue()    
    
    ENDCLASS        
    
    //----------------------------------------------------------------------------//
    
    METHOD New( cKey, cModel ) CLASS TGemini
    
        if Empty( cKey )
           ::cKey = GetEnv( "GEMINI_API_KEY" )
        else
           ::cKey = cKey   
        endif
    
        if ! Empty( cModel )
           ::cModel = cModel
        endif
        
        ::cUrl = "https://generativelanguage.googleapis.com/v1beta/models"
        ::hCurl = curl_easy_init()
        
    return Self    
    
    //----------------------------------------------------------------------------//
    
    METHOD End() CLASS TGemini
    
        curl_easy_cleanup( ::hCurl )
        ::hCurl = nil
    
    return nil    
    
    //----------------------------------------------------------------------------//
    
    METHOD GetValue() CLASS TGemini
    
       local uValue := hb_jsonDecode( ::cResponse )
    
       TRY 
          uValue = uValue[ "candidates" ][ 1 ][ "content" ][ "parts" ][ 1 ][ "text" ]
       CATCH
          uValue = uValue[ "error" ][ "message" ]
       END   
    
    return uValue
    
    //----------------------------------------------------------------------------//
    
    METHOD Send( cPrompt ) CLASS TGemini 
    
       local aHeaders, cJson, hRequest, hContents := { => }, hGenerationConfig
    
       curl_easy_setopt( ::hCurl, HB_CURLOPT_POST, .T. )
       curl_easy_setopt( ::hCurl, HB_CURLOPT_URL, ::cUrl + "/" + ::cModel + ":generateContent?key=" + ::cKey )
    
       aHeaders := { "Content-Type: application/json" }
    
       curl_easy_setopt( ::hCurl, HB_CURLOPT_HTTPHEADER, aHeaders )
       curl_easy_setopt( ::hCurl, HB_CURLOPT_USERNAME, "" )
       curl_easy_setopt( ::hCurl, HB_CURLOPT_DL_BUFF_SETUP )
       curl_easy_setopt( ::hCurl, HB_CURLOPT_SSL_VERIFYPEER, .F. )
    
       hContents[ "role" ]  = "user"
       hContents[ "parts" ] = { { "text" => cPrompt } }
       hGenerationConfig = { "temperature" => ::nTemperature,;
                             "topK" => 40, "topP" => 0.95, "maxOutputTokens" => 8192,;
                             "responseMimeType" => "text/plain" }  
       hRequest = { "contents" => hContents, "generationConfig" => hGenerationConfig }
    
       cJson = hb_jsonEncode( hRequest )
       curl_easy_setopt( ::hCurl, HB_CURLOPT_POSTFIELDS, cJson )
       ::nError = curl_easy_perform( ::hCurl )
       curl_easy_getinfo( ::hCurl, HB_CURLINFO_RESPONSE_CODE, @::nHttpCode )
    
       if ::nError == HB_CURLE_OK
          ::cResponse = curl_easy_dl_buff_get( ::hCurl )
       else
          ::cResponse := "Error code " + Str( ::nError )
       endif
        
    return ::cResponse
    
    //----------------------------------------------------------------------------//
    gemini1.prg

    Code: Select all | Expand

    // Get your API key from https://aistudio.google.com
    // from cmd: set GEMINI_API_KEY=your_api_key
    
    #include "FiveWin.ch"
    
    //----------------------------------------------------------------------------//
    
    function Main()
    
       local oChat := TGemini():New()
    
       oChat:Send( "cuantas 'r's hay en 'strawberry' ?" )
       ? oChat:GetValue() 
    
       oChat:End()
    
    return nil   
    
    //----------------------------------------------------------------------------//
    ]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45412&p=277636#p277636 Thu, 13 Feb 2025 01:34:32 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45412&p=277636#p277636
    <![CDATA[Artificial Intelligence examples :: Re: Class TGemini to use Google Gemini AI :: Reply by quim_]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45412&p=277709#p277709
    Qué forma tan sencilla y bonita de conectar nuestro 'pequeño' mundo harbour con la IA, almenos esta IA convesacional

    Despues de algunos problemas con CURL, instalando la ultima version proporcionada por Enrico Maria Giordano (Grazie mille!) he compilado sin más problemas

    Veo que a la pregunta : cuantas 'r's hay en 'strawberry' ? contesta que sólo 1, supongo que rr se considera un token aparte

    Ahora toca investigar un poco lo que ofrece la API, he visto que se pueden subir archivos de video o PDF y mantener un chat 'razonable'

    Gracias de nuevo !]]>
    no_email@example.com (quim_) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45412&p=277709#p277709 Mon, 17 Feb 2025 03:22:46 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45412&p=277709#p277709
    <![CDATA[Artificial Intelligence examples :: Re: Class TGemini to use Google Gemini AI :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45412&p=277710#p277710
    Disponemos ya de una Clase TGemini actualizada que permite enviar imágenes y PDFs. Ahora estamos generalizándola para que admita muchos mas tipos de ficheros, incluidos videos.

    Además le falta el ir reportando token a token, algo que ya tenemos en las Clases TOpenAI, TDeepSeek y TOllama, para que el usuario vea como se va escribiendo la salida poco a poco.

    Todo esto lo veremos en el webinar de IA con Harbour/xHarbour los dias 26 y 27 de este mismo mes de Febrero :)]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45412&p=277710#p277710 Mon, 17 Feb 2025 04:01:09 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45412&p=277710#p277710
    <![CDATA[Artificial Intelligence examples :: Re: Class TGemini to use Google Gemini AI :: Reply by quim_]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45412&p=277711#p277711
    Veo si puedo tener el tiempo y la tranquilidad para poder asistir al evento, seguiré el hilo creado a tal efecto

    Mis primeras pruebas con esta IA, parece que no guarda el contexto ( o no sé como decirle que lo guarde)


    > Conoces el lenguaje de programacion harbour ?

    Code: Select all | Expand

    Sí, conozco Harbour.  Es un lenguaje de programación de propósito general, un dialecto de xBase,  que es compatible con la mayoría del código Clipper.  Se caracteriza por ser:
    
    * **Open source:**  Su código fuente está disponible públicamente.
    * **Multiplataforma:**  Puede compilarse para diferentes sistemas operativos, incluyendo Windows, Linux, macOS y otros.
    * **Orientado a bases de datos:**  Aunque puede usarse para otras tareas, su fortaleza reside en el desarrollo de aplicaciones que interactúan con bases de datos, especialmente aquellas compatibles con el formato DBF (dBase).
    * **Compilado:**  A diferencia de lenguajes interpretados, Harbour genera código ejecutable, lo que resulta en aplicaciones más rápidas.
    * **Compatible con Clipper:**  Gran parte del código escrito en Clipper puede ser compilado con Harbour con mínimas o ninguna modificación.  Esto facilita la migración de aplicaciones antiguas.
    
    Sin embargo, es importante destacar que Harbour no es tan popular como otros lenguajes de programación modernos.  Su comunidad es más pequeña y la documentación puede ser menos extensa que la de lenguajes como Java, Python o C#.  Su uso se centra principalmente en la migración y mantenimiento de aplicaciones legacy basadas en xBase.
    
    > Un ejemplo en codigo ?

    Code: Select all | Expand

    Para darte un ejemplo de código, necesito saber qué tipo de código quieres.  Por favor, especifica:
    
    * **Lenguaje de programación:** (ej. Python, JavaScript, C++, Java, etc.)
    * **Propósito del código:** ¿Qué debería hacer el código? (ej. calcular el factorial de un número, imprimir "Hola, mundo!", leer un archivo, etc.)
    * **Nivel de complejidad:** ¿Algo simple o algo más avanzado?
    
    Una vez que me des esta información, podré proporcionarte un ejemplo de código relevante.
    
    
    ]]>
    no_email@example.com (quim_) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45412&p=277711#p277711 Mon, 17 Feb 2025 05:33:05 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45412&p=277711#p277711
    <![CDATA[Artificial Intelligence examples :: Re: Class TGemini to use Google Gemini AI :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45412&p=277718#p277718 ]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45412&p=277718#p277718 Mon, 17 Feb 2025 07:07:59 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=40&t=45412&p=277718#p277718 <![CDATA[latest AI news :: Using DeepSeek-R1 locally from WebView :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45342&p=277181#p277181 https://huggingface.co/spaces/webml-com ... -r1-webgpu

    Image]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45342&p=277181#p277181 Fri, 24 Jan 2025 06:44:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45342&p=277181#p277181
    <![CDATA[latest AI news :: Re: Using DeepSeek-R1 locally from WebView :: Reply by Jimmy]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45342&p=277220#p277220
    i wanted to look at it and use Firefox Browser and got : "WebGPU is not supported
    by this browser :("
    does it only work using EDGE/WEBVIEW ?]]>
    no_email@example.com (Jimmy) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45342&p=277220#p277220 Mon, 27 Jan 2025 03:24:26 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45342&p=277220#p277220
    <![CDATA[latest AI news :: Re: Using DeepSeek-R1 locally from WebView :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45342&p=277222#p277222
    Hardware is the limitation, not the browser. Please try it from another computer.

    Anyhow you can use FiveTech's Class TDeepSeek which works really well :)]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45342&p=277222#p277222 Mon, 27 Jan 2025 04:47:25 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45342&p=277222#p277222
    <![CDATA[latest AI news :: DeepSeek "Janus Pro" :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45360&p=277327#p277327 https://huggingface.co/spaces/deepseek-ai/Janus-Pro-7B

    https://codersera.com/blog/run-deepseek ... -mac-guide]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45360&p=277327#p277327 Thu, 30 Jan 2025 22:27:28 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45360&p=277327#p277327
    <![CDATA[latest AI news :: Alternative DeepSeek-R1 website :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45367&p=277354#p277354 https://github.com/marketplace/models/a ... eepSeek-R1]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45367&p=277354#p277354 Fri, 31 Jan 2025 15:24:16 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45367&p=277354#p277354 <![CDATA[latest AI news :: ollama increasing the context window :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45361&p=277328#p277328
    ollama run deepseek-r1:32b
    /set parameter num_ctx 8192
    /save deepseek-r1:32b-8k
    ollama serve]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45361&p=277328#p277328 Thu, 30 Jan 2025 23:20:09 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45361&p=277328#p277328
    <![CDATA[latest AI news :: Re: ollama increasing the context window :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45361&p=277358#p277358
    localhost:11434

    and you will get:

    "Ollama is running"]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45361&p=277358#p277358 Sat, 01 Feb 2025 04:02:12 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45361&p=277358#p277358
    <![CDATA[latest AI news :: Re: ollama increasing the context window :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45361&p=277359#p277359
    launchctl setenv OLLAMA_HOST "0.0.0.0"

    and restart the ollama

    Our good friend Lailton is testing from his Mac M1 Pro :D]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45361&p=277359#p277359 Sat, 01 Feb 2025 04:09:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45361&p=277359#p277359
    <![CDATA[latest AI news :: SFT (supervised fine tunning) vs RL (reinforcement learning) :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45375&p=277409#p277409 SFT) y el Reinforcement Learning (RL) son dos enfoques clave para entrenar modelos de lenguaje (LLMs) como ChatGPT, pero tienen diferencias fundamentales en su filosofía, implementación y resultados.

    1. Supervised Fine-Tuning (SFT)
    Qué es:
    Aprendizaje supervisado clásico: Entrenas al modelo con ejemplos de entrada-salida etiquetados, donde un humano proporciona respuestas "ideales" para cada prompt.

    Objetivo: Hacer que el modelo imite el comportamiento humano demostrado en los datos de entrenamiento.

    Cómo funciona:
    Dataset: Pares de (prompt, respuesta ideal).

    Entrenamiento: Minimizar la pérdida (p. ej., entropía cruzada) entre las respuestas del modelo y las respuestas humanas.

    Ventajas:
    Simplicidad: Fácil de implementar con frameworks estándar (como PyTorch).

    Control directo: El modelo sigue fielmente los ejemplos proporcionados.

    Estabilidad: Menos riesgo de comportamientos impredecibles.

    Limitaciones:
    Dependencia de datos: Requiere un dataset grande y de alta calidad.

    Rigidez: No optimiza para métricas complejas (p. ej., creatividad, seguridad).

    Sesgo humano: Reproduce los sesgos o errores presentes en los datos de entrenamiento.

    Ejemplo: Entrenar un modelo para escribir poemas usando un dataset de poemas escritos por humanos.
    Reinforcement Learning (RL)
    Qué es:
    Aprendizaje por retroalimentación: El modelo interactúa con un entorno y recibe recompensas (o penalizaciones) por sus acciones.

    Objetivo: Maximizar una función de recompensa (no solo imitar datos).

    Cómo funciona (RLHF - RL from Human Feedback):
    Reward Model: Un modelo secundario que puntúa respuestas (entrenado con preferencias humanas).

    Optimización: El modelo principal genera respuestas y ajusta sus parámetros para maximizar la recompensa esperada.

    Ventajas:
    Flexibilidad: Optimiza para objetivos complejos (p. ej., "ser útil, honesto e inofensivo").

    Adaptabilidad: Aprende a navegar trade-offs (p. ej., entre creatividad y precisión).

    Mejora iterativa: Puede superar el rendimiento humano en ciertas métricas.

    Limitaciones:
    Complejidad: Requiere diseñar una función de recompensa robusta (evitar reward hacking).

    Inestabilidad: El entrenamiento puede divergir si las recompensas están mal calibradas.

    Coste computacional: Mucho más intensivo que el SFT.

    Ejemplo: Refinar un modelo para que evite respuestas tóxicas, usando recompensas basadas en un detector de toxicidad.
    Diferencias Clave
    | **Aspecto** | **SFT** | **RL** |
    |---------------------------|--------------------------------------|--------------------------------------|
    | **Tipo de aprendizaje** | Imitación (dataset estático) | Maximización de recompensas (dinámico) |
    | **Datos requeridos** | Pares (input, output ideal) | Función de recompensa + interacciones |
    | **Objetivo** | Reproducir respuestas humanas | Optimizar métricas abstractas |
    | **Flexibilidad** | Limitada a datos de entrenamiento | Puede explorar soluciones novedosas |
    | **Riesgo de sesgo** | Alto (depende del dataset) | Moderado (depende de la recompensa) |
    ¿Cuándo usar cada uno?
    SFT:

    Cuando tienes un dataset de alta calidad y quieres un modelo predecible.

    Para tareas estructuradas (p. ej., traducción, resumen).

    Como paso inicial antes de aplicar RL.

    RL:

    Cuando el objetivo es complejo y no se puede capturar en un dataset estático.

    Para alinear el modelo con valores subjetivos (p. ej., ética, estilo).

    En escenarios donde las preferencias humanas son dinámicas (p. ej., asistente personalizado).
    Casos de éxito combinados (SFT + RL)
    Los LLMs de última generación (como ChatGPT) usan ambos métodos secuencialmente:

    SFT: Entrenamiento inicial con datos humanos.

    RLHF: Ajuste fino con recompensas para refinar el comportamiento.

    Ejemplo:

    SFT entrena al modelo para responder preguntas de forma coherente.

    RL lo ajusta para evitar alucinaciones o respuestas dañinas.
    Conclusión
    SFT es como enseñar a un estudiante con un libro de texto: sigue instrucciones al pie de la letra.

    RL es como entrenar a un atleta con un coach: mejora iterativamente basándose en feedback.

    ¡La combinación de ambos permite modelos potentes y alineados con los valores humanos!
    ]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45375&p=277409#p277409 Mon, 03 Feb 2025 23:29:23 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45375&p=277409#p277409
    <![CDATA[latest AI news :: Re: SFT (supervised fine tunning) vs RL (reinforcement learning) :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45375&p=277436#p277436 SFT)

    Le llevas a jugar muchos partidos (RL)

    llega un momento en donde se hace un fiera jugando al futbol :D]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45375&p=277436#p277436 Tue, 04 Feb 2025 23:25:49 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45375&p=277436#p277436
    <![CDATA[latest AI news :: DeepSeek facts :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45388&p=277484#p277484
    1. **DeepSeek: Una revolución en la IA**
    - DeepSeek es una IA desarrollada en China que es más barata, eficiente y de mejor calidad que los modelos de OpenAI.
    - Su costo de desarrollo fue de $6 millones, frente a los $3 mil millones anuales de OpenAI en entrenamiento y $13 mil millones de inversión de Microsoft.
    - Usar DeepSeek es 96% más barato que OpenAI, y está disponible de forma gratuita.
    - A pesar de esto, supera en pruebas de rendimiento a los modelos de OpenAI.

    2. **Innovación impulsada por restricciones**
    - La falta de acceso a GPUs avanzados debido a restricciones de EE.UU. obligó a DeepSeek a desarrollar su modelo con GPUs más baratas, diseñadas para videojuegos.
    - Esto los llevó a ser más eficientes, creando un modelo 38% más pequeño que ChatGPT-4.

    3. **Arquitectura única de DeepSeek**
    - DeepSeek usa una arquitectura de "mezcla de expertos", dividiendo la IA en modelos especializados que son activados según el tipo de consulta.
    - Este enfoque reduce costos y aumenta la eficiencia, aunque en teoría debería limitar su versatilidad, algo que no se observa en la práctica.

    4. **Modelo abierto vs. cerrado**
    - DeepSeek es de código abierto, lo que permite una colaboración centrada en casos de uso específicos.
    - En contraste, los modelos de código cerrado de Occidente buscan justificar inversiones gigantescas y priorizan el control propietario sobre la utilidad.

    5. **Crítica al modelo económico occidental**
    - El éxito de DeepSeek expone fallos del capitalismo tardío en Occidente, donde la economía está desconectada de la realidad y se privilegia a los inversores sobre la innovación genuina.
    - OpenAI, originalmente open-source, se volvió cerrado para atraer inversión y alimentar narrativas falsas sobre el potencial de la IA.
    - Las restricciones de GPUs a China no buscaban ventaja tecnológica, sino proteger inversiones y el dominio estadounidense en el sector.

    6. **Implicaciones económicas y sociales**
    - El lanzamiento de DeepSeek hizo caer $1 billón en el mercado de valores estadounidense, mostrando que la burbuja económica basada en IA está inflada artificialmente.
    - Este fenómeno refleja un problema económico más amplio en Occidente, donde se prioriza enriquecer al 1% a expensas de la clase media y la innovación real.

    7. **Conclusión**
    - Aunque DeepSeek no ha revolucionado técnicamente la IA, su modelo expone problemas fundamentales en el enfoque de Occidente hacia la tecnología y la economía.
    - Es un llamado de atención para revaluar el camino actual y volver a un modelo económico más realista y justo.
    ]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45388&p=277484#p277484 Fri, 07 Feb 2025 03:08:17 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45388&p=277484#p277484
    <![CDATA[latest AI news :: Ollama Modelfile :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45394&p=277516#p277516 https://www.gpu-mart.com/blog/custom-ll ... -modelfile

    ollama show llama2:latest --modelfile

    ollama show llama2:latest --modelfile > myllama2.modelfile

    Use any text or code editing tool,open and modify the system prompt and template in the model file to suit your preferences or requirements:

    PARAMETER temperature 1
    PARAMETER num_ctx 4096
    SYSTEM """You are Mario from super mario bros acting as an assistant"""

    ollama create myllama2 --file myllama2.modelfile

    ollama list]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45394&p=277516#p277516 Sat, 08 Feb 2025 10:11:02 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45394&p=277516#p277516
    <![CDATA[latest AI news :: Re: Ollama Modelfile :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45394&p=277536#p277536 model = model.merge_and_unload() # Unir LoRA al modelo base
    model.save_pretrained("merged_model") # Guardar modelo fusionado
    tokenizer.save_pretrained("merged_model")

    # Requiere llama.cpp instalado
    python3 llama.cpp/convert-hf-to-gguf.py merged_model/ \
    --outtype f16 \
    --outfile qwen2.5-3b-instruct-merged.gguf

    Modelfile

    Code: Select all | Expand

    FROM ./qwen2.5-3b-instruct-merged.gguf
    PARAMETER temperature 0.8
    PARAMETER num_ctx 1024
    ollama create my-model -f Modelfile
    ollama run my-model]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45394&p=277536#p277536 Sat, 08 Feb 2025 14:42:55 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45394&p=277536#p277536
    <![CDATA[latest AI news :: reproduced DeepSeek R1-Zero for < $30 !!! :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277377#p277377 https://x.com/jiayi_pirate/status/1882839370505621655

    https://huggingface.co/datasets/Jiayi-P ... Tasks-3to4

    https://t.co/UcGKN2SVGj

    Image]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277377#p277377 Mon, 03 Feb 2025 00:16:49 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277377#p277377
    <![CDATA[latest AI news :: Re: reproduced DeepSeek R1-Zero for < $30 !!! :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277378#p277378 ]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277378#p277378 Mon, 03 Feb 2025 00:35:13 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277378#p277378 <![CDATA[latest AI news :: Re: reproduced DeepSeek R1-Zero for < $30 !!! :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277407#p277407 Mini-R1: Reproduce Deepseek R1 "aha moment" a RL tutorial

    https://www.philschmid.de/mini-deepseek-r1
    This behavior is not only a testament to the model’s growing reasoning abilities but also a captivating example of how reinforcement learning can lead to unexpected and sophisticated outcomes.
    ]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277407#p277407 Mon, 03 Feb 2025 20:53:22 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277407#p277407
    <![CDATA[latest AI news :: Re: reproduced DeepSeek R1-Zero for < $30 !!! :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277408#p277408 pensamiento binario al pensamiento cuántico

    Ya no se trata de pensar si algo esta bien ó mal, sino de cuanto de bien o de mal está :)]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277408#p277408 Mon, 03 Feb 2025 23:19:03 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277408#p277408
    <![CDATA[latest AI news :: Re: reproduced DeepSeek R1-Zero for < $30 !!! :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277424#p277424 https://github.com/Deep-Agent/R1-V]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277424#p277424 Tue, 04 Feb 2025 13:05:20 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277424#p277424 <![CDATA[latest AI news :: Re: reproduced DeepSeek R1-Zero for < $30 !!! :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277433#p277433
    Antonio Linares wrote: Tue Feb 04, 2025 3:53 am Mini-R1: Reproduce Deepseek R1 "aha moment" a RL tutorial
    https://www.philschmid.de/mini-deepseek-r1
    Importante: instalar la versión de PyTorch que soporte CUDA (si tu GPU lo permite)
    pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

    cuda DEBE aparecer al ejecutarlo:

    Code: Select all | Expand

    from transformers import AutoTokenizer
    from datasets import load_dataset
    from trl import GRPOConfig, GRPOTrainer, get_peft_config, ModelConfig
    import re, torch 
    
    # Load dataset from Hugging Face Hub
    dataset_id = "Jiayi-Pan/Countdown-Tasks-3to4"
    dataset = load_dataset(dataset_id, split="train")
    # select a random subset of 50k samples
    dataset = dataset.shuffle(seed=42).select(range(50000))
     
    # Load tokenizer from Hugging Face Hub to format the dataset to our "r1" prompt 
    tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-3B-Instruct")
     
    # gemerate r1 prompt with a prefix for the model to already start with the thinking process
    def generate_r1_prompt(numbers, target):
        r1_prefix = [{
            "role": "system",
            "content": "You are a helpful assistant. You first thinks about the reasoning process in the mind and then provides the user with the answer."
          },
          { 
            "role": "user",
            "content": f"Using the numbers {numbers}, create an equation that equals {target}. You can use basic arithmetic operations (+, -, *, /) and each number can only be used once. Show your work in <think> </think> tags. And return the final equation and answer in <answer> </answer> tags, for example <answer> (1 + 2) / 3 = 1 </answer>."
          },
          {
            "role": "assistant",
            "content": "Let me solve this step by step.\n<think>"
          }]
        return {"prompt": tokenizer.apply_chat_template(r1_prefix, tokenize=False, continue_final_message=True), "target": target}
     
    # convert our dataset to the r1 prompt
    dataset = dataset.map(lambda x: generate_r1_prompt(x["nums"], x["target"]))
     
    # split the dataset into train and test
    train_test_split = dataset.train_test_split(test_size=0.1)
     
    train_dataset = train_test_split["train"]
    test_dataset = train_test_split["test"]
    
    # Define reward functions
     
    def format_reward_func(completions, target, **kwargs):
        """
        Format: <think>...</think><answer>...</answer>
        Args:
            completions (list[str]): Generated outputs
            target (list[str]): Expected answers
          
          Returns:
              list[float]: Reward scores
        """
        rewards = []
     
        for completion, gt in zip(completions, target):
     
          try:
            # add synthetic <think> as its already part of the prompt and prefilled for the assistant to more easily match the regex
            completion = "<think>" + completion        
            # Check if the format is correct
            regex = r"^<think>([^<]*(?:<(?!/?think>)[^<]*)*)<\/think>\n<answer>([\s\S]*?)<\/answer>$"
     
            match = re.search(regex, completion, re.DOTALL) 
            # if the format is not correct, reward is 0
            if match is None or len(match.groups()) != 2:
                rewards.append(0.0)
            else:
                rewards.append(1.0)
          except Exception:
            rewards.append(0.0)
        return rewards
     
    def equation_reward_func(completions, target, nums, **kwargs):
        """
        Evaluates completions based on:
        2. Mathematical correctness of the answer
     
        Args:
            completions (list[str]): Generated outputs
            target (list[str]): Expected answers
            nums (list[str]): Available numbers
        
        Returns:
            list[float]: Reward scores
        """
        rewards = []
        for completion, gt, numbers in zip(completions, target, nums):
          try:
            # add synthetic <think> as its already part of the prompt and prefilled for the assistant to more easily match the regex
            completion = "<think>" + completion
            # Check if the format is correct
            match = re.search(r"<answer>(.*?)<\/answer>", completion)
            if match is None:
                rewards.append(0.0)
                continue
            # Extract the "answer" part from the completion
            equation = match.group(1).strip()
            # Extract all numbers from the equation
            used_numbers = [int(n) for n in re.findall(r'\d+', equation)]
            
            # Check if all numbers are used exactly once
            if sorted(used_numbers) != sorted(numbers):
                rewards.append(0.0)
                continue
            # Define a regex pattern that only allows numbers, operators, parentheses, and whitespace
            allowed_pattern = r'^[\d+\-*/().\s]+$'
            if not re.match(allowed_pattern, equation):
               rewards.append(0.0)
               continue
            
            # Evaluate the equation with restricted globals and locals
            result = eval(equation, {"__builtins__": None}, {})
            # Check if the equation is correct and matches the ground truth
            if abs(float(result) - float(gt)) < 1e-5:
                rewards.append(1.0)
            else:
                rewards.append(0.0)
          except Exception:
                # If evaluation fails, reward is 0
                rewards.append(0.0) 
        return rewards
    
    # our model we are going to use as policy 
    model_config = ModelConfig(
        model_name_or_path="Qwen/Qwen2.5-3B-Instruct",
        torch_dtype="bfloat16",
        attn_implementation="flash_attention_2",
        use_peft=True,
        load_in_4bit=True
    )
    
    device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
    print( f"Device: {device}")
    
    # Hyperparameters
    training_args = GRPOConfig(
        output_dir="qwen-r1-aha-moment",
        learning_rate=5e-7,
        lr_scheduler_type="cosine",
        logging_steps=10,
        max_steps=100,
        per_device_train_batch_size=1,
        gradient_accumulation_steps=1,
        gradient_checkpointing=True,
        gradient_checkpointing_kwargs={"use_reentrant": False},
        bf16=True,
        # GRPO specific parameters
        max_prompt_length=256,
        max_completion_length=1024, # max length of the generated output for our solution
        num_generations=2,
        beta=0.001
    )
    
    trainer = GRPOTrainer(
        model=model_config.model_name_or_path,
        reward_funcs=[format_reward_func, equation_reward_func],
        args=training_args,
        train_dataset=train_dataset,
        eval_dataset=test_dataset,
        peft_config=get_peft_config(model_config),
    )
    
    # Train and push the model to the Hub
    trainer.train()
    # Save model
    trainer.save_model(training_args.output_dir)
    Image
    Image]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277433#p277433 Tue, 04 Feb 2025 20:51:32 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277433#p277433
    <![CDATA[latest AI news :: Re: reproduced DeepSeek R1-Zero for < $30 !!! :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277435#p277435 https://github.com/huggingface/open-r1]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277435#p277435 Tue, 04 Feb 2025 22:57:04 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277435#p277435 <![CDATA[latest AI news :: Re: reproduced DeepSeek R1-Zero for < $30 !!! :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277481#p277481 https://unsloth.ai/blog/r1-reasoning

    https://docs.unsloth.ai/get-started/unsloth-notebooks

    https://huggingface.co/unsloth/Meta-Lla ... t-bnb-4bit

    https://youtu.be/pxhkDaKzBaY?si=bkSjxgCIRFQdyaZV
    Train your own R1 reasoning model with Unsloth
    ]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277481#p277481 Fri, 07 Feb 2025 02:34:37 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277481#p277481
    <![CDATA[latest AI news :: Re: reproduced DeepSeek R1-Zero for < $30 !!! :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277492#p277492
    pip install unsloth vllm
    pip install --upgrade pillow
    pip install git+https://github.com/huggingface/trl.git@ ... c51c64b72b
    pip install diffusers
    pip install triton
    qwen_SFT_RL.py

    Code: Select all | Expand

    from unsloth import FastLanguageModel, PatchFastRL
    PatchFastRL("GRPO", FastLanguageModel)
    
    from unsloth import is_bfloat16_supported
    import torch
    max_seq_length = 1024 # Can increase for longer reasoning traces
    lora_rank = 64 # Larger rank = smarter, but slower
    
    model, tokenizer = FastLanguageModel.from_pretrained(
        model_name = "Qwen/Qwen2.5-3B-Instruct",
        max_seq_length = max_seq_length,
        load_in_4bit = True, # False for LoRA 16bit
        fast_inference = True, # Enable vLLM fast inference
        max_lora_rank = lora_rank,
        gpu_memory_utilization = 0.5, # Reduce if out of memory
    )
    
    model = FastLanguageModel.get_peft_model(
        model,
        r = lora_rank, # Choose any number > 0 ! Suggested 8, 16, 32, 64, 128
        target_modules = [
            "q_proj", "k_proj", "v_proj", "o_proj",
            "gate_proj", "up_proj", "down_proj",
        ], # Remove QKVO if out of memory
        lora_alpha = lora_rank,
        use_gradient_checkpointing = "unsloth", # Enable long context finetuning
        random_state = 3407,
    )
    
    import re
    from datasets import load_dataset, Dataset
    
    # Load and prep dataset
    SYSTEM_PROMPT = """
    Respond in the following format:
    <reasoning>
    ...
    </reasoning>
    <answer>
    ...
    </answer>
    """
    
    XML_COT_FORMAT = """\
    <reasoning>
    {reasoning}
    </reasoning>
    <answer>
    {answer}
    </answer>
    """
    
    def extract_xml_answer(text: str) -> str:
        answer = text.split("<answer>")[-1]
        answer = answer.split("</answer>")[0]
        return answer.strip()
    
    def extract_hash_answer(text: str) -> str | None:
        if "####" not in text:
            return None
        return text.split("####")[1].strip()
    
    # uncomment middle messages for 1-shot prompting
    def get_gsm8k_questions(split = "train") -> Dataset:
        data = load_dataset('openai/gsm8k', 'main')[split] # type: ignore
        data = data.map(lambda x: { # type: ignore
            'prompt': [
                {'role': 'system', 'content': SYSTEM_PROMPT},
                {'role': 'user', 'content': x['question']}
            ],
            'answer': extract_hash_answer(x['answer'])
        }) # type: ignore
        return data # type: ignore
    
    dataset = get_gsm8k_questions()
    
    # Reward functions
    def correctness_reward_func(prompts, completions, answer, **kwargs) -> list[float]:
        responses = [completion[0]['content'] for completion in completions]
        q = prompts[0][-1]['content']
        extracted_responses = [extract_xml_answer(r) for r in responses]
        print('-'*20, f"Question:\n{q}", f"\nAnswer:\n{answer[0]}", f"\nResponse:\n{responses[0]}", f"\nExtracted:\n{extracted_responses[0]}")
        return [2.0 if r == a else 0.0 for r, a in zip(extracted_responses, answer)]
    
    def int_reward_func(completions, **kwargs) -> list[float]:
        responses = [completion[0]['content'] for completion in completions]
        extracted_responses = [extract_xml_answer(r) for r in responses]
        return [0.5 if r.isdigit() else 0.0 for r in extracted_responses]
    
    def strict_format_reward_func(completions, **kwargs) -> list[float]:
        """Reward function that checks if the completion has a specific format."""
        pattern = r"^<reasoning>\n.*?\n</reasoning>\n<answer>\n.*?\n</answer>\n$"
        responses = [completion[0]["content"] for completion in completions]
        matches = [re.match(pattern, r) for r in responses]
        return [0.5 if match else 0.0 for match in matches]
    
    def soft_format_reward_func(completions, **kwargs) -> list[float]:
        """Reward function that checks if the completion has a specific format."""
        pattern = r"<reasoning>.*?</reasoning>\s*<answer>.*?</answer>"
        responses = [completion[0]["content"] for completion in completions]
        matches = [re.match(pattern, r) for r in responses]
        return [0.5 if match else 0.0 for match in matches]
    
    def count_xml(text) -> float:
        count = 0.0
        if text.count("<reasoning>\n") == 1:
            count += 0.125
        if text.count("\n</reasoning>\n") == 1:
            count += 0.125
        if text.count("\n<answer>\n") == 1:
            count += 0.125
            count -= len(text.split("\n</answer>\n")[-1])*0.001
        if text.count("\n</answer>") == 1:
            count += 0.125
            count -= (len(text.split("\n</answer>")[-1]) - 1)*0.001
        return count
    
    def xmlcount_reward_func(completions, **kwargs) -> list[float]:
        contents = [completion[0]["content"] for completion in completions]
        return [count_xml(c) for c in contents]
    
    from trl import GRPOConfig, GRPOTrainer
    training_args = GRPOConfig(
        use_vllm = True, # use vLLM for fast inference!
        learning_rate = 5e-6,
        adam_beta1 = 0.9,
        adam_beta2 = 0.99,
        weight_decay = 0.1,
        warmup_ratio = 0.1,
        lr_scheduler_type = "cosine",
        optim = "adamw_8bit",
        logging_steps = 1,
        bf16 = is_bfloat16_supported(),
        fp16 = not is_bfloat16_supported(),
        per_device_train_batch_size = 1,
        gradient_accumulation_steps = 1, # Increase to 4 for smoother training
        num_generations = 8, # Decrease if out of memory
        max_prompt_length = 256,
        max_completion_length = 200,
        # num_train_epochs = 1, # Set to 1 for a full training run
        max_steps = 250,
        save_steps = 250,
        max_grad_norm = 0.1,
        report_to = "none", # Can use Weights & Biases
        output_dir = "outputs",
    )
    
    trainer = GRPOTrainer(
        model = model,
        processing_class = tokenizer,
        reward_funcs = [
            xmlcount_reward_func,
            soft_format_reward_func,
            strict_format_reward_func,
            int_reward_func,
            correctness_reward_func,
        ],
        args = training_args,
        train_dataset = dataset,
    )
    trainer.train()
    
    text = tokenizer.apply_chat_template([
        {"role" : "user", "content" : "How many r's are in strawberry?"},
    ], tokenize = False, add_generation_prompt = True)
    
    from vllm import SamplingParams
    sampling_params = SamplingParams(
        temperature = 0.8,
        top_p = 0.95,
        max_tokens = 1024,
    )
    output = model.fast_generate(
        [text],
        sampling_params = sampling_params,
        lora_request = None,
    )[0].outputs[0].text
    
    print( output )
    
    model.save_lora("grpo_saved_lora")
    
    text = tokenizer.apply_chat_template([
        {"role" : "system", "content" : SYSTEM_PROMPT},
        {"role" : "user", "content" : "How many r's are in strawberry?"},
    ], tokenize = False, add_generation_prompt = True)
    
    from vllm import SamplingParams
    sampling_params = SamplingParams(
        temperature = 0.8,
        top_p = 0.95,
        max_tokens = 1024,
    )
    output = model.fast_generate(
        text,
        sampling_params = sampling_params,
        lora_request = model.load_lora("grpo_saved_lora"),
    )[0].outputs[0].text
    
    print( output )
    ]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277492#p277492 Fri, 07 Feb 2025 14:59:45 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277492#p277492
    <![CDATA[latest AI news :: Re: reproduced DeepSeek R1-Zero for < $30 !!! :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277564#p277564 Prueba del modelo:

    Code: Select all | Expand

    from unsloth import FastLanguageModel
    from peft import PeftModel
    from vllm import SamplingParams
    import torch.distributed as dist
    
    # Cargar el modelo base
    model, tokenizer = FastLanguageModel.from_pretrained(
        model_name="Qwen/Qwen2.5-3B-Instruct",
        max_seq_length=1024,
        load_in_4bit=True,
        fast_inference=True,
    )
    
    # Cargar los pesos LoRA
    model = PeftModel.from_pretrained(model, "grpo_saved_lora")
    
    # Definir el prompt del sistema
    SYSTEM_PROMPT = """
    Respond in the following format:
    <reasoning>
    ...
    </reasoning>
    <answer>
    ...
    </answer>
    """
    
    # Configurar parámetros de muestreo
    sampling_params = SamplingParams(
        temperature=0.8,
        top_p=0.95,
        max_tokens=1024,
    )
    
    def generate_response(question):
        """Genera una respuesta basada en la pregunta del usuario."""
        input_text = tokenizer.apply_chat_template(
            [
                {"role": "system", "content": SYSTEM_PROMPT},
                {"role": "user", "content": question},
            ],
            tokenize=False,
            add_generation_prompt=True,
        )
        
        # Generar respuesta con el modelo
        output = model.fast_generate(
            [input_text],
            sampling_params=sampling_params,
            lora_request=None,
        )[0].outputs[0].text
        
        return output
    
    # Bucle interactivo
    print("Bienvenido al chatbot. Escribe tus preguntas o /bye para salir.")
    while True:
        user_input = input("T├║: ")
        if user_input.strip().lower() == "/bye":
            print("Chatbot: Adiós. Que tengas un buen día!")
            break
        
        try:
            response = generate_response(user_input)
            print(f"Chatbot:\n{response}\n")
        except Exception as e:
            print(f"Error al generar la respuesta: {e}")
    
    # Destruir procesos NCCL si están activos
    if dist.is_initialized():
        dist.destroy_process_group()
    
    Generación del GGUF:

    Code: Select all | Expand

    from unsloth import FastLanguageModel
    from peft import PeftModel
    from vllm import SamplingParams
    import torch.distributed as dist
    
    model, tokenizer = FastLanguageModel.from_pretrained(
        model_name="Qwen/Qwen2.5-3B-Instruct",
        max_seq_length=1024,
        load_in_4bit=True,
        fast_inference=True,
    )
    
    model = PeftModel.from_pretrained(model, "grpo_saved_lora")
    model.save_pretrained_gguf( "folderName", tokenizer, quantization_method = "f16")
    Modelfile

    Code: Select all | Expand

    FROM ./unsloth.BF16.gguf
    PARAMETER temperature 0.7
    PARAMETER num_ctx 1024
    SYSTEM """You are Mario from super mario bros acting as an assistant"""
    ollama create myModel --file Modelfile

    ollama run myModel]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277564#p277564 Mon, 10 Feb 2025 04:48:38 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45371&p=277564#p277564
    <![CDATA[latest AI news :: Less is More :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45421&p=277688#p277688 Researchers find you don’t need a ton of data to train LLMs for reasoning tasks

    https://venturebeat.com/ai/researchers- ... ing-tasks/
    With merely 817 curated training samples, LIMO achieves 57.1% accuracy on AIME and 94.8% on MATH, improving from previous SFT-based models' 6.5% and 59.2% respectively, while only using 1% of the training data required by previous approaches.
    ]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45421&p=277688#p277688 Sat, 15 Feb 2025 06:20:03 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45421&p=277688#p277688
    <![CDATA[latest AI news :: OmniParser: Screen Parsing tool for Pure Vision Based GUI Agent :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45424&p=277696#p277696 https://t.co/elm20eGmui

    https://github.com/microsoft/OmniParser]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45424&p=277696#p277696 Sun, 16 Feb 2025 01:06:56 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45424&p=277696#p277696
    <![CDATA[latest AI news :: NVIDIA Project DIGITS - AI Supercomputer on your desk :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45428&p=277722#p277722 https://www.nvidia.com/en-us/project-digits/
    With the NVIDIA AI software stack preinstalled and 128GB of memory, developers can prototype, fine-tune, and inference large AI models of up to 200B parameters locally, and seamlessly deploy to the data center or cloud
    Image
    Image]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45428&p=277722#p277722 Mon, 17 Feb 2025 10:22:28 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45428&p=277722#p277722
    <![CDATA[latest AI news :: Re: NVIDIA Project DIGITS - AI Supercomputer on your desk :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45428&p=277723#p277723 ]]> no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45428&p=277723#p277723 Mon, 17 Feb 2025 10:25:43 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45428&p=277723#p277723 <![CDATA[latest AI news :: Grok 3 announcement :: Author Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45430&p=277729#p277729 https://x.com/elonmusk/status/1891700271438233931

    Image
    Image]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45430&p=277729#p277729 Tue, 18 Feb 2025 00:57:55 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45430&p=277729#p277729
    <![CDATA[latest AI news :: Re: Grok 3 announcement :: Reply by Antonio Linares]]> https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45430&p=277732#p277732
    Image]]>
    no_email@example.com (Antonio Linares) https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45430&p=277732#p277732 Tue, 18 Feb 2025 02:57:54 -0700 https://forums.fivetechsupport.com/~fivetec1/forums/viewtopic.php?f=42&t=45430&p=277732#p277732