FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» I Love You
par Jean Claude Aujourd'hui à 18:16

» MARK_ON déclenche un événement ON_CLICK à la place de ...
par Jean Claude Aujourd'hui à 18:08

» mise a jour calculatrice
par joeeee2017 Aujourd'hui à 15:57

» [solved] 3D_LINE How to ?
par Jicehel Aujourd'hui à 11:01

» Convertisseur de base 10 de 2 à 36
par gigi75 Hier à 18:49

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» Calculatrice
par Jean Claude Sam 14 Oct 2017 - 12:30

» Compilateur FBPano
par jean_debord Jeu 12 Oct 2017 - 9:53

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

» à propos de Panoramic_Editor [Résolu]
par Klaus Mar 10 Oct 2017 - 3:19

» Un petit "coucou" à tous les Panoramiciens !
par Jack Ven 6 Oct 2017 - 10:24

» Pourquoi le compilateur stagne
par mindstorm Mer 4 Oct 2017 - 20:38

» Panoramic ?
par Marc37 Mer 4 Oct 2017 - 0:39

» Premiers pas avec Arduino
par Marc37 Mer 4 Oct 2017 - 0:29

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 Compilateur FBPano

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Suivant
AuteurMessage
Jicehel

avatar

Nombre de messages : 5858
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Compilateur FBPano   Lun 22 Mai 2017 - 11:43

Trop bien Wink vraiment pratique
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur FBPano   Sam 27 Mai 2017 - 11:47

Nouvelle version 0.22
---------------------

1. Ajout des glissières et barres de défilement

2. Modifications des instructions FILE_READ et FILE_WRITE ; ajout des instructions FILE_WRITE_CSV et FILE_READ_CSV (voir documentation, chapitre "Les fonctions non graphiques de FBPano", paragraphe "Fichiers texte")

3. Nouveaux programmes de démonstration (dans exemples\FLTK) :

   ex70.bas : glissières
   ex71.bas : barres de défilement
   ex72.bas : carnet d'adresses

4. Installation : les fichiers sont sur mon WebDav, dossier FBPano.

   * Si vous avez installé la version 0.21 : ne pas désinstaller ; exécutez le programme de mise à jour update_021_to_022.exe en gardant le même répertoire d'installation que pour la 0.21

   * Si vous avez une version antérieure à 0.21 : désinstallez cette version et installez la version 0.22 complète avec le programme setup_022.exe
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur FBPano   Mer 31 Mai 2017 - 11:26

Voici un premier essai d'adaptation du programme "Esthétique polaire" de Papydall :

Code:

' *******************************************************************
'                      Esthetique polaire
'                          Par Papydall
'             Adaptation pour FBPano par J. Debord
' *******************************************************************

' -------------------------------------------------------------------
' Constantes et variables
' -------------------------------------------------------------------

dim s(360), c(360)  ' Table des sinus et cosinus

dim obj%            ' Indice d'un objet
dim cap$            ' Label d'un objet

' -------------------------------------------------------------------
' Creation de l'interface graphique
' -------------------------------------------------------------------

enum GUI
  fmMain,
  alEq1, alEq2
  ct_p, ct_u, ct_v, ct_q, ct_w, ct_z,
  rd_p1, rd_p2, rd_u1, rd_u2, rd_v1, rd_v2,
  rd_q1, rd_q2, rd_w1, rd_w2, rd_z1, rd_z2,
  spSize,
  edFile,
  btGraph,
  alImage
end enum

set_scheme "gtk+"

form fmMain, 100, 100, 720, 500, "Esthetique polaire"

alpha alEq1, 10, 10, 200, 30, "x = r (1 + p.u) v", , FL_FLAT_BOX
alpha alEq2, 10, 40, 200, 30, "y = r (1 + q.w) z", , FL_FLAT_BOX

container ct_p, 50, 100, 150, 35, "p "

container_begin ct_p
  radio rd_p1,  55, 105, 20, 25, "+1"
  radio rd_p2, 130, 105, 20, 25, "-1"
container_end ct_p

container ct_u, 50, 145, 150, 35, "u "

container_begin ct_u
  radio rd_u1,  55, 150, 20, 25, "cos(a)"
  radio rd_u2, 130, 150, 20, 25, "sin(a)"
container_end ct_u

container ct_v, 50, 190, 150, 35, "v "

container_begin ct_v
  radio rd_v1,  55, 195, 20, 25, "cos(a)"
  radio rd_v2, 130, 195, 20, 25, "sin(a)"
