by ik1mtt » Sat Feb 07, 2009 6:42 pm
Ésta es la parte de mi prg donde me sale el error....
----------------------
#pragma BEGINDUMP
#include "windows.h"
#include "math.h"
#include "hbapi.h"
HB_FUNC( TANG ) //Aggiunta funzione aTan
{
hb_retnd((double) tan((double)hb_parnd(1) ));
}
HB_FUNC( ATN )
{
hb_retnd((double) atan((double)hb_parnd(1)));
}
HB_FUNC( COS )
{
hb_retnd((double) cos((double)hb_parnd(1)));
}
HB_FUNC( ACOS )
{
hb_retnd((double) acos((double)hb_parnd(1)));
}
HB_FUNC( SIN )
{
hb_retnd((double) sin((double)hb_parnd(1)));
}
#pragma ENDDUMP
#include "FiveWin.ch"
*--------------------
Function Main()
REQUEST DBFCDX
local oWnd, oBpm, oBrush
If ! file("Loca.mem") && Crea variabile
Pr_LocaMio="JN34QS"
Pr_cDrv := "C:\Dati"
Save all like Pr_* to Loca
Else
Restore from Loca.mem
Endif
drcu:=curdrive()
DEFINE FONT oFont NAME "Roman" SIZE 22, 32
DEFINE FONT oFont1 NAME "Roman" SIZE 15, 20
DEFINE BRUSH oBrush STYLE NULL
DEFINE WINDOW oWnd TITLE "Wcall2009 Ver. 1.0";
ICON "cd-10.ico" BRUSH oBrush
DEFINE BUTTONBAR obar 3D OF oWnd SIZE 37,42
DEFINE BUTTON of obar;
FILENAME 'Ita32.bmp';
ACTION c_callb();
TOOLTIP "Calbook Italiano";
MESSAGE "Calbook Italiano"
@ 0, 0 BITMAP oBmp FILENAME 'Insta.bmp' OF oWnd;
NO BORDER;
ADJUST
ACTIVATE WINDOW oWnd maximized;
ON PAINT ( oBmp:aDjClient(), oBmp:ScrollAdjust() )
Return nil
//----------------------------------------------------------------------------//
Function C_callb
local oDlg
local oLbx, oFont, oSay
local n
local oRs, cSay
Tipo:=""
If lIsDir(Pr_cDrv) = .f.
SettaIni()
Setcurdrive(substr(Pr_cDrv,1,1))
if lIsDir(Pr_cDrv) = .f.
Msgstop('Cartella "DATI" non trovata',"Attenzione!")
Return nil
Endif
Else
Setcurdrive(substr(Pr_cDrv,1,1))
Endif
SET DEFAULT TO \DATI
Select 1
USE italy.bok VIA "DBFCDX"
SET DEFAULT TO
Setcurdrive(Drcu)
if ! File( "italy.cdx" )
Indici()
endif
Select 1
SET Index TO Italy
Set order to 1
GO TOP
DEFINE FONT oFont NAME "Roman" SIZE 0, 14
DEFINE DIALOG oDlg FROM 4, 2 TO 32, 89.0 TITLE "Callbook Italia"
@ 0, 1 SAY " Call Italiani" OF oDlg
@ 11.99, 1.45 SAY "Qrb Km: 0"
@ 11, 7.5 LISTBOX oLbx FIELDS;
nomin,nome,via,cap,citta,pr,loca,country,i_email;
HEADERS "Call", "Nome", "Indirizzo", "Cap", "Citta'", "Pr",;
"Locator", "Country", "Email";
FIELDSIZES 55, 170, 180, 50, 130, 30, 60, 100, 280;
SIZE 342,176;
FONT oFont OF oDlg;
ON CHANGE E_Loca(oDlg);
PIXEL
oLbx:nClrBackHead:=nRgb(0,130,250)
oLbx:nClrForeHead:=nRgb(0,0,0)
oLbx:nClrBackFocus:=nRgb(0,100,255)
oLbx:nClrForeFocus:=nRgb(255,255,255)
oLbx:nClrText= { || iif( deleted(), CLR_GRAY, CLR_BLUE ) }
oLbx:nClrPane := {|| iif( Substr(nome,1,10)="SILENT KEY" .OR. Substr(nome,1,10)="Silent key",;
nRGB( 150, 200, 050 ), nRGB( 255, 255, 255 ) )}
oLbx:nLineStyle := 3
// Uncomment this to quickly calculate the desired columns width
// Right click with the mouse over the browse and you will
// see the columns sizes!
// oLbx:bRClicked = { || oLbx:ShowSizes() }
* @ 10.5, 10.0 BUTTON "&Scheda" OF oDlg ACTION EditNomiit( oLbx, .t. ) ;
* SIZE 50, 12
* @ 10.5, 20.0 BUTTON "&Ricerca" OF oDlg ACTION RecSearch( oLbx, olbx:gotop() ) SIZE 50, 12
* @ 10.5, 30.0 BUTTON "S&tampa" OF oDlg ;
* ACTION Stampa( oLbx, oLbx:GotFocus() ) SIZE 50, 12
@ 10.8, 40.0 BUTTON "&Uscita" OF oDlg ACTION oDlg:End() SIZE 50, 12
ACTIVATE DIALOG oDlg
USE
oFont:end()
oLbx:end()
Return NIL
//----------------------------------------------------------------------------//
Function E_loca( oLbx )
Static oSay
Local oFont2
dx:=0
If ! Empty(Loca)
locato5:=loca
dx:=0
Visloca()
Endif
Qrb:=str(dx,5)
if oSay == nil
DEFINE FONT oFont2 NAME "Roman" SIZE 7, 16
@ 25.99, 1.55 SAY oSay PROMPT "Qrb Km:"+Qrb FONT oFont2 OF oLbx SIZE 130, 17
else
oSay:SetText( "Qrb Km:"+Qrb )
endif
Return nil
*--------------------------------------------------------------------------
Function Indici()
If lIsDir(Pr_cDrv) = .f.
SettaIni()
Setcurdrive(substr(Pr_cDrv,1,1))
if lIsDir("\dati") = .f.
Msgstop('Cartella "DATI" non trovata',"Attenzione")
Quit
Endif
Else
Setcurdrive(substr(Pr_cDrv,1,1))
Endif
SET DEFAULT TO \DATI
USE italy.bok VIA "DBFCDX"
SET DEFAULT TO
Setcurdrive(Drcu)
Erase italy.cdx
MsgMeter( { | oMeter, oText, oDlg, lEnd | ;
IF(.NOT.INDSCC( oMeter, oText, oDlg, @lEnd ) , ;
WINDEXOU:=.F. ,.T. ) } , ;
"Ricostruzuine Indici ...........","Attendere" )
*---------------------
Function Indscc( oMeter, oText, oDlg, lEnd )
oMeter:nTotal = RecCount()
@0.4,1 say " Ricostruzione Indice Call 01/05 - Attendere" of odlg
INDEX ON nomin TAG _nomin TO italy EVAL ( oMeter:Set( RecNo() ), SysRefresh(), ! lEnd )
@0.4,1 say " Ricostruzione Indice Nome 02/05 - Attendere" of odlg
INDEX ON nome TAG _nome TO italy EVAL ( oMeter:Set( RecNo() ), SysRefresh(), ! lEnd )
@0.4,1 say " Ricostruzione Indice C.a.p. 03/05 - Attendere" of odlg
INDEX ON cap TAG _cap TO italy EVAL ( oMeter:Set( RecNo() ), SysRefresh(), ! lEnd )
@0.4,1 say " Ricostruzione Indice Citta' 04/05 - Attendere" of odlg
INDEX ON citta TAG _citta TO italy EVAL ( oMeter:Set( RecNo() ), SysRefresh(), ! lEnd )
@0.4,1 say " Ricostruzione Indice Provincia 05/05 - Attendere" of odlg
INDEX ON pr TAG _pr to italy EVAL ( oMeter:Set( RecNo() ), SysRefresh(), ! lEnd )
Close databases
RETU .T.
//----------------------------------------------------------------------------//
Function SettaIn2()
Memvar Pr_cDrv
if MsgGet( "Settaggio", "Inserire Drive Corretto", @Pr_cDrv,;
"driv32.bmp" )
Save all like Pr_* to Loca
Setcurdrive(substr(Pr_cDrv,1,1))
if lIsDir("\dati") = .f.
Msgstop('Cartella "DATI" non trovata',"Attenzione")
Quit
Endif
Endif
Return nil
//----------------------------------------------------------------------------//
Function SettaIni()
Memvar Pr_cDrv
if MsgGet( "Settaggio", "Inserire Drive Corretto", @Pr_cDrv,;
"driv32.bmp" )
Save all like Pr_* to Loca
Endif
Return nil
*-----------------
FUNC Visloca
Set decimals to 7
FA = 40009
P = 3.14/180
F = FA/(2*3.1415926)
Store 0 to NP,TP,TX,BF,LF,LE
*Locato:="JN34QS" //lo cerca da archivio
Locato:=Pr_LocaMio
Locato1:=Locato
If locato = " "
Return
Endif
Calco()
BE=BF
LE=LF
locato:=locato5
Locato2:=Locato
Calco()
GA = LF-LE
IF Locato1 = Locato2
DX := 1
Else
N=SIN(BE)*SIN(BF)+COS(BE)*COS(BF)*COS(GA) && calcolo qrb
DX=INT(( - ATn(N/SQRT(1-N*N))+3.1415926/2)*F+.5)
Endif
RETURN Nil
*-----------------
FUNC Calco
oa=ASC(Substr(locato,1,1))
ob=ASC(Substr(locato,2,1))
oc=Substr(locato,3,1)
od=Substr(locato,4,1)
oe=ASC(Substr(locato,5,1))
of=ASC(Substr(locato,6,1))
LF=(oa-65)*20-180 +VAL(oc)*2 +(oe-65)/12+1/24
BF=(ob-65)*10-90 +VAL(od) + (of-65)/24+1/48
LF=LF * P
BF=BF * P
RETURN NIL