Algo muy importante
Con base de datos grandes y medianas es mas rapido el manejo de MySql con ODBC que con la nueva clase de Fw para manejo directo de MySql
Ejemplo: simplemente pueden comparar y tomar tiempos, ODBC es mas de 3 veces rapido
#include "fivewin.ch"
REQUEST DBFCDX
//----------------------------------------------------------------------------//
function Main()
local oODBC, oADO, oFWH
local oQry, oRsADO, oRsFWH
local nSecs, nODBCSecs, nADOSecs, nFWHSecs
local cTable := "custbig"
RDDSETDEFAULT( "DBFCDX" )
SET DELETED ON
SET DATE ITALIAN
SET CENTURY ON
FWNumFormat( "A", .t. )
? "Connecting"
oODBC := TOdbc():New( "MYSQLANSI", "gnrao", "secret" )
oADO := FW_OpenAdoConnection( "MYSQL,localhost,fwh,gnrao,secret", .t. )
FWCONNECT oFWH HOST "localhost" USER "gnrao" PASSWORD "secret" DATABASE "fwh"
nSecs := Seconds()
MsgRun( "Reading table", "ODBC", { || ;
oQry := oOdbc:Query( "SELECT * FROM custbig" ), ;
oQry:Open(), ;
oQry:RecCount() } )
nODBCSecs := Seconds() - nSecs
nSecs := Seconds()
MsgRun( "Reading Table", "ADO", { || oRsADO := FW_OpenRecordSet( oAdo, cTable ) } )
nAdoSecs := Seconds() - nSecs
MsgRun( "Reading table", "FWH-MARIADB", { || oRsFWH := oFwh:RowSet( cTable ) } )
nFwhSecs := oRsFwh:nReadSecs
XBROWSER oQry FASTEDIT SHOW SLNUM ;
TITLE "Million Rows Read in " + cValToChar( nODBCSecs ) + " by ODBC" NOMODAL
XBROWSER oRsADO FASTEDIT SHOW SLNUM ;
TITLE "Million Rows Read in " + cValToChar( nADOSecs ) + " by ADO" NOMODAL
XBROWSER oRsFWH FASTEDIT SHOW SLNUM ;
TITLE "Million Rows Read in " + cValToChar( nFWHSecs ) + " by FWH-MARIADB"
oODBC:End()
oAdo:Close()
oFwh:Close()
return nil
ODBC 138.17 seconds ( 2 minutes 18 seconds )
ADO 14.58 seconds
FWHMYSQL 3.78 seconds
#include "FiveWin.ch"
function Main()
local aBmp, oWnd, n, r, c, w, h
w := ScreenWidth() - 60
h := ScreenWidth() - 100
aBmp := DIRECTORYRECURSE( "c:\fwh\bitmaps\*.*" )
r := 10
c := 0
DEFINE WINDOW oWnd
for n := 1 to 1000
@ r, c BTNBMP PROMPT cFileNoExt( aBmp[ n, 1 ] ) ;
FILE aBmp[ n, 1 ] SIZE 36,42 PIXEL OF oWnd
c += 40
if c > w
r += 45
c := 0
if r > h
EXIT
endif
endif
next n
ACTIVATE WINDOW oWnd MAXIMIZED
return nil
#include "fivewin.ch"
function Main()
local aBmp, oWnd, oBrush, n, r, c, w, h
w := ScreenWidth() - 70
h := ScreenHeight() - 80
aBmp := DIRECTORYRECURSE( "c:\fwh\bitmaps\*.*" )
r := 10
c := 0
DEFINE BRUSH oBrush GRADIENT { { 1, CLR_WHITE, CLR_YELLOW } }
DEFINE WINDOW oWnd BRUSH oBrush
for n := 1 to 1000
@ r, c BTNBMP PROMPT cFileNoExt( aBmp[ n, 1 ] ) ;
FILE aBmp[ n, 1 ] SIZE 48,64 PIXEL OF oWnd 2007
c += 55
if c > w
r += 70
c := 0
if r > h
EXIT
endif
endif
next n
ACTIVATE WINDOW oWnd MAXIMIZED
RELEASE BRUSH oBrush
return nil
@268,106 BTNBMP qBtnZN File "Imagenes\Zonas.bmp" Prompt "&Zonas" PIXEL OF oDlgCli Size 26,26 Font oFontBtn ACTION TabZonas() 2007
@ECHO OFF
CLS
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ FiveWin for Harbour 16.05 (MSVC++) May 2016 Harbour development power ³Ü
ECHO ³ (c) FiveTech,1993-2015 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
set oldpath=%path%
set oldinclude=%include%
set oldlib=%lib%
set oldlibpath=%libpath%
if exist "%ProgramFiles%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" call "%ProgramFiles%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" call "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
if "%FWDIR%" == "" set FWDIR=c:\fwhU
if "%HBDIR%" == "" set HBDIR=c:\harbour
ECHO Compiling...
@set fwh=%FWDIR%
@set hdir=%HBDIR%
@set hdirl=%hdir%\lib\vc32
del *.obj
del *.ppo
attrib %1.exe -r
%hdir%\bin\harbour otrasfun.prg /n /i%fwh%\include;%hdir%\include;%sdkdir%\include /w0 /p %2 %3 > comp.log
%hdir%\bin\harbour %1 /n /i%fwh%\include;%hdir%\include;%sdkdir%\include /w0 /p %2 %3 > comp.log 2> warnings.log
IF ERRORLEVEL 1 GOTO COMPILEERROR
@type comp.log
@type warnings.log
rem "%VCINSTALLDIR%"bin\cl -TP -W3 -c /GS- /I%hdir%\include /GA %1.c otrasfun.c
"%VCINSTALLDIR%"bin\cl -TP -W3 -c /I%hdir%\include %1.c otrasfun.c
:ENDCOMPILE
IF EXIST %1.rc IF EXIST "%VCINSTALLDIR%"bin\rc "%VCINSTALLDIR%"bin\rc -r -d__FLAT__ %1
IF EXIST %1.rc IF NOT EXIST %1.res rc -r -d__FLAT__ %1
echo %1.obj otrasfun.obj > msvc.tmp
echo %fwh%\lib\FiveH32.lib %fwh%\lib\FiveHC32.lib %fwh%\lib\libmysql32.lib >> msvc.tmp
echo %hdirl%\hbrtl.lib >> msvc.tmp
echo %hdirl%\hbvm.lib >> msvc.tmp
echo %hdirl%\gtgui.lib >> msvc.tmp
echo %hdirl%\hblang.lib >> msvc.tmp
echo %hdirl%\hbmacro.lib >> msvc.tmp
echo %hdirl%\hbrdd.lib >> msvc.tmp
echo %hdirl%\rddntx.lib >> msvc.tmp
echo %hdirl%\rddcdx.lib >> msvc.tmp
echo %hdirl%\rddfpt.lib >> msvc.tmp
echo %hdirl%\hbsix.lib >> msvc.tmp
echo %hdirl%\hbdebug.lib >> msvc.tmp
echo %hdirl%\hbcommon.lib >> msvc.tmp
echo %hdirl%\hbpp.lib >> msvc.tmp
echo %hdirl%\hbcpage.lib >> msvc.tmp
echo %hdirl%\hbwin.lib >> msvc.tmp
echo %hdirl%\hbct.lib >> msvc.tmp
echo %hdirl%\hbziparc.lib >> msvc.tmp
echo %hdirl%\hbmzip.lib >> msvc.tmp
echo %hdirl%\hbzlib.lib >> msvc.tmp
echo %hdirl%\hbpcre.lib >> msvc.tmp
echo %hdirl%\minizip.lib >> msvc.tmp
echo %hdirl%\xhb.lib >> msvc.tmp
echo %hdirl%\hbcplr.lib >> msvc.tmp
echo %hdirl%\png.lib >> msvc.tmp
echo %hdirl%\hbcomm.lib >> msvc.tmp
rem Uncomment these two lines to use Advantage RDD
rem echo %hdirl%\rddads.lib >> msvc.tmp
rem echo %hdirl%\ace32.lib >> msvc.tmp
rem echo ws2_32.lib >> msvc.tmp
echo kernel32.lib >> msvc.tmp
echo user32.lib >> msvc.tmp
echo gdi32.lib >> msvc.tmp
echo winspool.lib >> msvc.tmp
echo comctl32.lib >> msvc.tmp
echo comdlg32.lib >> msvc.tmp
echo advapi32.lib >> msvc.tmp
echo shell32.lib >> msvc.tmp
echo ole32.lib >> msvc.tmp
echo oleaut32.lib >> msvc.tmp
echo uuid.lib >> msvc.tmp
echo odbc32.lib >> msvc.tmp
echo odbccp32.lib >> msvc.tmp
echo iphlpapi.lib >> msvc.tmp
echo mpr.lib >> msvc.tmp
echo version.lib >> msvc.tmp
echo wsock32.lib >> msvc.tmp
echo msimg32.lib >> msvc.tmp
echo oledlg.lib >> msvc.tmp
echo psapi.lib >> msvc.tmp
echo gdiplus.lib >> msvc.tmp
echo winmm.lib >> msvc.tmp
echo vfw32.lib >> msvc.tmp
echo runtimeobject.lib >> msvc.tmp
echo ws2_32.lib >> msvc.tmp
echo shlwapi.lib >> msvc.tmp
echo strmiids.lib >> msvc.tmp
IF EXIST %1.res echo %1.res >> msvc.tmp
"%VCINSTALLDIR%"bin\link @msvc.tmp /nologo /subsystem:windows,5.01 /force:multiple /NODEFAULTLIB:msvcrt /machine:X86 /nxcompat:NO /Ignore:4006
IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built *
@set path=%oldpath%
@set include=%oldinclude%
@set lib=%oldlib%
@set libpath=%oldlibpath%
@set oldpath=""
@set oldinclude=""
@set oldlib=""
@set oldlibpath=""
%1
GOTO EXIT
ECHO
rem delete temporary files
@del %1.c
@del msvc.tmp
:COMPILEERROR
@type comp.log
@type warnings.log
ECHO * Compiling 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
@ECHO OFF
CLS
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ FiveWin for Harbour 16.05 - May 2016 Harbour development power ³Ü
ECHO ³ (c) FiveTech,1993-2015 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
@set oldpath=%path%
@set oldinclude=%include%
@set oldlib=%lib%
@set oldlibpath=%libpath%
if exist "%ProgramFiles%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" call "%ProgramFiles%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" call "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64
if "%FWDIR%" == "" set FWDIR=c:\fwh64U
if "%HBDIR%" == "" set HBDIR=c:\harbour64
ECHO Compiling...
@set fwh=%FWDIR%
set hdir=%HBDIR%
set hdirl=%hdir%\lib\vc64
del *.obj
del *.ppo
attrib %1.exe -r
%hdir%\bin\harbour otrasfun.prg /n /i%fwh%\include;%hdir%\include;%sdkdir%\include /w0 /p /d__64__ %2 %3 > comp.log
%hdir%\bin\harbour %1 /n /i%fwh%\include;%hdir%\include /w0 /p /d__64__ %2 %3 > comp.log 2> warnings.log
IF ERRORLEVEL 1 GOTO COMPILEERROR
@type comp.log
@type warnings.log
cl -TP -W3 -O2 -c -I%hdir%\include %1.c otrasfun.c
:ENDCOMPILE
IF EXIST %1.rc rc -r -D__64__ %1
echo %1.obj otrasfun.obj > msvc.tmp
echo %fwdir%\lib\FiveH64.lib %fwdir%\lib\FiveHC64.lib %fwdir%\lib\libmysql64.lib >> msvc.tmp
echo %hdirl%\hbrtl.lib >> msvc.tmp
echo %hdirl%\hbvm.lib >> msvc.tmp
echo %hdirl%\gtgui.lib >> msvc.tmp
echo %hdirl%\hblang.lib >> msvc.tmp
echo %hdirl%\hbmacro.lib >> msvc.tmp
echo %hdirl%\hbrdd.lib >> msvc.tmp
echo %hdirl%\rddntx.lib >> msvc.tmp
echo %hdirl%\rddcdx.lib >> msvc.tmp
echo %hdirl%\rddfpt.lib >> msvc.tmp
echo %hdirl%\hbsix.lib >> msvc.tmp
echo %hdirl%\hbdebug.lib >> msvc.tmp
echo %hdirl%\hbcommon.lib >> msvc.tmp
echo %hdirl%\hbpp.lib >> msvc.tmp
echo %hdirl%\hbcpage.lib >> msvc.tmp
echo %hdirl%\hbwin.lib >> msvc.tmp
echo %hdirl%\hbct.lib >> msvc.tmp
echo %hdirl%\hbziparc.lib >> msvc.tmp
echo %hdirl%\hbmzip.lib >> msvc.tmp
echo %hdirl%\hbzlib.lib >> msvc.tmp
echo %hdirl%\hbpcre.lib >> msvc.tmp
echo %hdirl%\minizip.lib >> msvc.tmp
echo %hdirl%\xhb.lib >> msvc.tmp
echo %hdirl%\hbcplr.lib >> msvc.tmp
echo %hdirl%\png.lib >> msvc.tmp
echo %hdirl%\hbcomm.lib >> msvc.tmp
rem Uncomment these two lines to use Advantage RDD
rem echo %hdirl%\rddads.lib >> msvc.tmp
rem echo %hdirl%\ace32.lib >> msvc.tmp
rem echo ws2_32.lib >> msvc.tmp
echo kernel32.lib >> msvc.tmp
echo user32.lib >> msvc.tmp
echo gdi32.lib >> msvc.tmp
echo winspool.lib >> msvc.tmp
echo comctl32.lib >> msvc.tmp
echo comdlg32.lib >> msvc.tmp
echo advapi32.lib >> msvc.tmp
echo shell32.lib >> msvc.tmp
echo ole32.lib >> msvc.tmp
echo oleaut32.lib >> msvc.tmp
echo uuid.lib >> msvc.tmp
echo odbc32.lib >> msvc.tmp
echo odbccp32.lib >> msvc.tmp
echo iphlpapi.lib >> msvc.tmp
echo mpr.lib >> msvc.tmp
echo version.lib >> msvc.tmp
echo wsock32.lib >> msvc.tmp
echo msimg32.lib >> msvc.tmp
echo oledlg.lib >> msvc.tmp
echo psapi.lib >> msvc.tmp
echo gdiplus.lib >> msvc.tmp
echo winmm.lib >> msvc.tmp
echo vfw32.lib >> msvc.tmp
echo runtimeobject.lib >> msvc.tmp
echo ws2_32.lib >> msvc.tmp
echo shlwapi.lib >> msvc.tmp
echo strmiids.lib >> msvc.tmp
IF EXIST %1.res echo %1.res >> msvc.tmp
link @msvc.tmp /nologo /subsystem:windows,5.02 /force:multiple /NODEFAULTLIB:libc /machine:X64 /nxcompat:NO /Ignore:4006
rem link @msvc.tmp /nologo /subsystem:windows /force:multiple /NODEFAULTLIB:msvcrt
IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built *
@set path=%oldpath%
@set include=%oldinclude%
@set lib=%oldlib%
@set libpath=%oldlibpath%
@set oldpath=""
@set oldinclude=""
@set oldlib=
@set oldlibpath=
GOTO EXIT
ECHO
rem delete temporary files
@del %1.c
@del msvc.tmp
:COMPILEERROR
@type comp.log
ECHO * Compiling 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
HGLOBAL DibRead( LPSTR szDibName )
{
HFILE hFile;
LONG lSize;
HGLOBAL hDib = 0;
BITMAPFILEHEADER Header;
if( hFile = ( HFILE ) _lopen( szDibName, READ ) )
{
if( hDib = ( HGLOBAL ) fwGlobalAlloc( GMEM_MOVEABLE | GMEM_DISCARDABLE,
lSize = _llseek( hFile, 0, 2 ) ) )
{
_llseek( hFile, 0, 0 );
_lread( hFile, &Header, sizeof( BITMAPFILEHEADER ) );
_hread( hFile, GlobalLock( hDib ),
lSize - sizeof( BITMAPFILEHEADER ) );
GlobalUnlock( hDib );
}
_lclose( hFile );
}
else
MessageBox( 0, "error", "error", 0 );
return hDib;
}
color.c
HB_FUNC( ARGB2RGB )
{
#ifdef _WIN64
LONGLONG argb = hb_parnll( 1 );
#else
double argb = hb_parnd( 1 );
#endif
HB_LONG rgb;
if ( argb > 0x00ffffff )
{
rgb = ( ( ( ULONG ) argb ) & 0x00ffffff );
rgb = ( ( rgb & 0x00ff0000 ) >> 16 ) |
( ( rgb & 0x0000ff00 ) ) |
( ( rgb & 0x000000ff ) << 16 );
} else rgb = ( ULONG ) argb;
hb_retnl( rgb );
}
ctrldraw.c
// if( lstrcmp( ClassName, "MDIClient" ) == 0 ) // MDIClient
// iParentsWithCaption++;
// if( lstrcmp( ClassName, L"MDIClient" ) == 0 ) // MDIClient
// iParentsWithCaption++;
fonts.c
if( lpLogFont->lfFaceName[ 0 ] != '@' )
hb_storvc( lpLogFont->lfFaceName, -1, nFontIndex );
else
hb_storvc( lpLogFont->lfFaceName + 1, -1, nFontIndex );
gdipfwh.cpp
HB_FUNC( GDIP_COLORBRUSH )
{
hb_retptr( new SolidBrush( rgbtoclr( (ARGB) hb_parnd( 1 ) ) ) );
}
//----------------------------------------------------------------------------//
HB_FUNC( GDIP_IMAGEBRUSH )
{
Bitmap * pImage = ( Bitmap * ) hb_parptr( 1 );
hb_retptr( new TextureBrush( pImage ) );
}
//----------------------------------------------------------------------------//
HB_FUNC( GDIP_DELETEBRUSH )
{
delete ( ( Brush * ) hb_parptr( 1 ) );
}
//----------------------------------------------------------------------------//
#ifdef _WIN64
#ifdef __BORLANDC__
#define __BCC64__
#endif
#endif
HB_FUNC( GDIP_DRAWTEXT ) // hDC, cText, aRect, hFont, pBrush, nAlign )
{
HDC hDC = ( HDC ) fw_parH( 1 );
Graphics * graphics = new Graphics( hDC );
LPWSTR string = fw_parWide( 2 );
HFONT hFont = ( HFONT ) fw_parH( 4 );
Font font( hDC, hFont );
Brush * brush;
LPCSTR pStr;
int nAlign = DT_CENTER | DT_VCENTER;
BOOL bLocalBrush = FALSE;
RectF layoutRect = RectF( hb_parvnd( 3, 2 ), hb_parvnd( 3, 1 ),
hb_parvnd( 3, 4 ) - hb_parvnd( 3, 2 ), hb_parvnd( 3, 3 ) - hb_parvnd( 3, 1 ) );
if ( HB_ISPOINTER( 5 ) ) brush = ( Brush * ) hb_parptr( 5 );
else {
bLocalBrush = TRUE;
brush = new SolidBrush( rgbtoclr( (ARGB) ( HB_ISNUM( 5 ) ?
hb_parnd( 5 ) : 0x80000000 ) ) );
}
if ( HB_ISCHAR( 6 ) )
{
pStr = hb_parc( 6 );
nAlign = ( strchr( pStr, 'L' ) == NULL && strchr( pStr, 'l' ) == NULL ?
( strchr( pStr, 'R' ) == NULL && strchr( pStr, 'r' ) == NULL ? DT_CENTER : DT_RIGHT ) : DT_LEFT )
+ ( strchr( pStr, 'T' ) == NULL && strchr( pStr, 't' ) == NULL ?
( strchr( pStr, 'B' ) == NULL && strchr( pStr, 'b' ) == NULL ? DT_VCENTER : DT_BOTTOM ) : DT_TOP );
}
else if ( HB_ISNUM( 6 ) ) nAlign = ( hb_parni( 6 ) & 0x0f );
//#if defined(__BCC64__) || defined(__GNUC__)
// graphics->DrawString( string, -1, &font, layoutRect, NULL, brush );
//#else
// StringFormat sf = new StringFormat( 0, LANG_NEUTRAL );
StringFormat sf;
sf.SetAlignment( ( StringAlignment ) ( nAlign & 3 ));
sf.SetLineAlignment( ( StringAlignment ) ( nAlign >> 2 ) );
graphics->DrawString( string, -1, &font, layoutRect, &sf, brush );
//#endif
hb_xfree( string );
if ( bLocalBrush ) delete brush;
}
//----------------------------------------------------------------------------//
gdiplus.cpp
HB_FUNC( GDIP_SETWRAPTEXTUREBRUSH )
{
TextureBrush * Brush = ( TextureBrush * ) hb_parptr( 1 );
int ntype = hb_parni( 2 ) ;
if ( ntype == 0 )
Brush->SetWrapMode( WrapModeTile ) ;
if ( ntype == 1 )
Brush->SetWrapMode( WrapModeTileFlipX ) ;
if ( ntype == 2 )
Brush->SetWrapMode( WrapModeTileFlipY ) ;
if ( ntype == 3 )
Brush->SetWrapMode( WrapModeTileFlipXY ) ;
if ( ntype == 4 )
Brush->SetWrapMode( WrapModeClamp ) ;
}
//----------------------------------------------------------------------------//
text.c
HB_FUNC( DRAWTEXTEX ) // ( hDC, cText, aRect, nStyle, [hFont], [nClr], [@nRight] ) --> nHeight
HDC hDC;
HFONT hFont, hOldFont;
COLORREF nClr, nOldClr;
BOOL bColor = FALSE;
hDC = fw_parH( 1 );
if ( hb_pcount() > 4 && HB_ISNUM( 5 ) )
{
hFont = ( HFONT ) fw_parH( 5 );
hOldFont = SelectObject( hDC, hFont );
}
if ( hb_pcount() > 5 && HB_ISNUM( 6 ) )
{
bColor = TRUE;
nClr = ( COLORREF ) ( hb_parnl( 6 ) & 0xffffff );
nOldClr = SetTextColor( hDC, nClr );
}
iRet = DrawTextExW( hDC,
iRet = DrawTextExA( hDC,
if ( hOldFont ) SelectObject( hDC, hOldFont );
if ( bColor ) SetTextColor( hDC, nOldClr );
if ( hb_pcount() > 6 && HB_ISBYREF( 7 ) && ( dwStyle & DT_CALCRECT ) )
hb_storni( rct.right, 7 );
imgtxtio.prg
valtostr.prg
valtostt.prg//new
btnbmp.prg
menu.prg
pdmenu.prg
printer.prg
rpreview.prg
say.prg
tfoldex.prg
triched5.prg
window.prg
xbrowse.prg
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: No registered users and 42 guests