container_end ct_v

container ct_q, 50, 235, 150, 35, "q "

container_begin ct_q
  radio rd_q1,  55, 240, 20, 25, "+1"
  radio rd_q2, 130, 240, 20, 25, "-1"
container_end ct_q

container ct_w, 50, 280, 150, 35, "w "

container_begin ct_w
  radio rd_w1,  55, 285, 20, 25, "cos(a)"
  radio rd_w2, 130, 285, 20, 25, "sin(a)"
container_end ct_w

container ct_z, 50, 325, 150, 35, "z "

container_begin ct_z
  radio rd_z1,  55, 330, 20, 25, "cos(a)"
  radio rd_z2, 130, 330, 20, 25, "sin(a)"
container_end ct_z

spin spSize, 120, 380, 90, 25, "Taille de l'image "

edit edFile, 110, 420, 100, 25, "Fichier (*.png) "

button btGraph, 10, 460, 200, 30, "Tracer", , T_Button_Return

alpha alImage, 230, 10, 480, 480, , , FL_FLAT_BOX

' -------------------------------------------------------------------
' Proprietes des objets
' -------------------------------------------------------------------

for obj = alEq1 to alEq2
  color_fl obj, FL_DARK_GREEN
  color_caption_fl obj, FL_YELLOW
  font_caption obj, FL_HELVETICA_BOLD, 20
next obj

for obj = ct_p to ct_z
  caption_align obj, FL_ALIGN_LEFT
  font_caption obj, FL_HELVETICA, 20
next obj

mark_on rd_p1
mark_on rd_u1
mark_on rd_v1

mark_on rd_q2
mark_on rd_w2
mark_on rd_z2

color_text_fl spSize, FL_RED
position_range spSize, 100, 450, 10
position spSize, 400

color_text_fl edFile, FL_RED
text edFile, "polar"

color_fl alImage, FL_BLACK

' -------------------------------------------------------------------
' Affectation des sous-programmes aux evenements
' -------------------------------------------------------------------

on_click btGraph, Graph

' -------------------------------------------------------------------
' Lancement de l'application
' -------------------------------------------------------------------

LUT s(), c()

start fmMain

' -------------------------------------------------------------------
' Sous-programmes utilitaires
' -------------------------------------------------------------------

sub LUT (s(), c())
' Look-Up Table : Sinus et Cosinus pour les angles de 0 a 360 degres

  dim i%, a

  for i = 0 to 360
    a = i * 0.01745329252  ' radians
    s(i) = sin(a)
    c(i) = cos(a)
  next i
end sub

sub Calc (r, a%, x, y)
' Calcul des coordonnees (x,y) d'un point
' en fonction du rayon r et de l'angle a en degres

  dim p%, q%, u, v, w, z

  if checked(rd_u1) then u = c(a) else u = s(a)
  if checked(rd_v1) then v = c(a) else v = s(a)
  if checked(rd_w1) then w = c(a) else w = s(a)
  if checked(rd_z1) then z = c(a) else z = s(a)

  if checked(rd_p1) then x = 1 + u else x = 1 - u
  if checked(rd_q1) then y = 1 + w else y = 1 - w

  x = r * x * v
  y = r * y * z
end_sub

function GetColor% (r, a%)
' Calcule la couleur dans le systeme HSV

  dim h, s, v, rr%, gg%, bb%
  
  h = a
  s = 1 - 0.3 * r
  v = 1 - 0.2 * r

  HSVtoRGB h, s, v, rr, gg, bb
  GetColor = RGB(rr, gg, bb)
end_function  

' -------------------------------------------------------------------
' Sous-programmes associes aux evenements
' -------------------------------------------------------------------

sub Graph ()

  const xmin = -1, xmax = 1
  const ymin = -1, ymax = 1

  const stp = 1 / 256

  dim size%                ' Taille de l'image
  dim a%, r, x, y
  dim filename$

  size = get_position(spSize)
  filename = trim(get_text(edFile))

  fb_img_begin 0, size, size
    fb_window xmin, ymin, xmax, ymax

    for r = 0 to 0.5 step stp
      for a = 0 to 360
        Calc r, a, x, y
        fb_pen_color GetColor(r, a)
        fb_point x, y
        fb_point -x, y
      next a
    next r

    if filename <> "" then fb_save filename + ".png"
  fb_img_end

  fb_set_img alImage, 0
  redraw
end_sub



La coloration est faite dans le système HSV, l'angle "a" déterminant la teinte (position sur le cercle de couleurs).

On peut choisir la taille de l'image.

L'image est sauvegardée sous forme de fichier PNG avec fond transparent, ce qui permet de l'utiliser éventuellement comme "sprite" ... pour faire des vaisseaux "aliens" par exemple Smile

Il y a encore quelques bricoles à améliorer ...

Cela pourrait faire l'objet d'un article ; je vois déjà le titre : "56 variations sur un thème de Papydall" Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
papydall

avatar

Nombre de messages : 5544
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Compilateur FBPano   Mer 31 Mai 2017 - 15:56

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur FBPano   Jeu 1 Juin 2017 - 11:14

Merci papydall Smile

Voici une version légèrement améliorée qui permet de choisir le nombre de courbes que l'on veut superposer.

Code:

' *******************************************************************
'                      Esthetique polaire
'                          Par Papydall
'             Adaptation pour FBPano par J. Debord
' *******************************************************************

' -------------------------------------------------------------------
' Constantes et variables
' -------------------------------------------------------------------

dim s(360), c(360)  ' Table des sinus et cosinus

dim obj%            ' Indice d'un objet
dim cap$            ' Label d'un objet

' -------------------------------------------------------------------
' Creation de l'interface graphique
' -------------------------------------------------------------------

enum GUI
  fmMain,
  alEq1, alEq2
  ct_p, ct_u, ct_v, ct_q, ct_w, ct_z,
  rd_p1, rd_p2, rd_u1, rd_u2, rd_v1, rd_v2,
  rd_q1, rd_q2, rd_w1, rd_w2, rd_z1, rd_z2,
  spNCurv, spSize,
  edFile,
  btGraph,
  alImage
end enum

set_scheme "gtk+"

form fmMain, 100, 100, 720, 500, "Esthetique polaire"

alpha alEq1, 10, 10, 200, 30, "x = r (1 + p.u) v", , FL_FLAT_BOX
alpha alEq2, 10, 40, 200, 30, "y = r (1 + q.w) z", , FL_FLAT_BOX

container ct_p, 30, 80, 180, 35, "p "

container_begin ct_p
  radio rd_p1,  40, 85, 20, 25, "+1"
  radio rd_p2, 130, 85, 20, 25, "-1"
container_end ct_p

container ct_u, 30, 125, 180, 35, "u "

container_begin ct_u
  radio rd_u1,  40, 130, 20, 25, "cos(a)"
  radio rd_u2, 130, 130, 20, 25, "sin(a)"
container_end ct_u

container ct_v, 30, 170, 180, 35, "v "

container_begin ct_v
  radio rd_v1,  40, 175, 20, 25, "cos(a)"
  radio rd_v2, 130, 175, 20, 25, "sin(a)"
container_end ct_v

container ct_q, 30, 215, 180, 35, "q "

container_begin ct_q
  radio rd_q1,  40, 220, 20, 25, "+1"
  radio rd_q2, 130, 220, 20, 25, "-1"
container_end ct_q

container ct_w, 30, 260, 180, 35, "w "

container_begin ct_w
  radio rd_w1,  40, 265, 20, 25, "cos(a)"
  radio rd_w2, 130, 265, 20, 25, "sin(a)"
container_end ct_w

container ct_z, 30, 305, 180, 35, "z "

container_begin ct_z
  radio rd_z1,  40, 310, 20, 25, "cos(a)"
  radio rd_z2, 130, 310, 20, 25, "sin(a)"
container_end ct_z

spin spNCurv,  120, 355,  90,  25, "Nb de courbes "
spin spSize,   120, 390,  90,  25, "Taille de l'image "
edit edFile,   120, 425,  90,  25, "Fichier (*.png) "
button btGraph, 10, 460, 200,  30, "Tracer", , T_Button_Return
alpha alImage, 230,  10, 480, 480, , , FL_FLAT_BOX

' -------------------------------------------------------------------
' Proprietes des objets
' -------------------------------------------------------------------

for obj = alEq1 to alEq2
  color_fl obj, FL_DARK_GREEN
  color_caption_fl obj, FL_YELLOW
  font_caption obj, FL_HELVETICA_BOLD, 20
next obj

for obj = ct_p to ct_z
  caption_align obj, FL_ALIGN_LEFT
  font_caption obj, FL_HELVETICA, 20
next obj

mark_on rd_p1
mark_on rd_u1
mark_on rd_v1

mark_on rd_q2
mark_on rd_w2
mark_on rd_z2

for obj = spNCurv to edFile
  color_text_fl obj, FL_RED
next obj

position_range spNCurv, 1, 500, 1
position spNCurv, 100
  
position_range spSize, 100, 450, 10
position spSize, 400

text edFile, "polar"

color_fl alImage, FL_BLACK

' -------------------------------------------------------------------
' Affectation des sous-programmes aux evenements
' -------------------------------------------------------------------

on_click btGraph, Graph

' -------------------------------------------------------------------
' Lancement de l'application
' -------------------------------------------------------------------

LUT s(), c()

start fmMain

' -------------------------------------------------------------------
' Sous-programmes utilitaires
' -------------------------------------------------------------------

sub LUT (s(), c())
' Look-Up Table : Sinus et Cosinus pour les angles de 0 a 360 degres

  dim i%, a

  s(0) = 0
  c(0) = 1
  for i = 1 to 360
    a = i * 0.01745329252  ' radians
    s(i) = sin(a)
    c(i) = cos(a)
  next i
end sub

sub Calc (a%, x, y)
' Calcul des coordonnees d'un point de la courbe de reference (r = 1)
' en fonction de l'angle a en degres

  dim u, v, w, z

  if checked(rd_u1) then u = c(a) else u = s(a)
  if checked(rd_v1) then v = c(a) else v = s(a)
  if checked(rd_w1) then w = c(a) else w = s(a)
  if checked(rd_z1) then z = c(a) else z = s(a)

  if checked(rd_p1) then x = 1 + u else x = 1 - u
  if checked(rd_q1) then y = 1 + w else y = 1 - w

  x = x * v
  y = y * z
end_sub

function GetColor% (r, a%)
' Calcule la couleur dans le systeme HSV

  dim h, s, v, rr%, gg%, bb%

  h = a
  s = 1
  v = 1

  HSVtoRGB h, s, v, rr, gg, bb
  GetColor = RGB(rr, gg, bb)
end_function

' -------------------------------------------------------------------
' Sous-programmes associes aux evenements
' -------------------------------------------------------------------

sub Graph ()

  const xmin = -2, xmax = 2
  const ymin = -2, ymax = 2

  dim nc%             ' Nb de courbes              
  dim size%           ' Taille de l'image
  dim x(360), y(360)  ' Pts de la courbe de reference (r = 1)
  dim a%, r, xr, yr   ' Parametres et pts d'une courbe quelconque
  dim i%              ' Indice de la courbe
  dim dr              ' Increment de r
  dim filename$       ' Nom du fichier PNG

  nc = get_position(spNCurv)
  size = get_position(spSize)
  filename = trim(get_text(edFile))

  dr = 1 / nc
  
  ' Calcul de la courbe de refernce
  for a = 0 to 360
    Calc a, x(a), y(a)
  next a

  ' Trace des courbes
  fb_img_begin 0, size, size
    fb_window xmin, ymin, xmax, ymax

    for i = 1 to nc
      r = i * dr
      for a = 0 to 360
        xr = x(a) * r
        yr = y(a) * r
        fb_pen_color GetColor(r, a)
        fb_point xr, yr
        fb_point -xr, yr
      next a
    next i

    if filename <> "" then fb_save filename + ".png"
  fb_img_end

  fb_set_img alImage, 0
  redraw
end_sub

Il est intéressant de pouvoir tracer un petit nombre de courbes, ou même comme ici une seule courbe pour avoir la forme de base.



Le calcul a été amélioré : on calcule d'abord les coordonnees pour une courbe de référence (r = 1) ; pour tracer les autres courbes il suffit de multiplier ces coordonnees par r.

Ceci entraîne une certaine accélération. Le programme PANORAMIC pourrait peut-être en profiter ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
papydall

avatar

Nombre de messages : 5544
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Compilateur FBPano   Jeu 1 Juin 2017 - 15:28

Merci Jean.

A la prochaine !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur FBPano   Mer 21 Juin 2017 - 21:03

Nouvelle version 0.23
---------------------

1. Ajout des CONTAINER_TAB et des TABS



Pour les explications voir la documentation : fbpano.htm --> Les objets FLTK (3)

2. Nouveaux programmes de démonstration (dans exemples\FLTK) :

   ex73.bas : "Esthetique polaire" d'après Papydall
   ex74.bas : Démonstration des TABS

