<![CDATA[HMGforum.com]]> http://www.hmgforum.com Smartfeed extension for phpBB <![CDATA[HMG Unicode version :: WINDOW WITH scrollbars :: Author tomtagaris]]> 2026-01-25T09:03:27+00:00 2026-01-25T09:03:27+00:00 http://www.hmgforum.com/viewtopic.php?f=43&t=7724&p=72063#p72063 <![CDATA[HMG 64 Bits :: WINDOW WITH scrollbars :: Author tomtagaris]]> 2026-01-25T09:04:25+00:00 2026-01-25T09:04:25+00:00 http://www.hmgforum.com/viewtopic.php?f=46&t=7725&p=72064#p72064 <![CDATA[HMG 64 Bits :: Re: WINDOW WITH scrollbars :: Reply by AUGE_OHR]]> 2026-01-25T11:23:19+00:00 2026-01-25T11:23:19+00:00 http://www.hmgforum.com/viewtopic.php?f=46&t=7725&p=72065#p72065 you can define a "virtual" Window.

here a Sample how to edit a "unknown" Structure :

Code: Select all

PROCEDURE EditForm(aStruc)
LOCAL i, iMax, cObj, cLabel
LOCAL cText, cType, nSize,nDec

   iMax := LEN(aStruc)

   DEFINE WINDOW Browse_Edit ;
              AT 0,0 ;
              WIDTH 300 ;
              HEIGHT 600 ;
              VIRTUAL WIDTH 999 ;
              VIRTUAL HEIGHT 9999 ;
              TITLE "" ;
              ICON NIL ;
              CURSOR NIL ;
              ON INIT Nil ;
              ON RELEASE Nil ;
              ON INTERACTIVECLOSE Nil ;
              ON MOUSECLICK Nil ;
              ON MOUSEDRAG Nil ;
              ON MOUSEMOVE Nil ;
              ON SIZE NIL ;
              ON MAXIMIZE NIL ;
              ON MINIMIZE Nil ;
              ON PAINT Nil ;
              BACKCOLOR { 7, 7, 7 } ;
              NOTIFYICON NIL ;
              NOTIFYTOOLTIP NIL ;
              ON NOTIFYCLICK Nil ;
              ON GOTFOCUS Nil ;
              ON LOSTFOCUS Nil ;
              ON SCROLLUP Nil ;
              ON SCROLLDOWN Nil ;
              ON SCROLLLEFT Nil ;
              ON SCROLLRIGHT Nil ;
              ON HSCROLLBOX Nil ;
              ON VSCROLLBOX Nil

   FOR i := 1 TO iMax

      cLabel := "LABEL"+STRZERO(i,3)
      cObj := "TEXT_"+STRZERO(i,3)
      nRow := 32 * (i-1)
      nSize := aStruc[i][DBS_LEN]*11

      cFIELD := aStruc[i][DBS_NAME]

      DEFINE LABEL &cLabel
         ROW nRow
         COL 10
         VALUE cFIELD
         WIDTH 80
         HEIGHT 30
         BACKCOLOR { 0, 0, 0 }
         FONTCOLOR { 0, 220, 220 }
      END LABEL

      cFIELD := "FIELD->" + aStruc[i][DBS_NAME]

      DO CASE
         CASE aStruc[i][DBS_TYPE] = "C"

      DEFINE TEXTBOX &cObj
         ROW nRow
         COL 100
         HEIGHT 30
         FIELD &(cFIELD)
         READONLY .F.
         VALUE NIL
         WIDTH nSize
         INPUTMASK Nil
         FORMAT Nil
         FONTNAME "Arial"
         FONTSIZE 10
         FONTBOLD .F.
         FONTITALIC .F.
         FONTUNDERLINE .F.
         FONTSTRIKEOUT .F.
         TOOLTIP ""
         BACKCOLOR { 0, 0, 0 }
         FONTCOLOR { 0, 220, 220 }
         DISABLEDBACKCOLOR Nil
         DISABLEDFONTCOLOR Nil
         DATATYPE CHARACTER
         CASECONVERT NONE
         ONCHANGE Nil
         ONGOTFOCUS Nil
         ONLOSTFOCUS Nil
         ONENTER Nil
         RIGHTALIGN .F.
         VISIBLE .T.
         TABSTOP .T.
         HELPID Nil
      END TEXTBOX

         CASE aStruc[i][DBS_TYPE] = "N"

      DEFINE TEXTBOX &cObj
         ROW nRow
         COL 100
         HEIGHT 30
         FIELD &(cFIELD)
         READONLY .F.
         VALUE NIL
         WIDTH nSize
         INPUTMASK Nil
         FORMAT Nil
         FONTNAME "Arial"
         FONTSIZE 10
         FONTBOLD .F.
         FONTITALIC .F.
         FONTUNDERLINE .F.
         FONTSTRIKEOUT .F.
         TOOLTIP ""
         BACKCOLOR { 0, 0, 0 }
         FONTCOLOR { 0, 220, 220 }
         DISABLEDBACKCOLOR Nil
         DISABLEDFONTCOLOR Nil
         DATATYPE NUMERIC
         CASECONVERT NONE
         ONCHANGE Nil
         ONGOTFOCUS Nil
         ONLOSTFOCUS Nil
         ONENTER Nil
         RIGHTALIGN .F.
         VISIBLE .T.
         TABSTOP .T.
         HELPID Nil
      END TEXTBOX

         CASE aStruc[i][DBS_TYPE] = "D"
      DEFINE TEXTBOX &cObj
         ROW nRow
         COL 100
         HEIGHT 30
         FIELD &(cFIELD)
         READONLY .F.
         VALUE NIL
         WIDTH nSize
         FORMAT Nil
         FONTNAME "Arial"
         FONTSIZE 10
         BACKCOLOR { 0, 0, 0 }
         FONTCOLOR { 0, 220, 220 }
         DATATYPE DATE
         CASECONVERT NONE
         ONCHANGE Nil
         ONGOTFOCUS Nil
         ONLOSTFOCUS Nil
         ONENTER Nil
         RIGHTALIGN .F.
         VISIBLE .T.
         TABSTOP .T.
         HELPID Nil
      END TEXTBOX

         CASE aStruc[i][DBS_TYPE] = "L"

      DEFINE CHECKBOX &cObj
         ROW nRow
         COL 100
         CAPTION ""
         HEIGHT 30
         FIELD &(cFIELD)
         WIDTH 50
         BACKCOLOR { 0, 0, 0 }
         FONTCOLOR { 0, 220, 220 }
         VISIBLE .T.
         TABSTOP .T.
      END CHECKBOX

      ENDCASE

   NEXT
   END WINDOW


   ON KEY ESCAPE OF Browse_Edit ACTION Browse_Edit.Release
   CENTER WINDOW Browse_Edit

   ACTIVATE WINDOW Browse_Edit

RETURN
]]>
you can define a "virtual" Window.

here a Sample how to edit a "unknown" Structure :

Code: Select all

PROCEDURE EditForm(aStruc)
LOCAL i, iMax, cObj, cLabel
LOCAL cText, cType, nSize,nDec

   iMax := LEN(aStruc)

   DEFINE WINDOW Browse_Edit ;
              AT 0,0 ;
              WIDTH 300 ;
              HEIGHT 600 ;
              VIRTUAL WIDTH 999 ;
              VIRTUAL HEIGHT 9999 ;
              TITLE "" ;
              ICON NIL ;
              CURSOR NIL ;
              ON INIT Nil ;
              ON RELEASE Nil ;
              ON INTERACTIVECLOSE Nil ;
              ON MOUSECLICK Nil ;
              ON MOUSEDRAG Nil ;
              ON MOUSEMOVE Nil ;
              ON SIZE NIL ;
              ON MAXIMIZE NIL ;
              ON MINIMIZE Nil ;
              ON PAINT Nil ;
              BACKCOLOR { 7, 7, 7 } ;
              NOTIFYICON NIL ;
              NOTIFYTOOLTIP NIL ;
              ON NOTIFYCLICK Nil ;
              ON GOTFOCUS Nil ;
              ON LOSTFOCUS Nil ;
              ON SCROLLUP Nil ;
              ON SCROLLDOWN Nil ;
              ON SCROLLLEFT Nil ;
              ON SCROLLRIGHT Nil ;
              ON HSCROLLBOX Nil ;
              ON VSCROLLBOX Nil

   FOR i := 1 TO iMax

      cLabel := "LABEL"+STRZERO(i,3)
      cObj := "TEXT_"+STRZERO(i,3)
      nRow := 32 * (i-1)
      nSize := aStruc[i][DBS_LEN]*11

      cFIELD := aStruc[i][DBS_NAME]

      DEFINE LABEL &cLabel
         ROW nRow
         COL 10
         VALUE cFIELD
         WIDTH 80
         HEIGHT 30
         BACKCOLOR { 0, 0, 0 }
         FONTCOLOR { 0, 220, 220 }
      END LABEL

      cFIELD := "FIELD->" + aStruc[i][DBS_NAME]

      DO CASE
         CASE aStruc[i][DBS_TYPE] = "C"

      DEFINE TEXTBOX &cObj
         ROW nRow
         COL 100
         HEIGHT 30
         FIELD &(cFIELD)
         READONLY .F.
         VALUE NIL
         WIDTH nSize
         INPUTMASK Nil
         FORMAT Nil
         FONTNAME "Arial"
         FONTSIZE 10
         FONTBOLD .F.
         FONTITALIC .F.
         FONTUNDERLINE .F.
         FONTSTRIKEOUT .F.
         TOOLTIP ""
         BACKCOLOR { 0, 0, 0 }
         FONTCOLOR { 0, 220, 220 }
         DISABLEDBACKCOLOR Nil
         DISABLEDFONTCOLOR Nil
         DATATYPE CHARACTER
         CASECONVERT NONE
         ONCHANGE Nil
         ONGOTFOCUS Nil
         ONLOSTFOCUS Nil
         ONENTER Nil
         RIGHTALIGN .F.
         VISIBLE .T.
         TABSTOP .T.
         HELPID Nil
      END TEXTBOX

         CASE aStruc[i][DBS_TYPE] = "N"

      DEFINE TEXTBOX &cObj
         ROW nRow
         COL 100
         HEIGHT 30
         FIELD &(cFIELD)
         READONLY .F.
         VALUE NIL
         WIDTH nSize
         INPUTMASK Nil
         FORMAT Nil
         FONTNAME "Arial"
         FONTSIZE 10
         FONTBOLD .F.
         FONTITALIC .F.
         FONTUNDERLINE .F.
         FONTSTRIKEOUT .F.
         TOOLTIP ""
         BACKCOLOR { 0, 0, 0 }
         FONTCOLOR { 0, 220, 220 }
         DISABLEDBACKCOLOR Nil
         DISABLEDFONTCOLOR Nil
         DATATYPE NUMERIC
         CASECONVERT NONE
         ONCHANGE Nil
         ONGOTFOCUS Nil
         ONLOSTFOCUS Nil
         ONENTER Nil
         RIGHTALIGN .F.
         VISIBLE .T.
         TABSTOP .T.
         HELPID Nil
      END TEXTBOX

         CASE aStruc[i][DBS_TYPE] = "D"
      DEFINE TEXTBOX &cObj
         ROW nRow
         COL 100
         HEIGHT 30
         FIELD &(cFIELD)
         READONLY .F.
         VALUE NIL
         WIDTH nSize
         FORMAT Nil
         FONTNAME "Arial"
         FONTSIZE 10
         BACKCOLOR { 0, 0, 0 }
         FONTCOLOR { 0, 220, 220 }
         DATATYPE DATE
         CASECONVERT NONE
         ONCHANGE Nil
         ONGOTFOCUS Nil
         ONLOSTFOCUS Nil
         ONENTER Nil
         RIGHTALIGN .F.
         VISIBLE .T.
         TABSTOP .T.
         HELPID Nil
      END TEXTBOX

         CASE aStruc[i][DBS_TYPE] = "L"

      DEFINE CHECKBOX &cObj
         ROW nRow
         COL 100
         CAPTION ""
         HEIGHT 30
         FIELD &(cFIELD)
         WIDTH 50
         BACKCOLOR { 0, 0, 0 }
         FONTCOLOR { 0, 220, 220 }
         VISIBLE .T.
         TABSTOP .T.
      END CHECKBOX

      ENDCASE

   NEXT
   END WINDOW


   ON KEY ESCAPE OF Browse_Edit ACTION Browse_Edit.Release
   CENTER WINDOW Browse_Edit

   ACTIVATE WINDOW Browse_Edit

RETURN
]]>
<![CDATA[HMG 64 Bits :: Re: WINDOW WITH scrollbars :: Reply by tomtagaris]]> 2026-01-26T08:04:09+00:00 2026-01-26T08:04:09+00:00 http://www.hmgforum.com/viewtopic.php?f=46&t=7725&p=72070#p72070 <![CDATA[HMG 64 Bits :: Re: WINDOW WITH scrollbars :: Reply by AUGE_OHR]]> 2026-01-26T11:50:49+00:00 2026-01-26T11:50:49+00:00 http://www.hmgforum.com/viewtopic.php?f=46&t=7725&p=72072#p72072
tomtagaris wrote: Mon Jan 26, 2026 8:04 am Unfortunately, it doesn’t work
WHAT does not work ?
it is Part of this Project
BROWSE.ZIP
Image
use a DBF as Parameter
press F1 to open EditForm

Attachments

BROWSE.ZIP (3.22 KiB)
]]>
tomtagaris wrote: Mon Jan 26, 2026 8:04 am Unfortunately, it doesn’t work
WHAT does not work ?
it is Part of this Project
BROWSE.ZIP
Image
use a DBF as Parameter
press F1 to open EditForm

Attachments

