### Aligned DBCREATE example before Source: https://harbour.github.io/the-oasis/docs/click05.htm Example of a DBCREATE() call that Click recognizes and aligns. ```clipper dbcreate( 'filename.dbf', { { 'xxxxx', 'C', 23, 0 }, ; { 'yyy', 'D', 8, 0 }, ; { 'yy', 'C', 8, 0 }, ; { 'yuu', 'D', 8, 0 }, ; { 'yijiiiyy', 'N', 9, 2 }, ; { 'yhhfyy', 'D', 8, 0 } } ) ``` -------------------------------- ### Run PBMake with example filename Source: https://harbour.github.io/the-oasis/docs/pbmake05.htm Example of running PBMake with a specific makefile name, showing the optional extension. ```text MAKE MYPROG ``` -------------------------------- ### Example of DBCREATE not following the pattern Source: https://harbour.github.io/the-oasis/docs/click05.htm Example that is not aligned because the format does not match the prescribed pattern. ```clipper local temp := {} aadd( temp, { 'xxxxx', 'C', 23, 0 } ) aadd( temp, { 'yyy', 'D', 8, 0 } ) aadd( temp, { 'yy', 'C', 8, 0 } ) aadd( temp, { 'yuu', 'D', 8, 0 } ) aadd( temp, { 'yijiiiyy', 'N', 9, 2 } ) aadd( temp, { 'yhhfyy', 'D', 8, 0 } ) dbcreate( filename, temp ) ``` -------------------------------- ### hb_SetZipComment() and hb_ZipFile() example Source: https://harbour.github.io/doc/hbziparc.html Example that sets a comment and then creates a ZIP file with hb_ZipFile(). ```harbour ? hb_SetZipComment( "This is an Test" ) ? hb_ZipFile( "test.zip", { "test.xml", "test.ini" } ) ``` -------------------------------- ### SAVE ALL LIKE command example Source: https://harbour.github.io/the-oasis/docs/click05.htm Example of a command that was also fixed, likely related to the two-word command issue. ```unknown SAVE ALL LIKE A????X TO TEMP ``` -------------------------------- ### AdsDDAddTable() example with AdsConnect60() Source: https://harbour.github.io/doc/rddads.html Example of using AdsConnect60() to connect as ADSSYS, then adding a user and tables to a data dictionary. The connection uses all types of connection (7) and the example shows creating a user and adding tables with AdsDDAddTable(). ```unknown IF AdsConnect60( "harbour.add", 7 /* All types of connection */, "ADSSYS", "", ) // Add one user AdsDDCreateUser( , "Luiz", "papael", "This is luiz User" ) // Add the tables AdsDDAddTable( "Table1", "table1.adt", "table1.adi" ) // ... ENDIF ``` -------------------------------- ### Example: Saving a WBMP image with gdImageWBmp() Source: https://harbour.github.io/doc/hbgd.html Harbour example that creates an image, allocates colors, draws a rectangle, and saves it as a WBMP with a black foreground. ```harbour LOCAL pImage LOCAL white, black // Create an image in memory pImage := gdImageCreate( 100, 100 ) // Allocate background white := gdImageColorAllocate( pImage, 255, 255, 255 ) // Allocate drawing color black := gdImageColorAllocate( pImage, 0, 0, 0 ) // Draw a rectangle gdImageRectangle( pImage, 0, 0, 99, 99, black ) // Save the image with black as foreground color gdImageWBmp( pImage, "myimage.wbmp", black ) ``` -------------------------------- ### DBCREATE array alignment example Source: https://harbour.github.io/the-oasis/docs/click05.htm Example of an array destined for DBCREATE() that the Aligner now recognizes and aligns. ```clipper somevar := {{ 'XXX', 'C', 123, 0 },; { 'YYYYY', 'C', 99, 0 },; {'Z','D',8,0},; { 'AFIELD', 'C', 2, 0 } } ``` -------------------------------- ### gdImageGD() example Source: https://harbour.github.io/doc/hbgd.html Example for gdImageGD(). Loads a GIF image, then saves it as a GD image. ```harbour LOCAL pImage := gdImageCreateFromGif( "myimage.gif" ) // Image conversion gdImageGD( pImage, "myimage.gd" ) ``` -------------------------------- ### gdImageFillToBorder() example Source: https://harbour.github.io/doc/hbgd.html Example for gdImageFillToBorder(). Creates a 100x100 image, allocates blue and red, draws an ellipse, fills it to border, and saves as JPEG. ```harbour LOCAL pImage LOCAL blue, red // Create an image in memory pImage := gdImageCreate( 100, 100 ) // Allocate color blue := gdImageColorAllocate( pImage, 0, 0, 255 ) red := gdImageColorAllocate( pImage, 255, 0, 0 ) // Draw an ellipse gdImageArc( pImage, 50, 25, 98, 48, 0, 360, blue ) // Fill the ellipse gdImageFillToBorder( pImage, 50, 50, blue, red ) // Save the image gdImageJpeg( pImage, "myimage.jpg" ) ``` -------------------------------- ### gdImageFilledPolygon() example Source: https://harbour.github.io/doc/hbgd.html Example for gdImageFilledPolygon(). Creates a 100x100 image, allocates blue, draws a filled polygon with vertices, and saves as JPEG. ```harbour LOCAL pImage LOCAL blue LOCAL aVertices := { ; { 50, 0 }, ; { 99, 99 }, ; { 0, 99 } } // Create an image in memory pImage := gdImageCreate( 100, 100 ) // Allocate color blue := gdImageColorAllocate( pImage, 0, 0, 255 ) // Draw a filled polygon gdImageFilledPolygon( pImage, aVertices, blue ) // Save the image gdImageJpeg( pImage, "myimage.jpg" ) ``` -------------------------------- ### gdImageCreateFromPng() usage example Source: https://harbour.github.io/doc/hbgd.html Complete example of creating a PNG image from a file and using it. The image pointer is stored in a LOCAL variable. ```harbour LOCAL pImage := gdImageCreateFromPng( "myimage.png" ) // Use image here ``` -------------------------------- ### gdImageSetPixel() example Source: https://harbour.github.io/doc/hbgd.html Example for gdImageSetPixel(). It creates a 100x100 image, allocates white, draws a pixel at (50,50), and saves the image as myimage.jpg. ```harbour LOCAL pImage LOCAL white // Create an image in memory pImage := gdImageCreate( 100, 100 ) // Allocate color white := gdImageColorAllocate( pImage, 255, 255, 255 ) // Draw a pixel gdImageSetPixel( pImage, 50, 50, white ) // Save the image gdImageJpeg( pImage, "myimage.jpg" ) ``` -------------------------------- ### gdImageCreateFromPng() handle example Source: https://harbour.github.io/doc/hbgd.html Example of loading a PNG image from a file handle with a size parameter using gdImageCreateFromPng(). ```harbour pImage := gdImageCreateFromPng( nFileHandle, nSize ) ``` -------------------------------- ### gdImageCreateFromWBmp() handle example Source: https://harbour.github.io/doc/hbgd.html Example of loading a WBMP image from a file handle with a size parameter using gdImageCreateFromWBmp(). ```harbour pImage := gdImageCreateFromWBmp( nFileHandle, nSize ) ``` -------------------------------- ### gdImageCreateFromWBmp() usage example Source: https://harbour.github.io/doc/hbgd.html Complete example of creating a WBMP image from a file and using it. The image pointer is stored in a LOCAL variable. ```harbour LOCAL pImage := gdImageCreateFromWBmp( "myimage.wbmp" ) // Use image here ``` -------------------------------- ### hb_ZipFile() usage examples Source: https://harbour.github.io/doc/hbziparc.html Examples of creating zip files with a single file, an array of files, compression level, codeblock, and password. ```harbour LOCAL aFiles, nLen, aGauge IF hb_ZipFile( "test.zip", "test.prg" ) ? "File was successfully created" ENDIF IF hb_ZipFile( "test1.zip", { "test.prg", "test.hbp" } ) ? "File was successfully created" ENDIF IF hb_ZipFile( "test2.zip", { "test.prg", "test.hbp" }, 9, {| cFile, nPos | QOut( cFile ) } ) ? "File was successfully created" ENDIF aFiles := { "test.prg", "test.hbp" } nLen := Len( aFiles ) hb_ZipFile( "test33.zip", aFiles, 9,,, "hello" ) ``` -------------------------------- ### Run AEval() example with hbrun Source: https://harbour.github.io/example/arreval Run the example with hbrun and observe the output showing each array element with its position. ```bash $ hbrun arreval.prg 100 1 200 2 300 3 ``` -------------------------------- ### wvw_cbGetIndex() Source: https://harbour.github.io/doc/gtwvw.html Get current selection in combobox (start from zero). ```APIDOC ## wvw_cbGetIndex() ### Description Get current selection in combobox (start from zero). ### Syntax ``` wvw_cbGetIndex( , ) ``` ### Parameters - **nWinNum** (numeric) - Optional - Window number. Default is current window. - **nCBId** (numeric) - Required - ID of combobox. ### Returns Current position in combobox or -1 if failed. ### Platforms Available on Windows ### Tags API, `GTWVW` ``` -------------------------------- ### Aligned DBCREATE example after Source: https://harbour.github.io/the-oasis/docs/click05.htm Shows how DBCREATE is transformed into a more readable format . ```clipper dbcreate( 'FILENAME.DBF', { { 'XXXXX' , 'C', 23, 0 }, ; { 'YYY' , 'D', 8, 0 }, ; { 'YY' , 'C', 8, 0 }, ; { 'YUU' , 'D', 8, 0 }, ; { 'YIJIIIYY', 'N', 9, 2 }, ; { 'YHHFYY' , 'D', 8, 0 } } ) ``` -------------------------------- ### Example of @ SAY GET lines with COLOR clause Source: https://harbour.github.io/the-oasis/docs/click05.htm Shows @ SAY GET lines where the COLOR clause is a function call, which previously caused alignment issues. Click! now uses 'SAY |GET |PICT|COLO|WHEN|RANG|VALI' to detect these clauses. ```clipper @ 7, 25 get rdbf1 picture "@!" color (cCGetColor) @ 9, 25 get rprefunc picture "@!" valid ChkPreFunc() color (cCGetColor) @ 10, 25 get rpostfunc picture "@!" valid MakeStru() color (cCGetColor) @ 11, 25 get reptype picture "@!" valid REP->reptype$"RP" color (cCGetColor) @ 12, 25 get custom picture "@!" valid REP->custom$"YN" color (cCGetColor) ``` -------------------------------- ### Run osshell.prg with hbrun and expected output Source: https://harbour.github.io/example/osshell Command to run the Harbour example program osshell.prg using hbrun, followed by the expected output showing the shell prompt. The program prints 'About to shell to OS...' before starting a new shell. ```bash $ hbrun osshell.prg About to shell to OS... $ ``` -------------------------------- ### Example: Setting a tile with gdImageSetTile() Source: https://harbour.github.io/doc/hbgd.html Harbour example that creates an image, loads a tile from PNG, sets it, and fills a rectangle area using the gdTiled special color. ```harbour LOCAL pImage, pTile LOCAL blue, red // Create an image in memory pImage := gdImageCreate( 100, 100 ) // Open the tile PNG. For best results, portions of the // tile that should be transparent (i.e., allowing the // background to shine through) should have the transparent // color index. pTile := gdImageCreateFromPng( "mytile.png" ) // Allocate color (background color is the first allocate) black := gdImageColorAllocate( pImage, 0, 0, 0 ) // Set the tile gdImageSetTile( pImage, pTile ) // Fill an area using the tile gdImageFilledRectangle( pImage, 25, 25, 75, 75, gdTiled ) // Save the image gdImageJpeg( pImage, "myimage.jpg" ) ``` -------------------------------- ### gt_ChrCount() Example Source: https://harbour.github.io/doc/hbgt.html Example counting the occurrences of 't' in a string. ```plaintext ? gt_ChrCount( "t", "the cat sat on the mat" ) // --> 4 ``` -------------------------------- ### Run hello.prg with hbrun and expected output Source: https://harbour.github.io/example/hello Shows the command to run the example and the expected output. The command 'hbrun hello.prg' produces the output 'Hello, world!'. ```text $ hbrun hello.prg Hello, world! ``` -------------------------------- ### gt_CharOdd() Example Source: https://harbour.github.io/doc/hbgt.html Example showing the extraction of characters at odd positions. ```plaintext ? gt_CharOdd( "abcdefghijklm" ) // --> "acegikm" ``` -------------------------------- ### gt_CharMix() Example Source: https://harbour.github.io/doc/hbgt.html Examples showing how gt_CharMix() amalgamates two strings. ```plaintext ? gt_CharMix( "abc", "123" ) // --> "a1b2c3" ? gt_CharMix( "abcde", "123" ) // --> "a1b2c3de" ? gt_CharMix( "abc", "12345" ) // --> "a1b2c345" ``` -------------------------------- ### Example of a PBMake script with three sections Source: https://harbour.github.io/the-oasis/docs/pbmake06.htm Shows a PBMake script with three sections, each defining COMPILER, FLAG, PROG, SRCDIR, and OBJDIR. The first section also sets EXEFILE, LINKFILE, and LINKER. ```pbmake EXEFILE= LINKFILE= LINKER= COMPILER1= FLAG1= PROG1= SRCDIR1= OBJDIR1= COMPILER2= FLAG2= PROG2= SRCDIR2= OBJDIR2= COMPILER3= FLAG3= PROG3= SRCDIR3= OBJDIR3= ``` -------------------------------- ### gt_CharEven() Example Source: https://harbour.github.io/doc/hbgt.html Example showing extraction of characters at even positions. ```plaintext ? gt_CharEven( "abcdefghijklm" ) // --> "bdfhjl" ``` -------------------------------- ### hb_SetBuffer() example Source: https://harbour.github.io/doc/hbziparc.html Example call to hb_SetBuffer() with custom buffer sizes. ```harbour hb_SetBuffer( 100000, 115214, 65242 ) ``` -------------------------------- ### Example: Setting line thickness with gdImageSetThickness() Source: https://harbour.github.io/doc/hbgd.html Harbour example that allocates colors, sets thickness to 4 pixels, draws a fat line, and saves the image to a JPEG file. ```harbour #include "gd.ch" LOCAL pImage LOCAL black, white // Create an image in memory pImage := gdImageCreate( 100, 100 ) // Allocate color (background color is the first allocate) black := gdImageColorAllocate( pImage, 0, 0, 0 ) white := gdImageColorAllocate( pImage, 255, 255, 255 ) // Set thickness. gdImageSetThickness( pImage, 4 ) // Draw a fat line from the upper left corner to the lower right corner. gdImageLine( pImage, 0, 0, 99, 99, white ) // Save the image gdImageJpeg( pImage, "myimage.jpg" ) ``` -------------------------------- ### OBJDIR override example Source: https://harbour.github.io/the-oasis/docs/pbmake06.htm Shows how to set a global OBJDIR and override it for a specific section with OBJDIR2. ```plaintext OBJDIR=OBJ\ OBJDIR2=\OTHER\OBJ ``` -------------------------------- ### hb_GetZipComment() example Source: https://harbour.github.io/doc/hbziparc.html Example call to hb_GetZipComment() that prints the comment from test.zip. ```harbour ? "The comment in test.zip is:", hb_GetZipComment( "test.zip" ) ``` -------------------------------- ### AdsCacheOpenCursors() syntax and example Source: https://harbour.github.io/doc/rddads.html Syntax and example for AdsCacheOpenCursors(), which caches open cursors to speed up subsequent SELECTS. The default cache size is 25. The example disables caching by passing 0. ```harbour AdsCacheOpenCursors( ) → nRetVal ``` ```harbour ? AdsCacheOpenCursors( 0 ) ``` -------------------------------- ### Short Form Blank Template (PBINIT Basic PBMake script with comments) Source: https://harbour.github.io/the-oasis/docs/pbmake03.htm Default short form blank template with full commenting. Created by typing PBINIT and selecting 'Basic PBMake script with comments' from the menu. Contains placeholders for TARGET, LINKFILE, LINKER, INCLUDE, OBJDIR, SRCDIR, and up to 99 sections with FLAG and PROG variables. ```plaintext ****************************************************************************** * PBMake 2.16 for Clipper, Xbase++, C and ASM * * Copyright (C) 1998 Phil Barnett, All Rights Reserved Worldwide * * See PBMAKE.NG for help. * ****************************************************************************** // The target you are creating TARGET= // The linker script for the TARGET LINKFILE= // The linker you are using LINKER= // The include files you depend on INCLUDE= // Where the object code will go OBJDIR= // Where the source code resides SRCDIR= ================== Section 1 ==================== // The compiler flags for this section FLAG1= // The source files to compile (no extensions) // Multiple sources per PROG1= line is OK PROG1= PROG1= PROG1= PROG1= ================== Section 2 ==================== // The compiler flags for this section FLAG2= // The source files to compile (no extensions) // Multiple sources per PROG2= line is OK PROG2= PROG2= PROG2= PROG2= (You can have up to 99 sections) ``` -------------------------------- ### gt_AtDiff() Example Source: https://harbour.github.io/doc/hbgt.html Example comparing two strings and showing the returned positions. ```plaintext ? gt_AtDiff( "the cat", "the rat" ) // --> 5 ? gt_AtDiff( "the cat", "the " ) // --> 0 ``` -------------------------------- ### PBMake multi-line directive examples Source: https://harbour.github.io/the-oasis/docs/pbmake06.htm Shows how LIB, INCLUDE, PROG1, INCLUDE2, and CLEANUP directives can be repeated to add more values. These directives are additive and can be used up to 99 sections. ```plaintext LIB= F:\FLEXFILE\LIB\FLEX52.LIB LIB= F:\COMIX\LIB\CMX52.LIB ``` ```plaintext INCLUDE=C:\SOMEDIR\GLOBAL.CH INCLUDE=C:\ANOTHER\GLOBAL2.CH ``` ```plaintext OBJDIR=OBJ\ FLAG1= /W /M /N /Q /ES2 ``` ```plaintext PROG1=HELP DBF_OPEN PRINTER WHERPRNT P_PAYMNT J_BILL PROG1=ERROR52 INVCOST GOODNTX ADDQUEUE VENEDIT VENADD PROG1=EDTQUEUE FBROWSE DEPTADD PDOTADD ORDRFILL CLEAREM ``` ```plaintext INCLUDE2=C:\MSC\INCLUDE\C_GLOBAL.H INCLUDE2=PUBLICS.H INCLUDE2=FLD_MAST.H ``` ```plaintext CLEANUP=TEMP.TXT CLEANUP=*.$* CLEANUP=$*.* ``` -------------------------------- ### PBMAKE.INI [CLIPPER] section with {PRE}/{POST} link script example Source: https://harbour.github.io/the-oasis/docs/pbmake08.htm Example of the [CLIPPER] section in PBMAKE.INI used to create link scripts (.LNK). The {PRE} and {POST} position locators mark where linker commands go before and after object references; {OVERLAY} makes PBInit always overlay source code. Extra library calls are commented out and can be uncommented or deleted per link script needs. The section also includes placeholders for [C], [TASM], [MASM], and [XPP] sections. ```ini [CLIPPER] {OVERLAY} {PRE} NOBELL BLINKER MESSAGE WINK BLINKER INCREMENTAL OFF BLINKER EXECUTABLE CLIPPER //F:99 //E:0 BLINKER EXECUTABLE EXTENDED 1500 # BLINKER EXECUTABLE COMPRESS 1 BLINKER HOST MESSAGE ON STACK 7168 SEARCH BLXRATEX,BLXCLP52 {POST} #BEGIN # file cmxdbt52.obj # file cmx52.obj # lib cm52 # lib cmx52 #END # lib nanfor # Search mrwindow # @mrdmax # fi mrdump.lib #@CL520MIN @CL520MID #@CL520MAX # MODULE EXITSTATE,GETAPPLYKE,_EXITSTATE,GETACTIVE,READVAR #fi cld #@cm #@cmx #begin # lib TPOVL52 #end #search TPBLX52 #@TPBLX.lnk #BEGIN # lib FLEX52 #END #BEGIN # lib FUNCK #END #lib LLIBCA #lib CTp #FI CTUSp [C] {PRE} {POST} [TASM] {PRE} {POST} [MASM] {PRE} {POST} [XPP] {PRE} {POST} ``` -------------------------------- ### wvw_cbCreate() Source: https://harbour.github.io/doc/gtwvw.html Create a combobox in current window. ```APIDOC ## wvw_cbCreate() ### Description Create a combobox in current window. ### Syntax ``` wvw_cbCreate( , , , , , , , , , ) ``` ### Parameters - **nWinNum** (numeric) - Optional - Window number. Default is current window. - **nTop** (numeric) - Required - Top coordinate of combobox. - **nLeft** (numeric) - Required - Left coordinate of combobox. - **nWidth** (numeric) - Required - Width of combobox. - **aText** (array) - Optional - Array with all combobox elements. Default is empty. - **bBlock** (code block) - Optional - Code block, executed for the following events: CBN_SELCHANGE, CBN_SETFOCUS, CBN_KILLFOCUS. This code block will be evaluated with the following arguments: nWinNum, nCBId, nType, nIndex. - **nListLines** (numeric) - Optional - Number of lines to list items (default is 3). Will be automatically truncated if this parameter is greater than Len(aText). - **nReserved** (numeric) - Optional - Reserved for future use. - **nKbdType** (numeric) - Optional - Specifies the behavior of combobox. Can be 0 or 1. Default is 0. - **aOffset** (array) - Optional - Array with four elements containing offsets to corner pixels { x1, y1, x2, y2 }, to adjust dimension of combobox. Default is { -2, -2, +2, +2 }. The third element (y2) is actually ignored. Height of combobox is always 1 char height. ### Returns Handle of combobox, if successful. Zero if failed. ### Platforms Available on Windows ### Tags API, GTWVW ``` -------------------------------- ### Array constant example Source: https://harbour.github.io/the-oasis/docs/click05.htm Example of an array constant with mixed types, likely used for demonstration. ```clipper somevar := { { 'XXX' , 'C', 123, 0 }, ; { 'YYYYY' , 'C', 99, 0 }, ; { 'Z' , 'D', 8, 0 }, ; { 'AFIELD', 'C', 2, 0 } } ``` -------------------------------- ### wvw_pbCreate() Source: https://harbour.github.io/doc/gtwvw.html Creates a pushbutton in the current window with specified coordinates, text, image, and behavior. ```APIDOC ## wvw_pbCreate() ### Description Creates a pushbutton in the current window. ### Syntax ``` wvw_pbCreate( , , , , , , /, , , , ) ``` ### Parameters - **nWinNum** (numeric) - Optional - Window number. Default is current window. - **nTop** (numeric) - Required - Top coordinate to create the button. - **nLeft** (numeric) - Required - Left coordinate to create the button. - **nBottom** (numeric) - Required - Bottom coordinate to create the button. - **nRight** (numeric) - Required - Right coordinate to create the button. - **cText** (string) - Optional - Text of the button. Default is "". - **cImage/nImage** (string or numeric) - Optional - If specified as numeric, identify ID from Resource in a .RC file. If specified as string, must have a full path to an image file. - **bBlock** (code block) - Optional - Code block to be executed whenever a BN_CLICK event occurred (press and release the button). Always pass as a parameter: nWinNum and ID of button. - **aOffset** (array) - Optional - Array of four row/column elements with top/left, bottom/right coordinates to align button with. - **nStretchBitmap** (numeric) - Optional - Number between 0 and 1 (inclusive) as a stretch factor: 1.0 0.5 0 The bitmap will cover all button. The bitmap will cover only 50% of the button. The bitmap will not be stretched. Default is 1. - **lMap3DColors** (logical) - Optional - Specified if an image will be transparent (.T.) or not (.F.). This will work on 256 colored bitmaps only. ### Returns Returns the handle of the new pushbutton, if successful (or zero if failed). ### Platforms Available on Windows. ``` -------------------------------- ### gt_AscPos() Example Source: https://harbour.github.io/doc/hbgt.html Example showing ASCII value conversion of a character at a given position in a string. ```plaintext ? hb_BChar( gt_AscPos( "the cat sat on the mat", 3 ) ) // --> "e" ``` -------------------------------- ### hb_SetDiskZip() example Source: https://harbour.github.io/doc/hbziparc.html Example codeblock that alerts the user to insert a disk when a disk change is needed. ```harbour hb_SetDiskZip( {| nDisk | Alert( "Please insert disk no " + hb_ntos( nDisk ) ) } ) ``` -------------------------------- ### wvw_pbCreate() Syntax Source: https://harbour.github.io/doc/gtwvw.html Creates a pushbutton in the current window. The image can be a resource ID (numeric) or a full path to an image file (string). The code block is executed on BN_CLICK events. Returns the handle of the new pushbutton, or zero on failure. Available on Windows. ```unknown wvw_pbCreate( , , , , , , /, , , , ) ``` -------------------------------- ### gdImageCreateFromJpeg() example Source: https://harbour.github.io/doc/hbgd.html Example of loading a JPEG image from a file and using it. The returned pointer is not NIL on success. ```harbour LOCAL pImage := gdImageCreateFromJpeg( "myimage.jpg" ) // Use image here ``` -------------------------------- ### Build and run a Harbour application with hbmk2 Source: https://harbour.github.io/examples Compile and run a Harbour program using the hbmk2 command, then execute the resulting binary. ```shell $ hbmk2 app.prg $ ./app ``` -------------------------------- ### gdImageCreateFromGif() example Source: https://harbour.github.io/doc/hbgd.html Example of loading a GIF image from a file and using it. The returned pointer is not NIL on success. ```harbour LOCAL pImage := gdImageCreateFromGif( "myimage.gif" ) // Use image here ``` -------------------------------- ### wvw_pgCreate() Source: https://harbour.github.io/doc/gtwvw.html Create progress bar for current window. ```APIDOC ## wvw_pgCreate() ### Description Create progress bar for current window. Progress bar range is initially set as 0 to 100, start from 0. ### Syntax ``` wvw_pgCreate( , , , , , , , , , ) ``` ### Parameters - **nWinNum** - Window number. Default is current window. - **nTop, , , nRight>** - Coordinates to create a progress bar. - **aOffset** - Array of four elements with top/left, bottom/right coordinates to align progress bar with row/column. - **nBackColor** - Background color. - **nBarColor** - Progress bar color. - **lSmooth** - `.T.` draw progress bar as a continuum bar `.F.` draw progress bar with tiny distinct rectangles (default) - **lVertical** - `.T.` draw as vertical progress bar `.F.` draw as horizontal progress bar (default) ### Returns Progress bar handle, if successful. Zero if failed. ### Platforms Available on Windows ```