3. Nouveaux programmes de fractales (dans exemples\fractal\panomand) :

   biomorph.bas : pour les biomorphes de Pickover
   newton.bas   : pour la méthode de Newton

4. Installation : les fichiers sont sur mon WebDav, dossier FBPano.

   * Si vous avez installé la version 0.22 : ne pas désinstaller ; exécutez le programme de mise à jour update_022_to_023.exe en gardant le même répertoire d'installation que pour la 0.22

   * Si vous avez une version antérieure à 0.22 : désinstallez cette version et installez la version 0.23 complète avec le programme setup_023.exe
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
papydall

avatar

Nombre de messages : 5544
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Compilateur FBPano   Jeu 22 Juin 2017 - 1:34

J’ai fais la mise à jour de la version 023
Merci Jean.
A propos, comment connaitre la version de FBPano  que l’on a installée?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur FBPano   Jeu 22 Juin 2017 - 9:56

Pour le moment, le seul moyen c'est d'afficher le fichier fbpano.htm

Je ferai en sorte que le programme start_fbpano.exe écrive le numéro de version.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur FBPano   Sam 8 Juil 2017 - 11:49

La prochaine version de FBPano apportera les objets TREEVIEW.



Dans la version de base, ils se comportent un peu comme des menus avec des sous-menus (figure de gauche).

Mais l'intérêt, c'est qu'on peut affecter des objets à chaque élément (figure de droite). On peut ainsi créer des masques de saisie plus ou moins complexes.

