exemple dialogue combobox

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

exemple dialogue combobox

Message par kernadec »

Code : Tout sélectionner

; Date: 28. Avril 2008 (kernadec)
; OS: Windows
; 
;Exemple simple de saisie avec les ComboBox 
;************************************************************
;dans les combobox je n'ai toujours pas compris comment déterminer le nombre
;de lignes de l'ascenseur si quelqu'un a un truc merci!   j'ai eu de la chance  
;les combobox ne fonts que 5 lignes dans ces ascenseurs byzarre byzarre !!!!
;problème avec les flêches clavier à la première saisie le combo revient a zéro??
;************************************************************
;
nom$="Alain"
lieu$="Caen"
jour=23
mois=3
annee=1972
heure=4
hminute=20
latitude=49
Latminute=11
longitude=0
longminute=22
NS$="N"             
EO$="O"
;
;
OpenWindow(0,80,150,270,240,"Exemple dialogue par (Kernadec)",#PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
;************************ NOM ******************************
StringGadget(0, 50, 40, 200, 20, nom$)
nom$=GetGadgetText(0)

StringGadget(1, 50, 90, 200, 20, lieu$)
lieu$=GetGadgetText(1)
;************************* DATE ******************************
ComboBoxGadget(2,10,140,37,100,#PB_ComboBox_Editable) 
SetGadgetText(2, Str(jour))
For x = 1 To 31
  AddGadgetItem(2,-1,Str(x))     ;Jour
Next
jour=GetGadgetState(2)

ComboBoxGadget(3,50,140,37,100,#PB_ComboBox_Editable)
SetGadgetText(3, Str(mois))
For x = 1 To 12
  AddGadgetItem(3,-1,Str(x))     ;mois
Next
mois=GetGadgetState(3)

ComboBoxGadget(4,90,140,50,100,#PB_ComboBox_Editable)
SetGadgetText(4, Str(annee))
For x = 1752 To 2300           
  AddGadgetItem(4,-1,Str(x))     ;année
Next
annee=GetGadgetState(4)
;************************** HEURE ****************************
ComboBoxGadget(5,180,140,37,100,#PB_ComboBox_Editable)
SetGadgetText(5, Str(heure))
For x = 0 To 23
  AddGadgetItem(5,-1,Str(x))     ;heure
Next
heure=GetGadgetState(5)

ComboBoxGadget(6,220,140,37,100,#PB_ComboBox_Editable)
SetGadgetText(6, Str(Hminute))
For x = 0 To 59
  AddGadgetItem(6,-1,Str(x))     ;minute
Next
hminute=GetGadgetState(6)
;************************ LATITUDE ***************************
ComboBoxGadget(7,10,180,37,100,#PB_ComboBox_Editable)
SetGadgetText(7, Str(latitude))
For x = 0 To 89
  AddGadgetItem(7,-1,Str(x))     ;latitude degrés
Next
latitude=GetGadgetState(7)

ComboBoxGadget(8,50,180,37,100,#PB_ComboBox_Editable)
SetGadgetText(8, Str(latminute))
For x = 1 To 59
  AddGadgetItem(8,-1,Str(x))     ;latitude minutes
Next
latminute=GetGadgetState(8)

ComboBoxGadget(9,90,180,32,100,#PB_ComboBox_Editable)
SetGadgetText(9, NS$)
AddGadgetItem(9,-1,"N")  
AddGadgetItem(9,-1,"S")          ;latitude nord/sud
NS$=GetGadgetText(9)
;************************* LONGITUDE ***********************
ComboBoxGadget(10,140,180,43,100,#PB_ComboBox_Editable)
SetGadgetText(10, Str(longitude))
For x = 0 To 179
  AddGadgetItem(10,-1,Str(x))     ;longitude degrés
Next
longitude=GetGadgetState(10)

ComboBoxGadget(11,190,180,37,100,#PB_ComboBox_Editable)
SetGadgetText(11, Str(longminute))
For x = 1 To 59
  AddGadgetItem(11,-1,Str(x))     ;longitude minutes
Next
longminute=GetGadgetState(11)

ComboBoxGadget(12,230,180,32,100,#PB_ComboBox_Editable)
SetGadgetText(12, EO$)
AddGadgetItem(12,-1,"E")  
AddGadgetItem(12,-1,"O")       ;longitude est/ouest
EO$=GetGadgetText(12)
;***********************************************************
;************************ boutons ****************************
ButtonGadget(13, 25, 210, 100, 25, "&Annuler")
ButtonGadget(14, 145, 210, 100, 25, "&Confirmer")
;************************ titres *****************************
TextGadget(15, 10, 40, 60, 20, "Nom:")
TextGadget(16, 10, 90, 60, 20, "Lieu:")
TextGadget(17, 15, 125, 120, 20, "Jour      Mois       Année")
TextGadget(18, 180, 125, 120, 20, "Heures  Minutes")
TextGadget(19, 10, 165, 120, 20, "Latitude degrés minutes")
TextGadget(20, 140, 165, 140, 20, "Longitude degrés minutes")
;*********************cmd Clavier ****************************
AddKeyboardShortcut(0,#PB_Shortcut_Return,14)
AddKeyboardShortcut(0,#PB_Shortcut_C,14)
Repeat 
    event=WaitWindowEvent()
  If Event = #PB_Event_Gadget Or Event = #PB_Event_Menu 
       Select EventGadget() 
        Case 13
         If IsWindow(1)
          CloseWindow(1)
         EndIf
        Case 14
         OpenWindow(1,400,150,300,240,"resultats",#PB_Window_SystemMenu)
         ;*********************cmd Clavier *********************
         AddKeyboardShortcut(1,#PB_Shortcut_Escape,13) 
         AddKeyboardShortcut(1,#PB_Shortcut_A,13)
         ;************************ Affiche **********************
         StartDrawing(WindowOutput(1)) 
         DrawingMode(1) 
         DrawText(1,40,"Nom: "+GetGadgetText(0))
         DrawText(1,70,"Lieu: "+GetGadgetText(1))
         DrawText(1,100,"Date: "+GetGadgetText(2)+"/"+GetGadgetText(3)+"/"+GetGadgetText(4))
         DrawText(1,130,"heure: "+GetGadgetText(5)+"h"+GetGadgetText(6)+"'  ")
         DrawText(1,170,"Latitude: "+GetGadgetText(7)+"°"+GetGadgetText(8)+"'  "+GetGadgetText(9))
         DrawText(1,200,"Longitude: "+GetGadgetText(10)+"°"+GetGadgetText(11)+"'  "+GetGadgetText(12))
         StopDrawing() 
        Case #PB_Event_CloseWindow 
         CloseWindow(0)  
       EndSelect 
   ElseIf Event = #PB_Event_CloseWindow 
    End 
   EndIf 
 ForEver    
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

C'est simple :lol:
L'ascenseur n'apparaît pas toujours comme on le voudrait, cela dépend en fait de l'activation des thèmes xp ou non.
- Si les thèmes xp sont activés, ton ascenseur affichera quasiment tout les items de la combobox. tu peux donc écrire ComboBoxGadget(12,230,180,32,20,#PB_ComboBox_Editable) cela n'aura aucune incidence sur la liste déroulante.
- Si les thèmes xp ne sont pas activés, pour déterminer la hauteur de l'ascenseur tu utilises la dernière valeur de la combobox, sachant qu'une ligne visible fait environ 20. Soit dans ton exemple ComboBoxGadget(12,230,180,32,100,#PB_ComboBox_Editable) affichera 5 items (5x20) à condition qu'il y ait 5 éléments dans la liste. Pour afficher 10 lignes tu devras donc faire : ComboBoxGadget(12,230,180,32,200,#PB_ComboBox_Editable)

Voilà, j'espère t'avoir éclairé sur ce grand mystère... :)
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

bjr c'est mieux comme ca et pour le code affiché aussi lol

Message par kernadec »

Code : Tout sélectionner

;Exemple simple de saisie avec les ComboBox par (Kernadec) France 28/04/2008
;##############################################################################
;dans les combobox je n'ai toujours pas compris comment déterminer le nombre
;de lignes de l'ascenseur si quelqu'un a un truc merci!   j'ai eu de la chance  
;les combobox ne fonts que 5 lignes dans ces ascenseurs byzarre byzarre !!!!
;voir si les (thèmes xp sont activés) solution préconisée sur le forum 
;problème avec les flêches clavier à la première saisie le combo revient a zéro??
;##############################################################################
;
Declare donnees()
Global jour.l
Global mois.l
Global annee.l
Global minut.d
Global heure.d
Global latitude
Global latminute
Global longitude
Global longminute
Global lat.d
Global lon.d
Global glat.d
Global glon.d
Global heuregmt.d

;######################## defaut ############################
nom$="Alain"
lieu$="Caen"
jour.l=23
mois.l=6
annee.l=1972
heure.d=11
minut.d=20
latitude=49
Latminute=11
longitude=0
longminute=22
NS$="N"             
EO$="O"
;############################################################
OpenWindow(1,80,150,270,240,"Exemple dialogue par (Kernadec)",#PB_Window_SystemMenu)
CreateGadgetList(WindowID(1))
;######################## NOM ################################
StringGadget(0, 50, 40, 200, 20, nom$)
StringGadget(1, 50, 90, 200, 20, lieu$)
;#############################################################
;########### reste a traite les années bisextile #############
;########### sinon prendre une boite calendier   #############
;######################### DATE ##############################
ComboBoxGadget(2,10,140,37,140,#PB_ComboBox_Editable) 
SetGadgetText(2, Str(jour.l))
For x = 1 To 31
  AddGadgetItem(2,-1,Str(x))     ;Jour
Next
ComboBoxGadget(3,50,140,37,140,#PB_ComboBox_Editable)
SetGadgetText(3, Str(mois.l))
For x = 1 To 12
  AddGadgetItem(3,-1,Str(x))     ;mois
Next
ComboBoxGadget(4,90,140,50,200,#PB_ComboBox_Editable)
SetGadgetText(4, Str(annee.l))
For x = 1752 To 2300           
  AddGadgetItem(4,-1,Str(x))     ;année
Next
;########################## HEURE ############################
ComboBoxGadget(5,185,140,37,100,#PB_ComboBox_Editable)
SetGadgetText(5, Str(heure.d))
For x = 0 To 23
  AddGadgetItem(5,-1,Str(x))     ;heure
Next
ComboBoxGadget(6,225,140,37,100,#PB_ComboBox_Editable)
SetGadgetText(6, Str(minut.d))
For x = 0 To 59
  AddGadgetItem(6,-1,Str(x))     ;minute
Next
;######################## LATITUDE ###########################
ComboBoxGadget(7,10,180,37,100,#PB_ComboBox_Editable)
SetGadgetText(7, Str(latitude))
For x = 0 To 89
  AddGadgetItem(7,-1,Str(x))     ;latitude degrés
Next
ComboBoxGadget(8,50,180,37,100,#PB_ComboBox_Editable)
SetGadgetText(8, Str(latminute))
For x = 1 To 59
  AddGadgetItem(8,-1,Str(x))     ;latitude minutes
Next
ComboBoxGadget(9,90,180,32,100,#PB_ComboBox_Editable)
SetGadgetText(9, NS$)
AddGadgetItem(9,-1,"N")  
AddGadgetItem(9,-1,"S")          ;latitude nord/sud
;######################### LONGITUDE #########################
ComboBoxGadget(10,140,180,43,100,#PB_ComboBox_Editable)
SetGadgetText(10, Str(longitude))
For x = 0 To 179
  AddGadgetItem(10,-1,Str(x))     ;longitude degrés
Next
ComboBoxGadget(11,190,180,37,100,#PB_ComboBox_Editable)
SetGadgetText(11, Str(longminute))
For x = 1 To 59
  AddGadgetItem(11,-1,Str(x))     ;longitude minutes
Next
ComboBoxGadget(12,230,180,32,100,#PB_ComboBox_Editable)
SetGadgetText(12, EO$)
AddGadgetItem(12,-1,"E")  
AddGadgetItem(12,-1,"O")          ;longitude est/ouest
;#############################################################
;######################## boutons ############################
ButtonGadget(13, 25, 210, 100, 25, "&Annuler")
ButtonGadget(14, 145, 210, 100, 25, "&Confirmer")
;######################## titres #############################
TextGadget(15, 10, 40, 60, 20, "Nom:")
TextGadget(16, 10, 90, 60, 20, "Lieu:")
TextGadget(17, 15, 125, 120, 20, "Jour      Mois       Année")
TextGadget(18, 185, 125, 120, 20, "Heures  Minutes")
TextGadget(19, 10, 165, 120, 20, "Latitude degrés minutes")
TextGadget(20, 140, 165, 140, 20, "Longitude degrés minutes")
;#####################cmd Clavier ############################
AddKeyboardShortcut(1,#PB_Shortcut_Return,14)
AddKeyboardShortcut(1,#PB_Shortcut_C,14)
 
 Repeat
    event=WaitWindowEvent()
  If Event = #PB_Event_Gadget Or Event = #PB_Event_Menu 
      
       Select EventGadget() 
        Case 13
         If IsWindow(2)
          CloseWindow(2)
         EndIf
        Case 14
         OpenWindow(2,400,150,350,270,"resultats",#PB_Window_SystemMenu)
         donnees()
         ;#####################cmd Clavier ############################
         AddKeyboardShortcut(2,#PB_Shortcut_Escape,13) 
         AddKeyboardShortcut(2,#PB_Shortcut_A,13)
         ;######################## Affiche ############################
         StartDrawing(WindowOutput(2)) 
         DrawingMode(1) 
         DrawText(2,20,"Nom: "+GetGadgetText(0))
         DrawText(2,50,"Lieu: "+GetGadgetText(1))
         DrawText(2,80,"Date: "+GetGadgetText(2)+"/"+GetGadgetText(3)+"/"+GetGadgetText(4))
         DrawText(2,110,"heure: "+GetGadgetText(5)+"h"+GetGadgetText(6)+"'  ")
         DrawText(2,140,"Latitude: "+GetGadgetText(7)+"°"+GetGadgetText(8)+"'  "+GetGadgetText(9))
         DrawText(2,170,"Longitude: "+GetGadgetText(10)+"°"+GetGadgetText(11)+"'  "+GetGadgetText(12))
         DrawText(2,200,"convers heure : "+StrD(heuregmt,4))
         DrawText(2,230,"convers lat: "+StrD(glat.d,4)+" <->  convers long: "+StrD(glon.d,4))
         StopDrawing() 
        Case #PB_Event_CloseWindow 
         CloseWindow(1)  
       EndSelect 
   ;ElseIf Event = #PB_Event_CloseWindow 
    ;End 
   EndIf 
 ;ForEver 
 Until   Event = #PB_Event_CloseWindow
;######################################################################

Procedure donnees()
;############### Traitement des données ######################
nom$=GetGadgetText(0)
lieu$=GetGadgetText(1)
jour.l=Val(GetGadgetText(2))
mois.l=Val(GetGadgetText(3))
annee.l=Val(GetGadgetText(4))
heure.d=Val(GetGadgetText(5))
minut.d=Val(GetGadgetText(6))
latitude=Val(GetGadgetText(7))
latminute=Val(GetGadgetText(8))
NS$=GetGadgetText(9)
longitude=Val(GetGadgetText(10))
longminute=Val(GetGadgetText(11))
EO$=GetGadgetText(12)

lat=latitude+(latminute/100)
lon=longitude+(longminute/100)
If NS$="S"
lat=0-lat
EndIf
If EO$="O"
lon=0-lon
EndIf
heuregmt=heure+minut/60+seconde/3600
glon.d=Int(lon)+((lon-Int(lon))*100)/60 
glat.d=Int(lat)+((lat-Int(lat))*100)/60 
EndProcedure


Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

voila un source d'ephemerides trouver sur un forum

Message par kernadec »

pour ceux qui aime l'astro ces 2 bibliotheques sont sur le site suisse , swedll32.dll et swedll32.lib de la date du 29/11/2007 et ca fonctionne

Code : Tout sélectionner

;############################################## 
; 
; Swiss Ephemeris - swedll32.LIB 
; 
; Interface pour Purebasic 4.0.x 
; 
; ftp://ftp.astro.com/pub/sweph/ 
; http://www.astro.com/swisseph/swephprg.htm 
; 
;############################################## 

#SEFLG_JPLEPH=1 
#SEFLG_SWIEPH=2 
#SEFLG_MOSEPH=4 
#SEFLG_SPEED=256 
#SEFLG_HELCTR=8 
#SEFLG_TRUEPOS=16 
#SEFLG_J2000=32 
#SEFLG_NONUT=64 
#SEFLG_NOGDEFL=512 
#SEFLG_NOABERR=1024 
#SEFLG_EQUATORIAL=2048 
#SEFLG_XYZ=4096 
#SEFLG_RADIANS=8192 
#SEFLG_BARYCTR=16384 
#SEFLG_TOPOCTR=32768 
#SEFLG_SIDERAL=65536 
#SEFLG_HELCTR=8 
#SEFLG_TRUEPOS=16 
#SE_CALC_RISE=1 
#SE_CALC_SET=2 
#SE_CALC_MTRANSIT=4 
#SE_CALC_ITRANSIT=8 
#SE_ECL_NUT=-1 
  

Dim x.d(6); déclaration du tableau x 
Dim x2.d(6) 
Dim cusp.d(13) 
Dim ascmc.d(10) 
Dim attr.d(20) 
Dim tret.d(20) 
Dim geopos.d(10) 
Dim geoposx.d(10) 
Dim xnasc.d(6) 
Dim xndsc.d(6) 
Dim xperi.d(6) 
Dim xaphe.d(6) 
Dim Position.d(12) 
Dim NomPlanete.s(9) 
serr.s="" 
hcusps.d=0 
pName.s=Space(256) 

Enumeration 0 Step 1 
  #SE_GREG_CAL 
  #SE_JUL_CAL 
  #ID 
EndEnumeration 

Enumeration 0 Step 1 
  #SE_SUN 
  #SE_MOON 
  #SE_MERCURY 
  #SE_VENUS 
  #SE_MARS 
  #SE_JUPITER 
  #SE_SATURN 
  #SE_URANUS 
  #SE_NEPTUNE 
  #SE_PLUTO 
EndEnumeration 

Enumeration 
  #SPR_Terre 
  #SPR_OmbreTerre 
  #SPR_Lune 
  #SPR_OmbreLune 
EndEnumeration 
  
Restore planetes 
For n=0 To 9 
  Read NomPlanete.s(n) 
Next n 

;############################################## 
Import "swedll32.lib" 
  JulDay.d(annee.l,mois.l,jour.l,heure.d,flag.l) As "_swe_julday@24" 
  RevJul(juliandate.d,flag.l,*annee.l,*mois.l,*jour.l,*heure.l) As "_swe_revjul@28" 
  Day_Of_Week.l(juliandate.d) As "_swe_day_of_week@8" 
  DegNorm.d(Angle.d) As "_swe_degnorm@8" 
  Date_conversion.l(annee.l,mois.l,jour.l,heure.d,cal.b,tjd.d) As "_swe_date_conversion@28" 
  Calc_ut.l(tjd.d,ipl.l,Iflag.l,*x,serr.s) As "_swe_calc_ut@24";il ne faut pas mettre x sous forme de tableau. ???? 
  get_planet_name(ipl.l,pName.s) As "_swe_get_planet_name@8" 
  deltat.d(tjd.d) As "_swe_deltat@8" 
  pheno.l(tjd.d,ipl.l,Iflag.l,*attr,serr.s) As "_swe_pheno@24" 
  rise_trans.l(tjd.d,ipl.l,starname.s,epheflag.l,rsmi.l,*geopos,atpress.d,attemp.d,*tret,serr.s) As "_swe_rise_trans@52" 
  houses_ex.l(tjd.d,Iflag.l,geolat.d,geolon.d,ihsy.l,*cusp,*ascmc) As "_swe_houses_ex@40" 
  sidtime.d(tjd.d) As "_swe_sidtime@8" 
  houses_armc.l(armc.d,geolat.d,eps.d,ihsy.l,*cusp,*ascmc) As "_swe_houses_armc@36" 
EndImport 
;############################################## 

Macro myDEBUG(y,m,d,h) 
  "Le "+RSet(Str(d),2,"0")+"/"+RSet(Str(m),2,"0")+"/"+RSet(Str(y),4,"0")+" à "+StrD(h,2) 
EndMacro 

Macro DeciMinut(a) 
  Int(a)+(a-Int(a))*0.60 
EndMacro 

annee.l=Year(Date()) 
jour.l=Day(Date()) 
mois.l=Month(Date()) 
heure.d=Hour(Date()) 
minut.d=Minute(Date()) 
heure=heure+minut/60 
; annee.l=2006 
; jour.l=5 
; mois.l=4 
; heure.d=3 
; minute=48 
; seconde=0 
heure=heure+minute/60+seconde/3600 
lat.d=44.06 
lon.d=4.47 
glon.d=Int(lon)+((lon-Int(lon))*100)/60 
glat.d=Int(lat)+((lat-Int(lat))*100)/60 
geopos(0)=glon 
geopos(1)=glat 
geopos(2)=0 
Iflag=#SEFLG_SWIEPH+#SEFLG_SPEED 
tjd_ut.d=JulDay(annee,mois,jour,heure,#SE_JUL_CAL) 
For nplanete=#SE_SUN To #SE_PLUTO 
  Calc_ut(tjd_ut,nplanete,Iflag,@x.d(0),serr.s); par contre là il faut mettre le tableau ???? 
  Position(nplanete)=x(0) 
Next nplanete 
If ((Position(1)<Position(0) And Position(0)-Position(1)<180) Or (Position(1)>Position(0) And Position(1)-Position(0)>180)) 
  Elong.s=" Ouest" 
Else 
  Elong.s= " Est" 
EndIf 
tsid.d=sidtime(tjd_ut) 
ecart.d=deltat(tjd_ut) 
ecart.d=ecart.d*86400 
tsid.d=tsid+glon/15 
armc.d=tsid*15 
pheno(tjd_ut,#SE_MOON,#SEFLG_HELCTR,@attr.d(0),serr.s) 
Debug "Angle de Phase "+ StrD(attr(0),2) 
Debug "Phase "+StrD(attr(1),2) 
Debug "Elongation "+StrD(attr(2),2)+Elong 
Debug "Diamètre Apparent "+StrD(attr(3),2) 
Debug "Magnitude apparente "+StrD(attr(4),2) 
rise_trans(tjd_ut,#SE_SUN,"",#SEFLG_SWIEPH,#SE_CALC_RISE,@geopos.d(0),1013,15,@tret.d(0),serr.s) 
RevJul(tret(0), #SE_JUL_CAL,@annee.l,@mois.l,@jour.l,@heure.d) 
Debug "lever du soleil "+myDEBUG(annee,mois,jour,DeciMinut(heure)) 
rise_trans(tjd_ut,#SE_SUN,"",#SEFLG_MOSEPH,#SE_CALC_SET,@geopos.d(),1013,15,@tret.d(0),serr.s) 
RevJul(tret(0), #SE_JUL_CAL,@annee.l,@mois.l,@jour.l,@heure.d) 
Debug "coucher du soleil "+myDEBUG(annee,mois,jour,DeciMinut(heure)) 
rise_trans(tjd_ut,#SE_MOON,"",#SEFLG_SWIEPH,#SE_CALC_RISE,@geopos.d(0),1013,15,@tret.d(0),serr.s) 
RevJul(tret(0), #SE_JUL_CAL,@annee.l,@mois.l,@jour.l,@heure.d) 
Debug "lever de la lune "+myDEBUG(annee,mois,jour,DeciMinut(heure)) 
rise_trans(tjd_ut,#SE_MOON,"",#SEFLG_MOSEPH,#SE_CALC_SET,@geopos.d(),1013,15,@tret.d(0),serr.s) 
RevJul(tret(0), #SE_JUL_CAL,@annee.l,@mois.l,@jour.l,@heure.d) 
Debug "coucher de la lune "+myDEBUG(annee,mois,jour,DeciMinut(heure)) 
Calc_ut(tjd_ut,#SE_ECL_NUT,0,@x.d(0),serr.s) 
eps_true.d= x(0) 
houses_armc(armc.d,glat.d,eps_true.d,Asc("P"),@cusp.d(0),@ascmc.d(0)) 




If OpenWindow(#ID, 0, 0, 800, 600, "Astrologie", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) = 0 Or CreateGadgetList(WindowID(#ID)) = 0 
  End 
EndIf 
StartDrawing(WindowOutput(#ID)) 
DrawingMode(1) 
For n=0 To 9 
  DrawText(10,50+pas,NomPlanete(n)) 
  DrawText(80,50+pas,RSet(StrD(Position(n),2),6," ")) 
  pas+20 
Next n 
pas=0 
For n=1 To 12 
  DrawText(200,50+pas,"Maison "+Str(n)+"  "+StrD(cusp.d(n),2)) 
  pas+20 
Next n 
DrawText(200,10,"Domification Placidus") 
DrawText(370,10,"Jour Julien "+StrD(tjd_ut)) 
StopDrawing() 

done.l = #False 
Repeat 
  event.l = WaitWindowEvent() 
  Select event 
    Case #PB_Event_CloseWindow 
      done = #True 
    Case #PB_Event_MoveWindow 
    Case #PB_Event_SizeWindow 
    Default 
  EndSelect 
Until done = #True 
  ; 
CloseWindow(#ID) 

DataSection 
planetes: 
Data.s "Soleil","Lune","Mercure","Venus","Mars","Jupiter","Saturne","Uranus","Neptune","Pluton" 
EndDataSection 


; IDE Options = PureBasic v4.00 - Beta 6 (Windows - x86) 
; CursorPosition = 158 
; FirstLine = 123 
; Folding = - 
; IDE Options = PureBasic v4.00 - Beta 7 (Windows - x86) 
; CursorPosition = 114 
; FirstLine = 75 
; Folding = - 
; IDE Options = PureBasic v4.00 - Beta 8 (Windows - x86) 
; CursorPosition = 110 
; FirstLine = 91 
; Folding = - 
; IDE Options = PureBasic v4.00 - Beta 9 (Windows - x86) 
; CursorPosition = 220 
; FirstLine = 178 
; Folding = - 
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message par Jacobus »

Je n'ai pas trouvé les DLL sur le site suisse... doivent être planquées dans le chocolat :)
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

bibiotheques ephemerides suisse

Message par kernadec »

ftp://ftp.astro.com/pub/swisseph
et telecharger le fichier suivant (sweph.zip ) il contient les bibliotheques swedll32.dll et swedll32.lib du 29/11/2007
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

optiongadjet

Message par kernadec »

une autre version lol

Code : Tout sélectionner

;autre Exemple simple de saisie avec les ComboBox et avec optiongadjet
;par (Kernadec) France 30/04/2008  
;##############################################################################
;
;
Declare donnees()
Global jour.l
Global mois.l
Global annee.l
Global minut.d
Global heure.d
Global latitude
Global latminute
Global longitude
Global longminute
Global lat.d
Global lon.d
Global glat.d
Global glon.d
Global heuregmt.d
Global NS$
Global EO$
;
;######################## defaut ############################
nom$="Alain"
lieu$="Caen"
jour.l=23
mois.l=6
annee.l=1971
heure.d=11
minut.d=20
latitude=49
Latminute=11
longitude=0
longminute=22
NS$="N"             
EO$="O"
;############################################################
OpenWindow(1,80,150,270,260,"Exemple dialogue par (Kernadec)",#PB_Window_SystemMenu)
CreateGadgetList(WindowID(1))
;######################## NOM ################################
StringGadget(0, 50, 40, 200, 20, nom$)
StringGadget(1, 50, 90, 200, 20, lieu$)
;#############################################################
;########### reste a traite les années bisextile #############
;########### sinon prendre une boite calendier   #############
;######################### DATE ##############################
ComboBoxGadget(2,10,140,37,140,#PB_ComboBox_Editable) 
For x = 1 To 31
  AddGadgetItem(2,-1,Str(x))     ;Jour
Next
SetGadgetState(2,jour-1)
ComboBoxGadget(3,50,140,37,140,#PB_ComboBox_Editable)
For x = 1 To 12
  AddGadgetItem(3,-1,Str(x))     ;mois
Next
SetGadgetState(3,mois-1)
ComboBoxGadget(4,90,140,48,200,#PB_ComboBox_Editable)
For x = 1 To 2300           
  AddGadgetItem(4,-1,Str(x))    ;année
Next
SetGadgetState(4, Abs(annee-1))
;########################## HEURE ############################
ComboBoxGadget(5,185,140,37,100,#PB_ComboBox_Editable)
For x = 0 To 23
  AddGadgetItem(5,-1,Str(x))     ;heure
Next
SetGadgetState(5,Abs(heure-1))
ComboBoxGadget(6,225,140,37,100,#PB_ComboBox_Editable)
For x = 0 To 59
  AddGadgetItem(6,-1,Str(x))     ;minute
Next
SetGadgetState(6,Abs(minut-1))
;######################## LATITUDE ###########################
ComboBoxGadget(7,20,180,37,100,#PB_ComboBox_Editable)
For x = 0 To 89
  AddGadgetItem(7,-1,Str(x))     ;latitude degrés
Next
SetGadgetState(7,Abs(latitude-1))
ComboBoxGadget(8,70,180,37,100,#PB_ComboBox_Editable)
For x = 0 To 59
  AddGadgetItem(8,-1,Str(x))     ;latitude minutes
Next
SetGadgetState(8,Abs(latminute-1))
;######################## radio boutons ######################
Frame3DGadget(9, 10, 165, 110, 58, "Latitude en degrés")
OptionGadget(10, 19, 203, 45, 17, "&Nord")
OptionGadget(11, 69, 203, 45, 17, "&Sud")
SetGadgetState(10, 1)
;######################### LONGITUDE #########################
ComboBoxGadget(12,157,180,43,100,#PB_ComboBox_Editable)
For x = 0 To 179
  AddGadgetItem(12,-1,Str(x))     ;longitude degrés
Next
SetGadgetState(12,Abs(longitude-1))
ComboBoxGadget(13,212,180,37,100,#PB_ComboBox_Editable)
For x = 0 To 59
  AddGadgetItem(13,-1,Str(x))     ;longitude minutes
Next
SetGadgetState(13,Abs(longminute-1))
;######################## radio boutons ######################
;(si le n° d'optiongadjet est=16 il devient actif bug????)
;pourquoi n°16 = (buttongadjet DEFAUT) cela reste un mystere??
;dans ce cas peut etre mais pas grave il est devenu frame lol
;#############################################################
Frame3DGadget(16, 147, 165, 115, 58, "Longitude en degrés") 
OptionGadget(14, 156, 203, 45, 17, "&Est")                 
OptionGadget(15, 204, 203, 45, 17, "&Ouest")
SetGadgetState(14, 1)
;#############################################################
;######################## boutons ############################
ButtonGadget(17, 10, 230, 110, 25, "&Annuler")
ButtonGadget(18, 147, 230, 115, 25, "&Confirmer")
;######################## titres #############################
TextGadget(19, 10, 40, 60, 20, "Nom:")
TextGadget(20, 10, 90, 60, 20, "Lieu:")
TextGadget(21, 15, 125, 120, 20, "Jour      Mois       Année")
TextGadget(22, 185, 125, 120, 20, "Heures  Minutes")
TextGadget(23, 155, 143, 30, 20, "GMT:")
;#####################cmd Clavier ############################
AddKeyboardShortcut(1,#PB_Shortcut_Return,18)
AddKeyboardShortcut(1,#PB_Shortcut_C,18)
AddKeyboardShortcut (1,#PB_Shortcut_N,10)
AddKeyboardShortcut(1,#PB_Shortcut_S,11)
AddKeyboardShortcut(1,#PB_Shortcut_E,14)
AddKeyboardShortcut(1,#PB_Shortcut_O,15)
;#############################################################
;#############################################################
  Repeat
    event=WaitWindowEvent()
  If Event = #PB_Event_Gadget Or Event = #PB_Event_Menu 
        Select EventGadget() 
        Case 10
         SetGadgetState(10, 1)
        Case 11
         SetGadgetState(11, 1)
        Case 14
         SetGadgetState(14, 1)
        Case 15
         SetGadgetState(15, 1)
        Case 17
         If IsWindow(2)
          CloseWindow(2)
         EndIf
        Case 18
         donnees()
         ;Break 
         OpenWindow(2,400,150,350,270,"resultats",#PB_Window_SystemMenu)
         ;#####################cmd Clavier ############################
         AddKeyboardShortcut(2,#PB_Shortcut_Escape,17) 
         AddKeyboardShortcut(2,#PB_Shortcut_A,17)
         ;######################## Affiche ############################
         StartDrawing(WindowOutput(2)) 
         DrawingMode(1) 
         DrawText(2,20,"Nom: "+GetGadgetText(0))
         DrawText(2,50,"Lieu: "+GetGadgetText(1))
         DrawText(2,80,"Date: "+GetGadgetText(2)+"/"+GetGadgetText(3)+"/"+GetGadgetText(4))
         DrawText(2,110,"heure: "+GetGadgetText(5)+"h"+GetGadgetText(6)+"'  ")
         DrawText(2,140,"Latitude: "+GetGadgetText(7)+"°"+GetGadgetText(8)+"'  "+NS$)
         DrawText(2,170,"Longitude: "+GetGadgetText(12)+"°"+GetGadgetText(13)+"'  "+EO$)
         DrawText(2,200,"convers heure : "+StrD(heuregmt,4))
         DrawText(2,230,"convers lat: "+StrD(glat.d,4)+" <->  convers long: "+StrD(glon.d,4))
         StopDrawing() 
        Case #PB_Event_CloseWindow 
         CloseWindow(1)  
       EndSelect 
      EndIf 
  Until   Event = #PB_Event_CloseWindow
;######################################################################

Procedure donnees()
;############### Traitement des données ######################
nom$=GetGadgetText(0)
lieu$=GetGadgetText(1)
jour.l=Val(GetGadgetText(2))
mois.l=Val(GetGadgetText(3))
annee.l=Val(GetGadgetText(4))
heure.d=Val(GetGadgetText(5))
minut.d=Val(GetGadgetText(6))
latitude=Val(GetGadgetText(7))
latminute=Val(GetGadgetText(8))
longitude=Val(GetGadgetText(12))
longminute=Val(GetGadgetText(13))
lat=latitude+(latminute/100)
lon=longitude+(longminute/100)
If GetGadgetState(10)
NS$="N"
Else
NS$="S"
lat=0-lat
EndIf;
If GetGadgetState(14)
EO$="E"
Else
EO$="O"
lon=0-lon
EndIf
heuregmt=heure+minut/60+seconde/3600
glon.d=Int(lon)+((lon-Int(lon))*100)/60 
glat.d=Int(lat)+((lat-Int(lat))*100)/60 
EndProcedure


Répondre