Page 2 sur 20

Publié : sam. 18/févr./2006 12:09
par lionel_om
Merci pour ta réponse gnozal

Publié : mar. 14/mars/2006 14:12
par gnozal
On approche de la version finale.

Le ZIP contient maintenant une archive autoextractible (et autosuffisante) : elle contient tout ce qu'il faut (et plus) pour utiliser jaPBe V3, sans installation préalable d'une version antérieure.

Changements par rapport à la version originale (in english, sorry :wink:)
Historique a écrit :UPDATE TO PB 4.0x

- added new keywords and indentation and/or folding if applicable
- changed /NT4 compiler switch to /SUBSYSTEM NT4
- changed DefType to Define
- added /THREAD compiler switch [language file entry 467]
- added /UNICODE compiler switch [language file entry 468]
- added /SUBSYSTEM OPENGL compiler switch [language file entry 478]
- added compiler restarting if NT4 and/or UNICODE flag has changed [info message : language file entry 469]
- updated syntax coloring for exponential numbers like 123.5e-20
- added brace match check for {} (new fixed length strings)
- added custom subsystem in Project/Options [language file entry 490]
- updated help system
- updated Ref-Purebasic.txt
- adapted Visual Designer plugin

MISC

- the null byte to separate source code and jaPBe options in the saved file is now optional [language file entry 492]
- added context constant autocompletion : only the pertinent constants are shown (only for PB functions) [language file entry 491]
- added a 'Find variable' feature : F1 with cursor on variable (dialog : double-click = goto line) [language file entries 487 - 489]
- added red error marker '>>>' for marking the last compiler error line (reset before compile)
- added menu item 'Goto last error line' [language file entry 485]
- fixed OffsetOf() syntax coloring bug
- added a checkbox in 'Find / Replace' dialog to avoid replacing items by mistake
- added 'TailBite' menu item (to create a user library)
- added option for Tailbite : cut library file name (MyLIB_V5.pb -> MyLIB) [language file entry 486]
- integrated Constant Explorer plugin to jaPBe [F11, or F1 with cursor on constant]
- added option 'Start Constant Explorer after compile error 'Constant not found'' [language file entry 484]
- added 'compile manually to resident' menu item [language file entries 482 - 483]
- added new explorer panel to browse *.pb/*.pbi files (double-click to load the file) [language file entry 479]
- fixed 'automatic add end tags for If/Select/For...'
- fixed #gadget_Pref_ToolbarSkin combobox height
- fixed 'paste from info panel' bug
- added two new options for info panel : 'Enable paste from panel' and 'Enable restyling from panel' [language file entries 480 - 481]
- new autoindent alternative [Ctrl+Shift+Tab] : like Ctrl+Tab but all comments on lines with code are set to same column as the first line (and much more if 'Optimize code indentation' is activated) [language file entry 475]
- option 'Optimize code indentation' for [Ctrl+Shift+Tab] [language file entry 476]
- new folding style options in Files\Preferences\Style/Editor [language file entries 470-474]
- new option 'Save source(s) before Compile/Run or Compile/Debug' enabled by default [language file entry 477]
Image

Publié : sam. 25/mars/2006 12:14
par gnozal
Nouvelle version : j'ai ajouté un onglet 'code' au panneau d'informations.

Image

Pour plus d'info, voir les posts sur le forum anglais.

Publié : sam. 25/mars/2006 13:34
par Droopy
C'est un sacré boulot que tu fais la.

Merci pour nous :D

Publié : sam. 25/mars/2006 15:47
par lionel_om
J'ai jms utilisé JaBe, mais je vais pe etre bientot m'y mettre ! :lol:

Publié : sam. 25/mars/2006 18:17
par Coolman
J'ai telechargé les sources de jaPBe...

Petit info, la compilation echoue avec des messages en rapport avec des variables constantes inexistantes, pour compiler jaPBe avec la version 3.94, Ajouter les lignes suivantes a ce niveau :

*** Fichier : jaPBe.pb

; ------------------------------------------------------------------------
; (gnozal) You can enable/disable the constant explorer integration here :
#EnableConstantExplorer = #True
; -- ici ajouter ces trois lignes -----------------------------------
#jaPBe_ExecuteBuild=0
#jaPBe_IsExecute = #jaPBe_ExecuteBuild
#jaPBe_OnError = #True
;

Lors du lancement, un autre message d'ereur en rapport avec les dlls de scintilla, perso j'avais deja les sources de scintilla version 163 sur mon disque dur, j'ai decompressé et suivi les instructions :

aller vers le rep \scintilla\win32

et lancez la commande mingw32-make pour la compilation (il faut avoir gcc et renseigner dans le path windows ou se trouve la commande ci dessus)... Il est possible d'utiliser egallement les compilateurs visual c ou borland c...

il est surement possible de se procurer les dlls de scintilla sans devoir les compiler...

Le programme s'execute sans probleme, je me pose cependant la question de l'engouement pour cet editeur au lieu de celui officiel de purebasic 4, perso ce dernier me suffit, mais bon chacun ces gouts...

En attendant, je salue le travail de gnozal parce que le code source est un vrai bazar sauf peut etre pour l'auteur initial :)

Verifié avec les antivirus f-prot dos, Bitdfender et avg, pas de probleme detecté...

il vaut mieux eviter certains compresseurs d'exes (perso, j'utilise upx) car beaucoups d'antivirus detectent les exes resultants comme des trojans...

Publié : sam. 25/mars/2006 23:15
par Dräc
Bravo Gnozal !
Avec Scintilla, on ne peut pas scinder l’affichage du code en deux mais l’idée de l’onglet code vient combler se manque.
Il y a simplement quelques mises au point, car lorsque l’on plie des lignes de codes, l’affichage n’est pas synchronisé dans l’onglet, vis et versa.

En tous les cas, bon travail, continus...

Publié : lun. 27/mars/2006 17:37
par gnozal
Dräc a écrit :Il y a simplement quelques mises au point, car lorsque l’on plie des lignes de codes, l’affichage n’est pas synchronisé dans l’onglet, vis et versa.
Oui, comme annoncé sur le forum anglais, scintilla ne synchronise pas une 'view' pour les marqueurs de 'folding', il faudrait gérer ces évènements en double, et je ne sais pas si çà en vaut la peine.

Publié : lun. 27/mars/2006 17:39
par gnozal
Coolman a écrit :Petit info, la compilation echoue avec des messages en rapport avec des variables constantes inexistantes, pour compiler jaPBe avec la version 3.94
Sauf si on compile avec jaPBe :wink:
Coolman a écrit :Lors du lancement, un autre message d'ereur en rapport avec les dlls de scintilla
Il y a une DLL de scintilla dans le répertoire \Compilers de PB4 (la renommer en scilexer.dll)
Coolman a écrit :En attendant, je salue le travail de gnozal parce que le code source est un vrai bazar sauf peut etre pour l'auteur initial :)
Oui, ce n'est pas simple !
Mais après avoir utilisé jaPBe, je n'ai jamais pu me remettre à l'éditeur officiel.

Publié : mar. 28/mars/2006 12:18
par Coolman
En tous cas, bonne continuation :)

Publié : mar. 11/avr./2006 19:45
par Good07
Bonsoir Gnozal.

Tout d'abord félicitation pour ton travail. Cet éditeur est une petite merveille.
Par contre, j'ai un petit problème avec un programme qui utilise la fonction Import.

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 = -
Celui-ci fonctionne parfaitement avec l'éditeur natif de PB. Par contre dès que j'utilise JaPBe et que je lance la compilation, j'obtiens le message suivant:
"Cette application n'a pas pu démarrer car swedll32.dll est introuvable. La réinstallation de cette application peut corriger ce problème." :(
La dll ce trouve bien dans le dossier du programme ainsi que le fichier swedll32.lib et comme je le disais plus haut, avec l'éditeur de Pure ça fonctionne parfaitement.
Par contre ce qui est curieux, avec cet autre programme qui se trouve dans le même dossier et qui fait appel à la même DLL ça fonctionne nickel. 8O

Code : Tout sélectionner

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


Enumeration 0 Step 1
  #SE_JUL_CAL
  #SE_GREG_CAL
EndEnumeration

;##############################################

Prototype.d SWE_JulDay(annee.l,mois.l,jour.l,heure.d,flag.l)
Prototype.l SWE_RevJul(juliandate.d,flag.l,*annee.l,*mois.l,*jour.l,*heure.l)
Prototype.l SWE_Day_Of_Week(juliandate.d)
Prototype.d SWE_DegNorm(Angle.d)

;##############################################

If OpenLibrary(1,"swedll32.dll")
  JulDay.SWE_JulDay = GetFunction(1,"_swe_julday@24")
  RevJul.SWE_RevJul = GetFunction(1,"_swe_revjul@28")
  Day_Of_Week.SWE_Day_Of_Week = GetFunction(1,"_swe_day_of_week@8")
  DegNorm.SWE_DegNorm = GetFunction(1,"_swe_degnorm@8")
Else
  MessageRequester("Error!","Can't open library!",#MB_ICONERROR)
  End
EndIf

;##############################################

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

;##############################################

jd1.d = JulDay(1988,1, 1,12.23,#SE_JUL_CAL)
Debug jd1

RevJul( jd1, #SE_JUL_CAL, @annee.l, @mois.l, @jour.l, @heure.d)
Debug myDEBUG(annee, mois, jour, heure)

;##############################################

jd2.d = JulDay(2006,2,16,14.00,#SE_GREG_CAL)
Debug jd2

RevJul( jd2, #SE_GREG_CAL, @annee.l, @mois.l, @jour.l, @heure.d)
Debug myDEBUG(annee, mois, jour, heure)

;##############################################

Select Day_Of_Week( jd2 )
  Case 0: Debug "Lundi"
  Case 1: Debug "Mardi"
  Case 2: Debug "Mercredi"
  Case 3: Debug "Jeudi"
  Case 4: Debug "Vendredi"
  Case 5: Debug "Samedi"
  Case 6: Debug "Dimanche"
EndSelect

;##############################################

Debug DegNorm(375.33333)

;##############################################

; IDE Options = PureBasic v4.00 - Beta 3 (Windows - x86)
; CursorPosition = 74
; FirstLine = 11
; Folding = -
; HideErrorLog
Je pense que c'est Import ... EndImport qui est en cause mais ce n'est que mon humble avis... :D

Publié : mer. 12/avr./2006 11:09
par gnozal
As-tu essayé Import "CheminCompletDeLaLib" ?
Exemple :

Code : Tout sélectionner

Import "C:\Purebasic400\Program\PureZIP_O.lib"
...
EndImport
J'avoue ne pas avoir testé les libs d'import de DLL.

Publié : jeu. 13/avr./2006 9:55
par Good07
Bonjour Gnozal.

Désolé de cette réponse tardive, mais mon ordinateur a fait des siennes et j'ai été obligé de tout réinstaller. :(
Mais ça m'a permis de mettre au propre ma configuration et de tester à nouveau JaPBe. Cela ne fonctionne toujours pas, même avec le chemin complet de la Lib. :(

Publié : jeu. 13/avr./2006 12:55
par gnozal
J'ai téléchargé la lib+dll et je vais faire des essais.
Constatations :
- l'EXE final (F7) fonctionne ;
- si on copie swedll32.dll dans \Compilers, çà fonctionne avec F5/F6 : la DLL est dans le chemin de l'EXE (généré dans \Compilers).
Je vais voir ce que je peux faire.

Publié : jeu. 13/avr./2006 13:59
par gnozal
Voilà, c'est réglé !