Il y a toutefois une petite limitation : pour que les objets apparaissent bien alignés sur le côté gauche, il faut utiliser une police de caractères à chasse fixe (police Courier sur l'exemple ci-dessus).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur FBPano   Sam 22 Juil 2017 - 10:54

Nouvelle version 0.24
---------------------

1. Ajout des TREEVIEW (voir message précedent)

   Pour les explications voir la documentation : fbpano.htm --> Les objets FLTK --> 8. TREEVIEW

2. Programmes de démonstration de TREEVIEW : ex75, ex76, ex76a (dans exemples\FLTK)

3. Correction d'un bug signalé par Ouf_ça_passe : certaines instructions utilisant des listes de paramètres ne fonctionnaient pas lorsque les virgules séparant les paramètres n'étaient pas suivies d'un espace

4. Le programme start_fbpano affiche désormais le numéro de version

5. Installation : les fichiers sont sur mon WebDav, dossier FBPano.

   * Si vous avez installé la version 0.23 : ne pas désinstaller ; exécutez le programme de mise à jour update_023_to_024.exe en gardant le même répertoire d'installation que pour la 0.23

   * Si vous avez une version antérieure à 0.23 : désinstallez cette version et installez la version 0.24 complète avec le programme setup_024.exe
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
Jicehel

avatar

Nombre de messages : 5858
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Compilateur FBPano   Ven 28 Juil 2017 - 11:59

Tu devrais ajouter une constante avec le numéro de version pour pouvoir le gérer par programmation et faire des tests si nécessaire dans l'exécution du code, au moins un qui dirait de mettre à jour à l'exécution si la version est trop ancienne
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 28 Juil 2017 - 16:00

Bien que j' ai décroché, je te félicite pour ta persévérance.
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur FBPano   Lun 31 Juil 2017 - 11:14

... en espérant que cette persévérance montrera l'exemple à ceux qui ont abandonné leur projet et les incitera à s'y remettre Smile

En attendant, voici une petite astuce de FLTK pour insérer certains symboles graphiques dans les intitulés des objets, sans passer par des icônes :

Code:

dim i%, label$

data "->"    ,">"     ,">>"  ,">|"  ,">[]"    ,"<|"
data "<-"    ,"<"     ,"<<"  ,"|<"  ,"[]<"    ,"|>"
data "<->"   ,"->|"   ,"||"  ,"+"   ,"arrow"  ,"returnarrow"
data "square","circle","line","menu","UpArrow","DnArrow"

form 0, 100, 100, 450, 420, "Labels symboliques"

matwidget T_Button, 4, 6,  1, 20, 20, 60, 60, 10, 40
matwidget T_Alpha,  4, 6, 25, 20, 80, 60, 20, 10, 80

for i = 1 to 24
  read label
  caption i, "@" + label
  font_caption i, , 30
  color_caption_fl i, FL_GREEN
  caption i + 24, label
next i
  
start 0



Chaque symbole est défini par une chaîne de caractères (en-dessous du bouton) : dans l'instruction CAPTION le symbole est obtenu en préfixant la chaîne par "@"

Il y a en plus tout un système pour modifier la taille et l'orientation des symboles, un peu comme l'instruction DRAW de FreeBASIC.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur FBPano   Lun 7 Aoû 2017 - 12:10

Quelques commandes supplémentaires pour les TREEVIEW :

- ajout d'icônes
- modification ou suppression des lignes qui matérialisent l'arborescence

Ici un TREEVIEW qui pourrait servir de menu :



Le TREEVIEW est un objet très pratique Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
papydall

avatar

Nombre de messages : 5544
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Compilateur FBPano   Mar 8 Aoû 2017 - 0:49

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Mike

avatar

Nombre de messages : 29
Age : 66
Localisation : NANCY
Date d'inscription : 12/06/2007

MessageSujet: Demande d'éclairage avec les list   Mar 15 Aoû 2017 - 18:29

Bonjour Jean,
Je te soumets ce petit programme simple qui consiste à générer 1000 nombres dans un list et les reproduire avec un filtre dans un autre.
La variable de comptage s'incrémente bien, sauf que le remplissage dans le deuxième list se limite à 256 items.
Aurais-je fais une erreur de programmation ou le remplissage des items sont limités malgré que ce ne soit pas le cas dans le premier list.
J'ai aussi essayé de changer les variables et leurs assignations, mais c'est pareil.
J'ai aussi bien compris que par défaut les variables dans les sub étaient du type variables locales, mais même en les changeant, c'est pareil
Peux-tu éclairer ma petite lanterne ?

Merci et bonnes vacances si c'est le cas.
Cordialement
Mike

Code:
form 0, 100, 100, 1020, 600, "Essai de transfert d'un list à un autre"
color_fl 0, FL_Cyan

list 1, 10, 20, 300, 500, "Remplissage 1"
list 2,350,20,300,500,"réception après requête"

remplir()
affiche()
start 0

end

sub remplir()
dim i%
dim y%
y%=1000
for i%= 1 to y%
item_add (1,str$(i%))
caption 1,str$(i%)
 next i%
end sub

sub affiche()
dim i%
dim y%
y%=1000
dim a$

 for i%= 1 to y%
 a$=item_read (1,i%)
   if val (a$)<10 or val(a$) >100 then
    item_add 2,a$
    ' item_add 2, str$(i%)
    end_if  
   caption 2,str$(i%)  
 next i%
end sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur FBPano   Mer 16 Aoû 2017 - 8:49

Bonjour Mike,

Merci d'avoir signalé ce bug !

Il y a bien saturation. La fonction item_read cesse de transmettre son résultat au programme appelant après 256 appels !

Le bug affecte aussi les COMBOs, et probablement d'autres fonctions aussi.

Je réfléchis à la meilleure manière de le corriger (transformer les fonctions en sous-programmes ? transformer la DLL panofltk en une bibliothèque statique ? ...)

J'espère avoir trouvé la solution pour la prochaine mise à jour.

PS. J'ai ajouté 2 commandes pour plier et déplier les branches des TREEVIEW.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur FBPano   Jeu 17 Aoû 2017 - 10:07

Le bug est corrigé. J'ai pu faire fonctionner le programme de Mike jusqu'à 1 million d'items dans les listes Smile

J'ai choisi la première méthode : transformation des fonctions en procédures dans la DLL, et ajout dans panofltk.bi de fonctions qui appellent ces procédures.

Ce n'est pas l'idéal, puisqu'il y a 2 appels au lieu d'un, mais cela évite de devoir modifier les programmes existants, ainsi que la documentation.

La deuxième méthode (transformation de la DLL en bibliothèque statique) est en cours d'étude mais ce sera beaucoup plus long.

Une nouvelle version de FBPano sera disponible dans les jours qui viennent. J'ai encore un programme exemple à terminer.

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
Mike

avatar

Nombre de messages : 29
Age : 66
Localisation : NANCY
Date d'inscription : 12/06/2007

MessageSujet: Re: Compilateur FBPano   Jeu 17 Aoû 2017 - 13:52

Merci Jean, c'est parfait.
Et aussi pour la possibilité de faire apparaître un TREEVIEW replié au départ.
Je ne manquerai pas de te faire part de mes interrogations au fil de mes essais qui me passionnent, comme tout ce qui est Panoramic.
Et encore bravo pour ton projet. Laughing  Laughing
Mike
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur FBPano   Lun 21 Aoû 2017 - 10:09

Voici donc la :

Nouvelle version 0.25
---------------------

1. Ajout des labels symboliques et des TREEVIEW avec icônes (voir messages précédents)

   Pour les explications voir la documentation : fbpano.htm --> Les objets FLTK (1) et (8 )

2. Nouvelles commandes :

   TREE_OPEN, TREE_CLOSE : pour déplier ou replier les branches des TREEVIEW
   
   TREE_CONNECTOR_STYLE, COLOR_CONNECTOR_FL, COLOR_CONNECTOR_RGB : pour modifier l'aspect des lignes dans les TREEVIEW
   
   ACTIVE, INACTIVE : pour activer ou désactiver un objet

3. Nouveaux programmes de démonstration (dans exemples\FLTK) :

   ex04a.bas : Labels symboliques  

   ex77.bas : TREEVIEW avec icônes
 
   ex78.bas : Calendrier (d'après un programme PANORAMIC de Jean-Claude) :
   
   

4. Correction du bug signalé par Mike : les fonctions FLTK qui retournent des chaînes de caractères ne pouvaient pas être appelées plus de 256 fois

5. Installation : les fichiers sont sur mon WebDav, dossier FBPano.

   * Si vous avez installé la version 0.24 : ne pas désinstaller ; exécutez le programme de mise à jour update_024_to_025.exe en gardant le même répertoire d'installation que pour la 0.24

   * Si vous avez une version antérieure à 0.24 : désinstallez cette version et installez la version 0.24 complète avec le programme setup_025.exe

6. Note : certains programmes exécutables (*.exe) compilés avec les anciennes versions pourraient ne pas fonctionner avec cette version : dans ce cas, il suffit de les recompiler.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
Mike

avatar

Nombre de messages : 29
Age : 66
Localisation : NANCY
Date d'inscription : 12/06/2007

MessageSujet: Re: Compilateur FBPano   Lun 21 Aoû 2017 - 23:17

@Jean
Tout fonctionne très bien.
J'ai encore quelques suggestions à te soummettre pour parfaire ton projet.
Bien sûr, il manque toujours quelque chose !!
Par exemple la possibilité de "raffraîchir" (comme un redraw) un objet fltk tel un list par exemple en fonction des données enlevées ou apportées.
Mais avant, je me dois de tester toutes les possibilités incluses dans la documentation car je suppose que beaucoup de choses m'ont échappé.
La fonction "matwidget" est facile à mettre en oeuvre et permet de faire rapidement une construction.
Bientôt un premier inutilitaire (pour le fun) avec FBpano. Mais on ne sait jamais !

En tout cas je te remercie pour ce que tu apportes à notre communauté et aussi et surtout pour ton investissement et ta volonté de poursuivre quelque chose que tu a initié et que tu poursuis.
Tu es comme Jack avec la même volonté de dépasser les limites et de construire et ça, c'est un respect absolu.
Et la gare de Limoges est très belle, issue de cette merveilleuse époque des chemins de fer qui me passionnent aussi.
Juste prendre celà comme une évidence sans rapport avec l'informatique.

Bonne soirée
Mike
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur FBPano   Lun 4 Sep 2017 - 10:47

Pour une rentrée en couleurs : j'ai ajouté une commande FB_COLORMAP qui permet de représenter une fonction de 2 variables sous forme de carte :



C'est la méthode utilisée pour tracer les images fractales, étendue au cas d'une fonction quelconque.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 4 Sep 2017 - 22:34

Wahou...bobo les yeux !
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur FBPano   Mar 5 Sep 2017 - 10:18

Oui les couleurs sont un peu vives... J'ai réglé la luminosité à 100% Smile

Mais on peut la diminuer bien entendu !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
Contenu sponsorisé




MessageSujet: Re: Compilateur FBPano   

Revenir en haut Aller en bas
 
Compilateur FBPano
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 9 sur 10Aller à la page : Précédent  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Suivant
 Sujets similaires
-
» Compilateur FBPano
» compilateur
» Compilateur --> ERREUR ’-‘ is not a valid integer value
» Compilateur : version de travail disponible

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Grands projets réalisés avec Panoramic :: Compilateur FBPANO-
Sauter vers: