On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Пост N: 13
Зарегистрирован: 03.01.10
ссылка на сообщение  Отправлено: 11.02.10 23:30. Заголовок: ­gauge.c ошибка с исправленным текстом


(кодировка получается кривая)
error in gauge.c !

#include "hbapi.h"
#include "hbapiitm.h"
#include "hbapigt.h"

/* Box array definitions */
#define B_TOP 1
#define B_LEFT 2
#define B_BOTTOM 3
#define B_RIGHT 4
#define B_BACKCOLOR 5
#define B_BARCOLOR 6
#define B_DISPLAYNUM 8
#define B_BARCHAR 7
#define B_PERCENT 9
#define B_LEN B_PERCENT

#define B_BOXLINES "„Ў„џ„ў„ „Ј„џ„¤„ "

static void hb_gaugeUpdate( PHB_ITEM pArray, float fPercent )
int iCenter = ( ( hb_arrayGetNI( pArray, B_RIGHT ) - hb_arrayGetNI( pArray, B_LEFT ) ) / 2 ) + 1;


{
/* next error !!! */
/* int iCenter = ( ( hb_arrayGetNI( pArray, B_RIGHT ) - hb_arrayGetNI( pArray, B_LEFT ) ) / 2 ) + 1; */
int iCenter = hb_arrayGetNI( pArray, B_LEFT ) - 3
+ ( ( hb_arrayGetNI( pArray, B_RIGHT ) - hb_arrayGetNI( pArray, B_LEFT ) ) / 2 ) ;
int iRatio = hb_arrayGetNI( pArray, B_RIGHT ) - hb_arrayGetNI( pArray, B_LEFT ) - 1;
int iRow;
int iCols;
int iMax;
char szOldColor[ HB_CLRSTR_LEN ];
char szPct[ 5 ];

hb_gtGetColorStr( szOldColor );
hb_gtSetColorStr( hb_arrayGetCPtr( pArray, B_BARCOLOR ) );

fPercent = ( fPercent < 0 ? 0 : ( fPercent > 1 ? 1 : fPercent ) );
iCols = ( int ) ( fPercent * iRatio );

if( hb_arrayGetL( pArray, B_DISPLAYNUM ) )
{
hb_snprintf( szPct, sizeof( szPct ), "%3.0f%%", fPercent * 100 );
hb_gtWriteAt( hb_arrayGetNI( pArray, B_TOP ),
iCenter + 2,
szPct, 4 );
}

hb_gtBox( hb_arrayGetNI( pArray, B_TOP ) + 1,
hb_arrayGetNI( pArray, B_LEFT ) + 1,
hb_arrayGetNI( pArray, B_BOTTOM ) - 1,
hb_arrayGetNI( pArray, B_RIGHT ) - 1,
" " );

iMax = hb_arrayGetNI( pArray, B_BOTTOM ) - hb_arrayGetNI( pArray, B_TOP ) - 1;
for( iRow = 1; iRow <= iMax; iRow++ )
{
hb_gtRepChar( hb_arrayGetNI( pArray, B_TOP ) + iRow,
hb_arrayGetNI( pArray, B_LEFT ) + 1,
* hb_arrayGetCPtr( pArray, B_BARCHAR ),
( USHORT ) iCols );
}

hb_gtSetColorStr( szOldColor );
}

