I trying to convert old program ( 16 bit) to xharbour and now my xmate make me errors :
::nWidth := pBmpWidth ( ::hBmp )
::nHeight := pBmpHeight( ::hBmp )
these func exist or not ?
Regards
Silvio
Falconi Silvio
I trying to convert old program ( 16 bit) to xharbour and now my xmate make me errors :
::nWidth := pBmpWidth ( ::hBmp )
::nHeight := pBmpHeight( ::hBmp )
these func exist or not ?
Regards
Silvio
Silvio wrote:I trying to convert old program ( 16 bit) to xharbour and now my xmate make me errors :
::nWidth := pBmpWidth ( ::hBmp )
::nHeight := pBmpHeight( ::hBmp )
these func exist or not ?
thanks Antonio
but now I am a problem to convert two file c ( clipper ) into xharbour can you help me I can send they on email ?
#include <WinTen.h>
#include <Windows.h>
#include <ClipApi.h>
CLIPPER xVScrll() // ( hWnd, wRows, nHRow, nRows, lHeader, nHeader )
{
HWND hWnd = _parni( 1 );
WORD wRows = _parni( 2 );
int nHRow = _parni( 3 );
int nRows = _parni( 4 );
HDC hDC = GetDC( hWnd );
RECT rct;
BOOL bHeader = _parl( 5 );
WORD nHeader = _parni( 6 );
GetClientRect( hWnd, &rct );
if ( bHeader )
rct.top = nHeader + 1;
rct.bottom = ( nHRow * nRows ) - 1;
ScrollWindowEx( hWnd, 0, -( nHRow * wRows ), 0, &rct, 0, 0, 0 );
ReleaseDC( hWnd, hDC );
}
//----------------------------------------------------------------------------//
CLIPPER xHScrll() // ( hWnd, nCols, nLeft, nRight )
{
HWND hWnd = _parni( 1 );
WORD wCols = _parni( 2 );
int nLeft = _parni( 3 );
int nRight = _parni( 4 );
HDC hDC = GetDC( hWnd );
RECT rct;
GetClientRect( hWnd, &rct );
if ( nLeft ) {
rct.left = nLeft;
}
if ( nRight ) {
rct.right = nRight;
}
ScrollWindowEx( hWnd, wCols, 0, 0, &rct, 0, 0, 0 );
ReleaseDC( hWnd, hDC );
}
//----------------------------------------------------------------------------//
#include "WinTen.h"
#include <Windows.h>
#include "ClipApi.h"
void pascal Dos3Call( void );
#define SUBSTDRIVE 0x8000
#define NETDRIVE 0x1000
//----------------------------------------------------------------------------//
CLIPPER cDrives() // It returns an string with all the valid drives ids
{
BYTE b,c;
BYTE drives[ 26 ];
BYTE nDrives = 0;
c = 0;
for( b = 0; b < 26; b++ )
drives[ b ] = ' ';
for( b = 0; b < 26; b++ )
{
// drives[ b ] = ' ';
_AX = 0x4409;
_BL = b;
Dos3Call();
if( ! ( _FLAGS & 1 ) )
{
drives[ c++ ] = 'A' + b - ( b >= 1 );
nDrives++;
}
}
_retclen( drives+1 , nDrives - 1);
}
//----------------------------------------------------------------------------//
Silvio,
The first functions are quite easy. Just add "hb" before the "_" of the extend system functions. Please review Harbour C source code RTL functions to get lots of examples.
Regarding the second one, you have to implement it using a Win32 API call as Dos3Call() is not supported in Win32.
Dear Antonio,
if you remember they are two prg ( c) of grid : I'm try to converte the old classes of Canal5
On olivares2000 there are some classes of canal5 but there is not the grid class, i just converte today the banner class with help of Paco.
Silvio wrote:Dear Antonio,
if you remember they are two prg ( c) of grid : I'm try to converte the old classes of Canal5
On olivares2000 there are some classes of canal5 but there is not the grid class, i just converte today the banner class with help of Paco.
dll32 static function ;
AcpGetDrives( nLength AS LONG, ;
@cBuffer AS STRING ) ;
AS LONG PASCAL FROM "GetLogicalDriveStringsA" ;
LIB "kernel32.dll"
function GetLocalDrives()
local nError := 0
local x := 0
local cDrives := Space( 78 )
local aDrives := {}
AcpGetDrives( 78, @cDrives )
for x:= 1 to 78 step 4
if !Empty( StrTran( SubStr( cDrives, x, 3 ), Chr( 0 ), "" ) )
AAdd( aDrives, SubStr( cDrives, x, 3 ) )
endif
next
return aDrivesthanks...
but i have another problems to onverte grid class
thanks to all
I asked help to paco and we have resolve all ..
the func driver is not important
Now the classes tbanner and grid canal5 run ok but there is only one small error for the footer of canal5 grid class .
Thanks to all
silvio