BROWSE.ZIP (3.22 KiB)
]]>
<![CDATA[HMG 64 Bits :: Re: WINDOW WITH scrollbars :: Reply by tomtagaris]]> 2026-01-26T16:19:55+00:00 2026-01-26T16:19:55+00:00 http://www.hmgforum.com/viewtopic.php?f=46&t=7725&p=72073#p72073 <![CDATA[HMG 64 Bits :: Re: WINDOW WITH scrollbars :: Reply by serge_girard]]> 2026-01-27T09:09:05+00:00 2026-01-27T09:09:05+00:00 http://www.hmgforum.com/viewtopic.php?f=46&t=7725&p=72074#p72074
Jimmy, Why is scrolling with the wheel almost impossible? (In EDIT screen).

Serge]]>

Jimmy, Why is scrolling with the wheel almost impossible? (In EDIT screen).

Serge]]>
<![CDATA[HMG 64 Bits :: Re: WINDOW WITH scrollbars :: Reply by AUGE_OHR]]> 2026-01-27T10:50:18+00:00 2026-01-27T10:50:18+00:00 http://www.hmgforum.com/viewtopic.php?f=46&t=7725&p=72075#p72075
serge_girard wrote: Tue Jan 27, 2026 9:09 am Why is scrolling with the wheel almost impossible? (In EDIT screen).
it work, you must 1st, click into Window !

but you must disable "scroll when point to Window"
Image]]>
serge_girard wrote: Tue Jan 27, 2026 9:09 am Why is scrolling with the wheel almost impossible? (In EDIT screen).
it work, you must 1st, click into Window !

but you must disable "scroll when point to Window"
Image]]>
<![CDATA[HMG 64 Bits :: Re: WINDOW WITH scrollbars :: Reply by serge_girard]]> 2026-01-27T11:42:05+00:00 2026-01-27T11:42:05+00:00 http://www.hmgforum.com/viewtopic.php?f=46&t=7725&p=72076#p72076
Sometimes it scrolls back and never gets over some point...]]>

Sometimes it scrolls back and never gets over some point...]]>
<![CDATA[HMG 64 Bits :: Re: WINDOW WITH scrollbars :: Reply by AUGE_OHR]]> 2026-01-27T13:24:02+00:00 2026-01-27T13:24:02+00:00 http://www.hmgforum.com/viewtopic.php?f=46&t=7725&p=72077#p72077
serge_girard wrote: Tue Jan 27, 2026 11:42 am Reactions are very weird....
that i can´t help.

Have you tried changing the mouse sensitivity?]]>
serge_girard wrote: Tue Jan 27, 2026 11:42 am Reactions are very weird....
that i can´t help.

Have you tried changing the mouse sensitivity?]]>
<![CDATA[HMG 64 Bits :: Re: WINDOW WITH scrollbars :: Reply by serge_girard]]> 2026-01-27T14:28:08+00:00 2026-01-27T14:28:08+00:00 http://www.hmgforum.com/viewtopic.php?f=46&t=7725&p=72078#p72078 I will try on another PC...

Thanks, Serge]]>
I will try on another PC...

Thanks, Serge]]>
<![CDATA[HMG 64 Bits :: Re: WINDOW WITH scrollbars :: Reply by franco]]> 2026-01-29T17:54:36+00:00 2026-01-29T17:54:36+00:00 http://www.hmgforum.com/viewtopic.php?f=46&t=7725&p=72079#p72079 I wonder if you turn them off in a previous window and do not turn them back on if they are off.
They never show up unless window is to small for me.
If I don`t want them like in a large browse I turn off vertial scroll bar like.

Code: Select all

if rcnt > 1500
   VscrollBar .F.
endif
]]>
I wonder if you turn them off in a previous window and do not turn them back on if they are off.
They never show up unless window is to small for me.
If I don`t want them like in a large browse I turn off vertial scroll bar like.

Code: Select all

if rcnt > 1500
   VscrollBar .F.
endif
]]>
<![CDATA[HMG News and Updates :: Re: Happy New Year 2026 :: Reply by Steed]]> 2026-01-05T17:58:40+00:00 2026-01-05T17:58:40+00:00 http://www.hmgforum.com/viewtopic.php?f=2&t=7720&p=72038#p72038 <![CDATA[HMG News and Updates :: Re: Happy New Year 2026 :: Reply by luisvasquezcl]]> 2026-01-06T08:36:21+00:00 2026-01-06T08:36:21+00:00 http://www.hmgforum.com/viewtopic.php?f=2&t=7720&p=72039#p72039 <![CDATA[HMG News and Updates :: Re: Happy New Year 2026 :: Reply by Algernon]]> 2026-01-12T12:59:20+00:00 2026-01-12T12:59:20+00:00 http://www.hmgforum.com/viewtopic.php?f=2&t=7720&p=72055#p72055 Happy New Year]]> Happy New Year]]> <![CDATA[HMG General Help :: Re: Codepage, hb_Translate(), OEM <-> ANSI :: Reply by jozef]]> 2026-01-09T09:18:57+00:00 2026-01-09T09:18:57+00:00 http://www.hmgforum.com/viewtopic.php?f=5&t=7041&p=72052#p72052 I started to move from ANSI version to UNICODE version of HMG. Your convert program is very usefull.
Thank you,
Jozef]]>
I started to move from ANSI version to UNICODE version of HMG. Your convert program is very usefull.
Thank you,
Jozef]]>
<![CDATA[HMG General Help :: Re: Codepage, hb_Translate(), OEM <-> ANSI :: Reply by AUGE_OHR]]> 2026-01-10T16:25:58+00:00 2026-01-10T20:27:35+00:00 http://www.hmgforum.com/viewtopic.php?f=5&t=7041&p=72053#p72053
here full Source of App
CONVERT_Source.ZIP

Attachments

CONVERT_Source.ZIP (24.57 KiB)
]]>

here full Source of App
CONVERT_Source.ZIP

Attachments

CONVERT_Source.ZIP (24.57 KiB)
]]>
<![CDATA[HMG General Help :: Re: Codepage, hb_Translate(), OEM <-> ANSI :: Reply by franco]]> 2026-01-10T18:21:29+00:00 2026-01-10T18:21:29+00:00 http://www.hmgforum.com/viewtopic.php?f=5&t=7041&p=72054#p72054

Code: Select all

  cDir := GetFolder( cTitle, TRIM( cInitPath ),, lNewFolderButton )
   IF !EMPTY( cDir )
       IF RAT( "\", cDir ) <> LEN(cDir)
                 cDir += "\"
       ENDIF
      ExportDbf.Text_Path.value := cDir                                //+ "\"  // add "\"
   ENDIF
]]>

Code: Select all

  cDir := GetFolder( cTitle, TRIM( cInitPath ),, lNewFolderButton )
   IF !EMPTY( cDir )
       IF RAT( "\", cDir ) <> LEN(cDir)
                 cDir += "\"
       ENDIF
      ExportDbf.Text_Path.value := cDir                                //+ "\"  // add "\"
   ENDIF
]]>
<![CDATA[HMG General Help :: Printing QR code on ticketprinters :: Author serge_girard]]> 2026-01-23T12:23:39+00:00 2026-01-23T12:23:39+00:00 http://www.hmgforum.com/viewtopic.php?f=5&t=7722&p=72059#p72059
Serge]]>

Serge]]>
<![CDATA[HMG General Help :: Re: Printing QR code on ticketprinters :: Reply by franco]]> 2026-01-23T18:12:26+00:00 2026-01-23T18:12:26+00:00 http://www.hmgforum.com/viewtopic.php?f=5&t=7722&p=72060#p72060 I am sure you have thought of this. Maybe can work.]]> I am sure you have thought of this. Maybe can work.]]> <![CDATA[HMG General Help :: Re: Printing QR code on ticketprinters :: Reply by serge_girard]]> 2026-01-24T07:42:39+00:00 2026-01-24T07:42:39+00:00 http://www.hmgforum.com/viewtopic.php?f=5&t=7722&p=72062#p72062

Code: Select all

SET PRINTER TO LPT2
SET DEVICE  TO PRINTER
SET PRINTER ON  
? some codes
? 'my text'
// now how send JPG to ?
Serge]]>

Code: Select all

SET PRINTER TO LPT2
SET DEVICE  TO PRINTER
SET PRINTER ON  
? some codes
? 'my text'
// now how send JPG to ?
Serge]]>
<![CDATA[HMG General Help :: Re: Printing QR code on ticketprinters :: Reply by franco]]> 2026-01-25T21:50:08+00:00 2026-01-25T23:36:15+00:00 http://www.hmgforum.com/viewtopic.php?f=5&t=7722&p=72066#p72066 But this works. Not sure if you can use. Just compile. I use 3.44.
I just went on internet and copied a sample qrcode then saved as png and jpg and put files in this folder..

Code: Select all

#include "hmg.ch"
#include "bostaurus.ch"
FUNCTION Main()
	LOCAL CImagep   :=   "serg.png"
	LOCAL Cimagej    :=  "serg.jpg"
   	IF ! FILE( cImagep ) .OR. ! FILE( cimagej)
     		 MsgInfo( "Image not found: " + cImage )
      		RETURN NIL
   	ENDIF
	SELECT HPDFDOC 'P.PDF' PAPERLENGTH 60 PAPERWIDTH 40
      	START HPDFDOC
      	START HPDFPAGE
	*SET HPDFDOC ENCODING TO "WinAnsiEncoding"
	@ 5, 2 HPDFPRINT 'Hello Serg' size 12
    	@ 15,1 HPDFPRINT IMAGE  cimagep  WIDTH 30 HEIGHT 30  type PNG
	@ 50, 10 HPDFPRINT 'Ping Style' size 12
	@ 60 ,1 HPDFPRINT IMAGE  cimagej   WIDTH 30 HEIGHT 30  type JPG 
	@ 95, 10 HPDFPRINT 'Jpg Style' size 12
	
	@ 125,2 HPDFPRINT 'Ping Style' SIZE 12
	@ 115,40 HPDFPRINT IMAGE  cimagep  WIDTH 20 HEIGHT 20  type PNG
	@ 150,2 HPDFPRINT 'Jpg Style' size 12
	@ 140,40 HPDFPRINT IMAGE  cimageJ  WIDTH 20 HEIGHT 20  type JPG



   	END HPDFPAGE
   	END HPDFDOC
   	EXECUTE FILE 'P.PDF'
RETURN NIL



]]>
But this works. Not sure if you can use. Just compile. I use 3.44.
I just went on internet and copied a sample qrcode then saved as png and jpg and put files in this folder..

Code: Select all

#include "hmg.ch"
#include "bostaurus.ch"
FUNCTION Main()
	LOCAL CImagep   :=   "serg.png"
	LOCAL Cimagej    :=  "serg.jpg"
   	IF ! FILE( cImagep ) .OR. ! FILE( cimagej)
     		 MsgInfo( "Image not found: " + cImage )
      		RETURN NIL
   	ENDIF
	SELECT HPDFDOC 'P.PDF' PAPERLENGTH 60 PAPERWIDTH 40
      	START HPDFDOC
      	START HPDFPAGE
	*SET HPDFDOC ENCODING TO "WinAnsiEncoding"
	@ 5, 2 HPDFPRINT 'Hello Serg' size 12
    	@ 15,1 HPDFPRINT IMAGE  cimagep  WIDTH 30 HEIGHT 30  type PNG
	@ 50, 10 HPDFPRINT 'Ping Style' size 12
	@ 60 ,1 HPDFPRINT IMAGE  cimagej   WIDTH 30 HEIGHT 30  type JPG 
	@ 95, 10 HPDFPRINT 'Jpg Style' size 12
	
	@ 125,2 HPDFPRINT 'Ping Style' SIZE 12
	@ 115,40 HPDFPRINT IMAGE  cimagep  WIDTH 20 HEIGHT 20  type PNG
	@ 150,2 HPDFPRINT 'Jpg Style' size 12
	@ 140,40 HPDFPRINT IMAGE  cimageJ  WIDTH 20 HEIGHT 20  type JPG



   	END HPDFPAGE
   	END HPDFDOC
   	EXECUTE FILE 'P.PDF'
RETURN NIL



]]>
<![CDATA[HMG General Help :: Re: Printing QR code on ticketprinters :: Reply by serge_girard]]> 2026-01-25T22:09:56+00:00 2026-01-25T22:09:56+00:00 http://www.hmgforum.com/viewtopic.php?f=5&t=7722&p=72067#p72067 Serge]]> Serge]]> <![CDATA[HMG General Help :: Re: Printing QR code on ticketprinters :: Reply by franco]]> 2026-01-25T23:11:16+00:00 2026-01-25T23:11:16+00:00 http://www.hmgforum.com/viewtopic.php?f=5&t=7722&p=72068#p72068 I just right click in file and print. You could pick laser printer to try. I use Star tsp100 cutter printer.

Code: Select all


#include "hmg.ch"
#include "bostaurus.ch"

FUNCTION Main()
	LOCAL cPrinter := 'default' , LSUCCESS 
   	LOCAL CImagep   :=   "serg.png"
	LOCAL Cimagej    :=  "serg.jpg"
   	IF ! FILE( cImagep ) .OR. ! FILE( cimagej)
     		 MsgInfo( "Image not found: " + cImage )
      		RETURN NIL
   	ENDIF
	SELECT HPDFDOC 'P.PDF' PAPERLENGTH 60 PAPERWIDTH 40
      	START HPDFDOC
      	START HPDFPAGE
	*SET HPDFDOC ENCODING TO "WinAnsiEncoding"
	@ 5, 10 HPDFPRINT 'Hello Serg' size 16
    	@ 15,1 HPDFPRINT IMAGE  cimagep  WIDTH 30 HEIGHT 30  type PNG
	@ 50, 10 HPDFPRINT 'Ping Style' size 16
	@ 60 ,1 HPDFPRINT IMAGE  cimagej   WIDTH 30 HEIGHT 30  type JPG 
	@ 95, 10 HPDFPRINT 'Jpg Style' size 16


   	END HPDFPAGE
   	END HPDFDOC
   	EXECUTE FILE 'P.PDF'
RETURN NIL
]]>
I just right click in file and print. You could pick laser printer to try. I use Star tsp100 cutter printer.

Code: Select all


#include "hmg.ch"
#include "bostaurus.ch"

FUNCTION Main()
	LOCAL cPrinter := 'default' , LSUCCESS 
   	LOCAL CImagep   :=   "serg.png"
	LOCAL Cimagej    :=  "serg.jpg"
   	IF ! FILE( cImagep ) .OR. ! FILE( cimagej)
     		 MsgInfo( "Image not found: " + cImage )
      		RETURN NIL
   	ENDIF
	SELECT HPDFDOC 'P.PDF' PAPERLENGTH 60 PAPERWIDTH 40
      	START HPDFDOC
      	START HPDFPAGE
	*SET HPDFDOC ENCODING TO "WinAnsiEncoding"
	@ 5, 10 HPDFPRINT 'Hello Serg' size 16
    	@ 15,1 HPDFPRINT IMAGE  cimagep  WIDTH 30 HEIGHT 30  type PNG
	@ 50, 10 HPDFPRINT 'Ping Style' size 16
	@ 60 ,1 HPDFPRINT IMAGE  cimagej   WIDTH 30 HEIGHT 30  type JPG 
	@ 95, 10 HPDFPRINT 'Jpg Style' size 16


   	END HPDFPAGE
   	END HPDFDOC
   	EXECUTE FILE 'P.PDF'
RETURN NIL
]]>
<![CDATA[HMG General Help :: Re: Printing QR code on ticketprinters :: Reply by franco]]> 2026-01-26T01:27:57+00:00 2026-01-26T01:27:57+00:00 http://www.hmgforum.com/viewtopic.php?f=5&t=7722&p=72069#p72069 <![CDATA[HMG General Help :: Re: Printing QR code on ticketprinters :: Reply by serge_girard]]> 2026-01-26T08:10:47+00:00 2026-01-26T08:10:47+00:00 http://www.hmgforum.com/viewtopic.php?f=5&t=7722&p=72071#p72071 <![CDATA[HMG General Help :: OT - xBase Package 2026 :: Author msdn]]> 2026-01-30T02:29:05+00:00 2026-01-30T02:29:05+00:00 http://www.hmgforum.com/viewtopic.php?f=5&t=7726&p=72080#p72080 Visit the website and see how to purchase.

https://harbourdeveloper.blogspot.com/







https://produto.mercadolivre.com.br/MLB ... -e-sql-_JM


Thank you very much for your attention.]]>
Visit the website and see how to purchase.

https://harbourdeveloper.blogspot.com/







https://produto.mercadolivre.com.br/MLB ... -e-sql-_JM


Thank you very much for your attention.]]>
<![CDATA[General :: Re: Acerda de Libreria PrintSystem :: Reply by mjaviergutierrez]]> 2026-01-07T13:54:09+00:00 2026-01-07T13:54:09+00:00 http://www.hmgforum.com/viewtopic.php?f=24&t=7717&p=72040#p72040 Gracias "franco" por su respuesta, era una tontería, me había equivocado yo con el archivo de compilación.
Pido disculpas por haber ocupado un hilo para una consulta fallida.
Muy feliz 2026 para todos !
Saludos]]>
Gracias "franco" por su respuesta, era una tontería, me había equivocado yo con el archivo de compilación.
Pido disculpas por haber ocupado un hilo para una consulta fallida.
Muy feliz 2026 para todos !
Saludos]]>
<![CDATA[General :: Integración con WhatsApp :: Author mjaviergutierrez]]> 2026-01-07T14:32:11+00:00 2026-01-07T14:32:11+00:00 http://www.hmgforum.com/viewtopic.php?f=24&t=7721&p=72041#p72041 Estuve investigando en Post anteriores, sobre la posibilidad de integran mi programa con WhatsApp, puntualmente enviar un documento (factura en PDF), pero NO encuentro nada claro. Alguien tendrá alguna info si existe esta posibilidad ?
Saludos.]]>
Estuve investigando en Post anteriores, sobre la posibilidad de integran mi programa con WhatsApp, puntualmente enviar un documento (factura en PDF), pero NO encuentro nada claro. Alguien tendrá alguna info si existe esta posibilidad ?
Saludos.]]>
<![CDATA[General :: Re: Integración con WhatsApp :: Reply by serge_girard]]> 2026-01-07T16:34:43+00:00 2026-01-07T16:34:43+00:00 http://www.hmgforum.com/viewtopic.php?f=24&t=7721&p=72042#p72042
WhatsApp Business API + cURL

Serge]]>

WhatsApp Business API + cURL

Serge]]>
<![CDATA[General :: Re: Integración con WhatsApp :: Reply by mjaviergutierrez]]> 2026-01-07T16:38:01+00:00 2026-01-07T16:38:01+00:00 http://www.hmgforum.com/viewtopic.php?f=24&t=7721&p=72043#p72043 Gracias, me voy a poner a investigar.]]> Gracias, me voy a poner a investigar.]]> <![CDATA[General :: Re: Integración con WhatsApp :: Reply by franco]]> 2026-01-07T17:04:20+00:00 2026-01-07T17:04:20+00:00 http://www.hmgforum.com/viewtopic.php?f=24&t=7721&p=72044#p72044 I prints to file
#include <hmg_hpdf.ch>
set HpdfDoc Encoding to "WinAnsiEncoding"
set printer to your invoice number +".pdf" to print to file for emailing.

@10,20 HpdPrint Customer->Name size 10

Give it a try. I think everything you need is here.

Sorry
This may not work but has some good ideas I will get back with proper code.]]>
I prints to file
#include <hmg_hpdf.ch>
set HpdfDoc Encoding to "WinAnsiEncoding"
set printer to your invoice number +".pdf" to print to file for emailing.

@10,20 HpdPrint Customer->Name size 10

Give it a try. I think everything you need is here.

Sorry
This may not work but has some good ideas I will get back with proper code.]]>
<![CDATA[General :: Re: Integración con WhatsApp :: Reply by franco]]> 2026-01-07T21:58:15+00:00 2026-01-07T21:58:15+00:00 http://www.hmgforum.com/viewtopic.php?f=24&t=7721&p=72046#p72046 You can use a printer instead of file. File is pdf for emailing or printing.

Code: Select all


#include "hmg.ch"

Function Main()
SELECT HPDFDOC "sample.pdf" PAPERLENGTH 300 PAPERWIDTH 300 LOG
START HPDFDOC
    START HPDFPAGE
	
	SET HPDFDOC ENCODING TO "WinAnsiEncoding"
	    
		@ 10,20  HPDFPRINT "I want Euro sign here: "+CHR(128)
		
        @ 20,20  HPDFPRINT "I want this STRIKEOUT (not working)" STRIKEOUT

		@ 18,67  HPDFPRINT "_________" // COLOR { 51, 255, 255 }
		@ 20,92  HPDFPRINT "<----  This line was drawing to simulate a baseline (made manually)" SIZE 9 COLOR { 0, 0, 255 }
		
        @ 30,20  HPDFPRINT "I want this italic" ITALIC
        @ 40,20  HPDFPRINT "I want this bold" BOLD
        @ 50,20  HPDFPRINT "I want this UNDERLINE (not working)" UNDERLINE
		
		@ 50,67  HPDFPRINT "_________" // COLOR { 255, 0, 0 }
		@ 52,92  HPDFPRINT "<----  This line was drawing to simulate a baseline (made manually)" SIZE 9 COLOR { 0, 0, 255 }
        
		@ 60,20 HPDFPRINT "I have HMG 3.2.1 (stable) in Courier-Bold" FONT "Courier-Bold"
        
        @ 80, 10 HPDFPRINT "This is a sample Text in default font in ITALIC." ITALIC
        @ 90, 10 HPDFPRINT "This is a sample Text in default font in BOLD." BOLD
        
        @ 100, 10 HPDFPRINT "This is a sample Text in Arial or Helvetica font in ITALIC." FONT "aRIAL" SIZE 14 ITALIC
        @ 110, 10 HPDFPRINT "This is a sample Text in Arial or Helvetica font in BOLD and ITALIC." FONT "aRIAL" SIZE 14 BOLD ITALIC


*@ 120, 10 hpdfprint image 'img.jpg'  TYPE JPG width 40 height 40' size 10     // (((YOU CAN USE IF YOU HAVE A .JPG PICTURE.)))

        
  *      @ 120, 10 HPDFPRINT "This is a sample Text in Times-Roman font in ITALIC with size 8" font "TIMES-ROMAN" SIZE 8 ITALIC
        
        @ 135, 200 HPDFPRINT "This is right aligned text" SIZE 14 RIGHT
        
        @ 150, 105 HPDFPRINT "This is center aligned text" COLOR { 255, 0, 0 } CENTER
        
        @ 170, 100 HPDFPRINT "This is text in bigger font size" SIZE 30 COLOR { 255, 0, 0 }
        
        @ 190, 10 HPDFPRINT "The font is Tscparan.TTF" size 12

    END HPDFPAGE
END HPDFDOC
Execute File 'sample.pdf'
Return Nil

]]>
You can use a printer instead of file. File is pdf for emailing or printing.

Code: Select all


#include "hmg.ch"

Function Main()
SELECT HPDFDOC "sample.pdf" PAPERLENGTH 300 PAPERWIDTH 300 LOG
START HPDFDOC
    START HPDFPAGE
	
	SET HPDFDOC ENCODING TO "WinAnsiEncoding"
	    
		@ 10,20  HPDFPRINT "I want Euro sign here: "+CHR(128)
		
        @ 20,20  HPDFPRINT "I want this STRIKEOUT (not working)" STRIKEOUT

		@ 18,67  HPDFPRINT "_________" // COLOR { 51, 255, 255 }
		@ 20,92  HPDFPRINT "<----  This line was drawing to simulate a baseline (made manually)" SIZE 9 COLOR { 0, 0, 255 }
		
        @ 30,20  HPDFPRINT "I want this italic" ITALIC
        @ 40,20  HPDFPRINT "I want this bold" BOLD
        @ 50,20  HPDFPRINT "I want this UNDERLINE (not working)" UNDERLINE
		
		@ 50,67  HPDFPRINT "_________" // COLOR { 255, 0, 0 }
		@ 52,92  HPDFPRINT "<----  This line was drawing to simulate a baseline (made manually)" SIZE 9 COLOR { 0, 0, 255 }
        
		@ 60,20 HPDFPRINT "I have HMG 3.2.1 (stable) in Courier-Bold" FONT "Courier-Bold"
        
        @ 80, 10 HPDFPRINT "This is a sample Text in default font in ITALIC." ITALIC
        @ 90, 10 HPDFPRINT "This is a sample Text in default font in BOLD." BOLD
        
        @ 100, 10 HPDFPRINT "This is a sample Text in Arial or Helvetica font in ITALIC." FONT "aRIAL" SIZE 14 ITALIC
        @ 110, 10 HPDFPRINT "This is a sample Text in Arial or Helvetica font in BOLD and ITALIC." FONT "aRIAL" SIZE 14 BOLD ITALIC


*@ 120, 10 hpdfprint image 'img.jpg'  TYPE JPG width 40 height 40' size 10     // (((YOU CAN USE IF YOU HAVE A .JPG PICTURE.)))

        
  *      @ 120, 10 HPDFPRINT "This is a sample Text in Times-Roman font in ITALIC with size 8" font "TIMES-ROMAN" SIZE 8 ITALIC
        
        @ 135, 200 HPDFPRINT "This is right aligned text" SIZE 14 RIGHT
        
        @ 150, 105 HPDFPRINT "This is center aligned text" COLOR { 255, 0, 0 } CENTER
        
        @ 170, 100 HPDFPRINT "This is text in bigger font size" SIZE 30 COLOR { 255, 0, 0 }
        
        @ 190, 10 HPDFPRINT "The font is Tscparan.TTF" size 12

    END HPDFPAGE
END HPDFDOC
Execute File 'sample.pdf'
Return Nil

]]>
<![CDATA[General :: Re: Integración con WhatsApp :: Reply by mol]]> 2026-01-08T06:38:56+00:00 2026-01-08T06:38:56+00:00 http://www.hmgforum.com/viewtopic.php?f=24&t=7721&p=72047#p72047 THX for your samples, but I think, Mr Javier beeds whatsapp integration sample...]]> THX for your samples, but I think, Mr Javier beeds whatsapp integration sample...]]> <![CDATA[General :: Re: Integración con WhatsApp :: Reply by AUGE_OHR]]> 2026-01-08T09:35:17+00:00 2026-01-08T09:35:17+00:00 http://www.hmgforum.com/viewtopic.php?f=24&t=7721&p=72048#p72048 here is a older Fivewin Desktop Sample :
(not sure if it still work !)

Code: Select all

// whatsapp app must be installed and opened before running this code

#include "FiveWin.ch"

#define ORANGES "https://www.jesmondfruitbarn.com.au/wp-content/uploads/2016/10/Jesmond-Fruit-Barn-Oranges.jpg"

function Main()

   local cPhone   := ""
   local cMsg     := "Hello"

   if EDITVARS cPhone, cMsg
      SendToWhatsApp( AllTrim( cPhone ), AllTrim( cMsg ), ;
         { "tutor01.prg", "..\bitmaps\007.bmp", ORANGES, ;
            "https://www.google.co.in/" } )
   endif

return nil

function SendToWhatsApp( cPhone, cMsg, aAttach )

   local oShell
   local aFiles   := {}
   local aOthers  := {}

   if Empty( cPhone ); return .f.; endif

   DEFAULT cMsg := "Hello"

   if !Empty( aAttach )
      if !HB_ISARRAY( aAttach ); aAttach := { aAttach }; endif
      AEval( aAttach, {|c| if( HB_ISSTRING( c ) .and. File( c ), ;
            AAdd( aFiles, c ), AAdd( aOthers, c ) ) } )
   endif

   cMsg  := StrTran( cMsg, CRLF, "%0D%0A" )

   oShell := CreateObject( "WScript.Shell" )
   ShellExecute( 0, "Open", "whatsapp://send?phone="+cPhone+"&text="+cMsg )
   SysWait( 0.5 )

   if !Empty( aFiles )
      if FW_CopyToClipBoard( aFiles, 15 )
         SysWait( 2 ); oShell:SendKeys( "^v" ); SysWait( 1 )
      endif
   endif

   AEval( aOthers, <|u|
      if FW_CopyToClipBoard( u, 2 ) .or. FW_CopyToClipBoard( u )
         SysWait( 1 ); oShell:SendKeys( "^v" ); SysWait( 1 )
      endif
      return nil
      > )

   oShell:SendKeys("~")

return nil
you need to replace "FW_CopyToClipBoard()"]]>
here is a older Fivewin Desktop Sample :
(not sure if it still work !)

Code: Select all

// whatsapp app must be installed and opened before running this code

#include "FiveWin.ch"

#define ORANGES "https://www.jesmondfruitbarn.com.au/wp-content/uploads/2016/10/Jesmond-Fruit-Barn-Oranges.jpg"

function Main()

   local cPhone   := ""
   local cMsg     := "Hello"

   if EDITVARS cPhone, cMsg
      SendToWhatsApp( AllTrim( cPhone ), AllTrim( cMsg ), ;
         { "tutor01.prg", "..\bitmaps\007.bmp", ORANGES, ;
            "https://www.google.co.in/" } )
   endif

return nil

function SendToWhatsApp( cPhone, cMsg, aAttach )

   local oShell
   local aFiles   := {}
   local aOthers  := {}

   if Empty( cPhone ); return .f.; endif

   DEFAULT cMsg := "Hello"

   if !Empty( aAttach )
      if !HB_ISARRAY( aAttach ); aAttach := { aAttach }; endif
      AEval( aAttach, {|c| if( HB_ISSTRING( c ) .and. File( c ), ;
            AAdd( aFiles, c ), AAdd( aOthers, c ) ) } )
   endif

   cMsg  := StrTran( cMsg, CRLF, "%0D%0A" )

   oShell := CreateObject( "WScript.Shell" )
   ShellExecute( 0, "Open", "whatsapp://send?phone="+cPhone+"&text="+cMsg )
   SysWait( 0.5 )

   if !Empty( aFiles )
      if FW_CopyToClipBoard( aFiles, 15 )
         SysWait( 2 ); oShell:SendKeys( "^v" ); SysWait( 1 )
      endif
   endif

   AEval( aOthers, <|u|
      if FW_CopyToClipBoard( u, 2 ) .or. FW_CopyToClipBoard( u )
         SysWait( 1 ); oShell:SendKeys( "^v" ); SysWait( 1 )
      endif
      return nil
      > )

   oShell:SendKeys("~")

return nil
you need to replace "FW_CopyToClipBoard()"]]>
<![CDATA[General :: Re: Integración con WhatsApp :: Reply by serge_girard]]> 2026-01-08T09:44:50+00:00 2026-01-08T09:44:50+00:00 http://www.hmgforum.com/viewtopic.php?f=24&t=7721&p=72049#p72049 <![CDATA[General :: Re: Integración con WhatsApp :: Reply by serge_girard]]> 2026-01-08T10:03:41+00:00 2026-01-08T10:03:41+00:00 http://www.hmgforum.com/viewtopic.php?f=24&t=7721&p=72050#p72050

Code: Select all

#include "hmg.ch"
// whatsapp app must be installed and opened before running this code



#define ORANGES "https://www.jesmondfruitbarn.com.au/wp-content/uploads/2016/10/Jesmond-Fruit-Barn-Oranges.jpg"

FUNCTION Main()

   LOCAL cPhone := ""
   LOCAL cMsg   := "Hello"

   cPhone := InputBox( "Telefoonnummer", "WhatsApp", "" )
   IF Empty( cPhone )
      RETURN NIL
   ENDIF

   cMsg := InputBox( "Bericht", "WhatsApp", "Hello" )

   SendToWhatsApp( AllTrim( cPhone ), AllTrim( cMsg ), ;
      { "C:\bols\bols.dbf", ;
        "C:\bols\confirmQR.jpg"} )
        //ORANGES, ;
        //"https://www.google.com/" } )

RETURN NIL






FUNCTION SendToWhatsApp( cPhone, cMsg, aAttach )

   LOCAL oShell
   LOCAL aFiles  := {}
   LOCAL aOthers := {}
   LOCAL cItem

   IF Empty( cPhone )
      RETURN .F.
   ENDIF

   DEFAULT cMsg := "Hello"

   IF HB_ISARRAY( aAttach )
      FOR EACH cItem IN aAttach
         IF HB_ISSTRING( cItem ) .AND. File( cItem )
            AAdd( aFiles, cItem )
         ELSE
            AAdd( aOthers, cItem )
         ENDIF
      NEXT
   ENDIF

   cMsg := StrTran( cMsg, CRLF, "%0D%0A" )

   // WhatsApp openen
   ShellExecute( 0, "open", ;
      "whatsapp://send?phone=" + cPhone + "&text=" + cMsg, ;
      NIL, NIL, 1 )

   hb_idleSleep( 0.5 )

   oShell := CreateObject( "WScript.Shell" )

   // Bestanden plakken
   IF Len( aFiles ) > 0
      CopyFilesToClipboard( aFiles )
      hb_idleSleep( 2 )
      oShell:SendKeys( "^v" )
      hb_idleSleep( 1 )
   ENDIF

   // URL's / tekst
   FOR EACH cItem IN aOthers
      System.Clipboard := cItem
      hb_idleSleep( 1 )
      oShell:SendKeys( "^v" )
      hb_idleSleep( 1 )
   NEXT

   // Enter = verzenden
   oShell:SendKeys( "~" )

RETURN .T.





FUNCTION CopyFilesToClipboard( aFiles )

   LOCAL cList := ""

   AEval( aFiles, {|c| cList += '"' + c + '"' + CRLF } )
   System.Clipboard := cList
RETURN NIL


Whatsapp app must be installed and opened and logged in before running this code !

Beter solution is:
WhatsApp Business API
Twilio / 360dialog
Via HTTP POST + hbcurl]]>

Code: Select all

#include "hmg.ch"
// whatsapp app must be installed and opened before running this code



#define ORANGES "https://www.jesmondfruitbarn.com.au/wp-content/uploads/2016/10/Jesmond-Fruit-Barn-Oranges.jpg"

FUNCTION Main()

   LOCAL cPhone := ""
   LOCAL cMsg   := "Hello"

   cPhone := InputBox( "Telefoonnummer", "WhatsApp", "" )
   IF Empty( cPhone )
      RETURN NIL
   ENDIF

   cMsg := InputBox( "Bericht", "WhatsApp", "Hello" )

   SendToWhatsApp( AllTrim( cPhone ), AllTrim( cMsg ), ;
      { "C:\bols\bols.dbf", ;
        "C:\bols\confirmQR.jpg"} )
        //ORANGES, ;
        //"https://www.google.com/" } )

RETURN NIL






FUNCTION SendToWhatsApp( cPhone, cMsg, aAttach )

   LOCAL oShell
   LOCAL aFiles  := {}
   LOCAL aOthers := {}
   LOCAL cItem

   IF Empty( cPhone )
      RETURN .F.
   ENDIF

   DEFAULT cMsg := "Hello"

   IF HB_ISARRAY( aAttach )
      FOR EACH cItem IN aAttach
         IF HB_ISSTRING( cItem ) .AND. File( cItem )
            AAdd( aFiles, cItem )
         ELSE
            AAdd( aOthers, cItem )
         ENDIF
      NEXT
   ENDIF

   cMsg := StrTran( cMsg, CRLF, "%0D%0A" )

   // WhatsApp openen
   ShellExecute( 0, "open", ;
      "whatsapp://send?phone=" + cPhone + "&text=" + cMsg, ;
      NIL, NIL, 1 )

   hb_idleSleep( 0.5 )

   oShell := CreateObject( "WScript.Shell" )

   // Bestanden plakken
   IF Len( aFiles ) > 0
      CopyFilesToClipboard( aFiles )
      hb_idleSleep( 2 )
      oShell:SendKeys( "^v" )
      hb_idleSleep( 1 )
   ENDIF

   // URL's / tekst
   FOR EACH cItem IN aOthers
      System.Clipboard := cItem
      hb_idleSleep( 1 )
      oShell:SendKeys( "^v" )
      hb_idleSleep( 1 )
   NEXT

   // Enter = verzenden
   oShell:SendKeys( "~" )

RETURN .T.





FUNCTION CopyFilesToClipboard( aFiles )

   LOCAL cList := ""

   AEval( aFiles, {|c| cList += '"' + c + '"' + CRLF } )
   System.Clipboard := cList
RETURN NIL


Whatsapp app must be installed and opened and logged in before running this code !

Beter solution is:
WhatsApp Business API
Twilio / 360dialog
Via HTTP POST + hbcurl]]>
<![CDATA[General :: Re: Integración con WhatsApp :: Reply by franco]]> 2026-01-08T17:33:54+00:00 2026-01-08T17:33:54+00:00 http://www.hmgforum.com/viewtopic.php?f=24&t=7721&p=72051#p72051 I pdf print to printers or pdf print to file for email. In all my reports I give the option of print to file or print to printer.
I do not use @1,1 print any more. I use @1,1 hpdfprint.
If a person calls my clients using my software for a quote They will make up an estimate while they are on the phone with them.
Then ask them their email address. They then send the quote while on the phone with them. That way if customers
accept the can arrange right away how to the complete the sale. Works pretty well.
Don`t forget I am old school, still haven't figured out sql.
Having a bit of trouble sending daily inventory values to website.]]>
I pdf print to printers or pdf print to file for email. In all my reports I give the option of print to file or print to printer.
I do not use @1,1 print any more. I use @1,1 hpdfprint.
If a person calls my clients using my software for a quote They will make up an estimate while they are on the phone with them.
Then ask them their email address. They then send the quote while on the phone with them. That way if customers
accept the can arrange right away how to the complete the sale. Works pretty well.
Don`t forget I am old school, still haven't figured out sql.
Having a bit of trouble sending daily inventory values to website.]]>
<![CDATA[My HMG Projects :: Re: 📢 Announcement: Exclusive Access to Private MiniGUI 25.11.1 Builds :: Reply by gfilatov]]> 2026-01-22T08:10:19+00:00 2026-01-22T08:10:19+00:00 http://www.hmgforum.com/viewtopic.php?f=15&t=7715&p=72056#p72056
We’re pleased to announce the release of exclusive Private MiniGUI 26.01 packages.

The following packages are now available:

🔹 MiniGUI MinGW 64-bit Package includes
- gcc version 15.2.0 (MinGW-W64 x86_64-msvcrt-posix-seh, built by Brecht Sanders, r5)

🔹 MiniGUI BCC 7.70 Package includes
- Embarcadero C++ 7.70 for Win32

🔹 MiniGUI xHarbour Package includes
- xHarbour 1.3.2 Intl. (SimpLex) (Build 20260103)

🔹 MiniGUI Zig (Clang backend) 64-bit archive includes
- harbour and hbmk2 binaries;
- minigui libs and sources;
- selected examples (sqlrdd was included).

These builds are exclusively available to MiniGUI donors as a token of our gratitude for your continued support.

Thank you for being part of the MiniGUI community!

Warm regards,
Grigory Filatov
on behalf of the MiniGUI Team]]>

We’re pleased to announce the release of exclusive Private MiniGUI 26.01 packages.

The following packages are now available:

🔹 MiniGUI MinGW 64-bit Package includes
- gcc version 15.2.0 (MinGW-W64 x86_64-msvcrt-posix-seh, built by Brecht Sanders, r5)

🔹 MiniGUI BCC 7.70 Package includes
- Embarcadero C++ 7.70 for Win32

🔹 MiniGUI xHarbour Package includes
- xHarbour 1.3.2 Intl. (SimpLex) (Build 20260103)

🔹 MiniGUI Zig (Clang backend) 64-bit archive includes
- harbour and hbmk2 binaries;
- minigui libs and sources;
- selected examples (sqlrdd was included).

These builds are exclusively available to MiniGUI donors as a token of our gratitude for your continued support.

Thank you for being part of the MiniGUI community!

Warm regards,
Grigory Filatov
on behalf of the MiniGUI Team]]>
<![CDATA[My HMG Projects :: Re: 📢 Announcement: Exclusive Access to Private MiniGUI 25.11.1 Builds :: Reply by serge_girard]]> 2026-01-22T08:11:53+00:00 2026-01-22T08:11:53+00:00 http://www.hmgforum.com/viewtopic.php?f=15&t=7715&p=72057#p72057 <![CDATA[My HMG Projects :: Re: 📢 Announcement: Exclusive Access to Private MiniGUI 25.11.1 Builds :: Reply by Red2]]> 2026-01-22T15:17:15+00:00 2026-01-22T15:17:15+00:00 http://www.hmgforum.com/viewtopic.php?f=15&t=7715&p=72058#p72058