/* GaugeNew( <nRowTop>, <nColumnTop>, <nRowBottom>, <nColumnBottom>,
[<cBackgroundColor>],
[<cGaugeColor>],
[<cGaugeCharacter>] ) --> aGauge
*/
HB_FUNC( GAUGENEW )
{
PHB_ITEM pReturn = hb_itemArrayNew( B_LEN ); /* Create array */

hb_arraySetNI( pReturn, B_TOP, hb_parni( B_TOP ) );
hb_arraySetNI( pReturn, B_LEFT, hb_parni( B_LEFT ) );
hb_arraySetNI( pReturn, B_BOTTOM,
HB_ISNUM( B_BOTTOM ) ?
( hb_parni( B_BOTTOM ) < hb_parni( B_TOP ) + 2 ?
hb_parni( B_TOP ) + 2 : hb_parni( B_BOTTOM ) ) : 0 );
hb_arraySetNI( pReturn, B_RIGHT,
HB_ISNUM( B_RIGHT ) ?
( hb_parni( B_RIGHT ) < hb_parni( B_LEFT ) + 4 ?
hb_parni( B_LEFT ) + 4 : hb_parni( B_RIGHT ) ) : 0 );
hb_arraySetC( pReturn, B_BACKCOLOR, HB_ISCHAR( B_BACKCOLOR ) ? hb_parc( B_BACKCOLOR ) : "W/N" );
hb_arraySetC( pReturn, B_BARCOLOR, HB_ISCHAR( B_BARCOLOR ) ? hb_parc( B_BARCOLOR ) : "W+/N" );
hb_arraySetL( pReturn, B_DISPLAYNUM,
!( HB_ISNUM( B_RIGHT ) &&
HB_ISNUM( B_LEFT ) &&
( hb_parni( B_RIGHT ) < hb_parni( B_LEFT ) + 9 ) ) );
hb_arraySetC( pReturn, B_BARCHAR, HB_ISCHAR( B_BARCHAR ) ? hb_parc( B_BARCHAR ) : "\xdb" );
hb_arraySetND( pReturn, B_PERCENT, 0.0 );

hb_itemReturnRelease( pReturn );
}

/* GaugeDisplay( aGauge ) --> aGauge
*/
HB_FUNC( GAUGEDISPLAY )
/*
*/
{
PHB_ITEM pArray = hb_param( 1, HB_IT_ARRAY );

if( pArray )
{
/* next error !!! */
/* int iCenter = ( ( hb_arrayGetNI( pArray, B_RIGHT ) - hb_arrayGetNI( pArray, B_LEFT ) ) / 2 ) + 1;*/
int iCenter = hb_arrayGetNI( pArray, B_LEFT ) -3 +
( ( hb_arrayGetNI( pArray, B_RIGHT ) - hb_arrayGetNI( pArray, B_LEFT ) ) / 2 ) ;
char szOldColor[ HB_CLRSTR_LEN ];

hb_gtGetColorStr( szOldColor );
hb_gtSetColorStr( hb_arrayGetCPtr( pArray, B_BACKCOLOR ) );

hb_gtBox( hb_arrayGetNI( pArray, B_TOP ),
hb_arrayGetNI( pArray, B_LEFT ),
hb_arrayGetNI( pArray, B_BOTTOM ),
hb_arrayGetNI( pArray, B_RIGHT ),
" " );

hb_gtBox( hb_arrayGetNI( pArray, B_TOP ),
hb_arrayGetNI( pArray, B_LEFT ),
hb_arrayGetNI( pArray, B_BOTTOM ),
hb_arrayGetNI( pArray, B_RIGHT ),
B_BOXLINES );

if( hb_arrayGetL( pArray, B_DISPLAYNUM ) )
hb_gtWriteAt( hb_arrayGetNI( pArray, B_TOP ),
iCenter,
"[ ]", 8 );

hb_gtSetColorStr( szOldColor );

hb_gaugeUpdate( pArray, ( float ) hb_arrayGetND( pArray, B_PERCENT ) );

hb_itemReturn( pArray );
}
}

/* GaugeUpdate( aGauge, nPercent ) --> aGauge
*/
HB_FUNC( GAUGEUPDATE )
{
PHB_ITEM pArray = hb_param( 1, HB_IT_ARRAY );

if( pArray )
{
hb_gaugeUpdate( pArray, ( float ) hb_parnd( 2 ) );
hb_itemReturn( pArray );
}
}
­

Спасибо: 0 
ПрофильЦитата Ответить
Новых ответов нет


Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 7
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет