FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Bataille navale SM
Problème d'affichage sur picture Emptypar jjn4 Hier à 17:39

» Une calculatrice en une ligne de programme
Problème d'affichage sur picture Emptypar jean_debord Hier à 8:01

» Gestion d'un système client-serveur.
Problème d'affichage sur picture Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
Problème d'affichage sur picture Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Problème d'affichage sur picture Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Problème d'affichage sur picture Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Problème d'affichage sur picture Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Problème d'affichage sur picture Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Problème d'affichage sur picture Emptypar papydall Dim 21 Avr 2024 - 23:30

» Form
Problème d'affichage sur picture Emptypar leclode Dim 21 Avr 2024 - 18:09

» trop de fichiers en cours
Problème d'affichage sur picture Emptypar Marc Dim 21 Avr 2024 - 2:41

» 2D_fill_color(résolu)
Problème d'affichage sur picture Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Problème d'affichage sur picture Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Problème d'affichage sur picture Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Problème d'affichage sur picture Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le deal à ne pas rater :
Cartes Pokémon 151 : où trouver le coffret Collection Alakazam-ex ?
Voir le deal

 

 Problème d'affichage sur picture

Aller en bas 
AuteurMessage
Invité
Invité




Problème d'affichage sur picture Empty
MessageSujet: Problème d'affichage sur picture   Problème d'affichage sur picture EmptyDim 28 Fév 2010 - 18:59

Je suis obligé de choisir un bug pour Panoramic, mais il n'en est rien. En fait il s'agit d'un problème d'affichage qui est tout à fait différent avec celle du 28 décembre. Je commence à délaisser un programme, parce que l'affichage devient vraiment agacent.
Sur les autres éditeurs Panoramic, l'affichage était d'abord mis en tampon je pense, et une fois terminée, l'image apparaissait. Avec le dernier éditeur, c'est tout à fait autre chose, celui-ci se produit par saccade à chaque envoi.
Pour montrer le phénomène, j'ai du reprendre le programme et enlever tout ce qui ne sert pas à la démonstration (reste 33 objets sur 101), et un peu adapter. J'ai remis un fichier en data, etc... Le résultat final d'ailleurs ne me plait plus, ce n'est pas de la faute de Panoramic, mais je le croyais plus rapide. C'est une chose que de formater un mot, une ligne, mais une page entière si à une majorité de mots il y a un changement, ce que j'essaye de faire, ne convient plus. Ecrire une page entière avec le même style, ça va vite, mais il faut limité les appels aux changements. Je vais mettre 2 programmes, le 1er est celui qui a été revu pour faire la démonstration (les couleur choisi ne sont pas top, mais on s'en fou pour l'instant). Le 2ème est un bout de programme dont les commandes sont dans les datas. N'importe lequel des programme convient, mais bon ... pour un teste, j'ai pris celui-là.
Donc il faut faire l'essai avec l'éditeur du 28 décembre, et avec le dernier
Nota: il faut fermer le dernier éditeur pour ouvrir le précédent. Ils ne cohabitent pas ensemble.

Code:

label donne,incruste_sur_image,transforme,boucle,boucle1,retourTransforme
label memoRem,memoriche,memosigne,memodeuxpoint,memotexte,memotextesans
label memoguillemet,memovariable,memovirgule,memolabel,sauVariable

dim a%,b%,v%,place%,lettre%,TABpx%,TABpx1%,size%,procedure%
dim a$,b$,c$,d$,d1$,f$,ligne$,lig_refere$,maj$,mot$

full_space    0
picture      10:top 10,90:height 10,height(0)-150:width 10,1250:font_size 10,14:font_color 10,0,0,255 :color 10,234,251,218
                font_size 10,12:font_name 10,"Bitstream Vera Sans Mono": font_bold 10
dlist 105      :' mise en liste des datas
open_dialog  49

' dlist pour sauvegarde des noms et position
dlist      135 :dlist    136 :' -- instruction
dlist      138 :dlist    139 :' -- rem '
dlist      141 :dlist    142 :' -- guillemets
dlist      144 :dlist    145 :' -- :
dlist      147 :dlist    148 :' -- <>-*+<=>/
dlist      150 :dlist    151 :' -- chaine entre guillemet
dlist      153 :dlist    154 :' -- label
dlist      156 :dlist    157 :' -- chaine avec un guillemet ouvrant seulement
dlist      159 :dlist    160 :' -- virgule
dlist      162 :dlist    163 :' -- variable
' remis cest dlist pour adapter ( ne serve à rien ici)
dlist 137:dlist 140:dlist 143:dlist 146:dlist 149:dlist 152:dlist 155:dlist 158:dlist 161:dlist 164

          procedure%=200

          while a$<>"$$$"
            read a$:item_add 105,a$
          end_while

          filter 49,"Lire un programme Panoramic|*.bas"
          f$=file_name$(49)
          if f$<>"_"
            dlist procedure%
            file_load procedure%,f$
          end_if
          ' lecture de chaque ligne du programme chargé, et envoie à l'affichage
          for v%=1 to 38
            if v%>count(procedure%) then exit_for
            lig_refere$=item_read$(procedure%,v%)
            gosub incruste_sur_image
          next v%

end
' ______________________________________________________________________________

donne:
  ' -remis en data le fichier pour faciliter la saisie sur le forum-
data "REPEAT","UNTIL ","IF ","END_IF","ELSE","TEXT "
data "FOR ","TO ","STEP ","2D_FILL_COLOR ","DIM ","LABEL"
data "ITEM_READ$( ",item_read,")",),"ITEM_ADD ","LEFT$(","left$("
data "UPPER$(","LEN(","WIDTH ","ON_CLICK ","THEN "
data "FORM ","HIDE ","TOP ","LEFT ","HEIGHT ","COLOR "
data "CAPTION ","ALPHA ","PARENT ","MEMO ","FONT_SIZE "
data "FONT_BOLD ","BUTTON","CLEAR ","MESSAGE ","GOSUB "
data "RETURN","PRINT ","PRINT_LOCATE ","PRINT_TARGET_IS "
data "GOTO","COUNT(","SHOW ","2D_PEN_COLOR ","STR$("
data "2D_RECTANGLE ","FILE_LOAD ","FILE_EXISTS( ",
data "CASE ","SELECT ","END_SELECT ","FONT_COLOR "
data "$$$"

incruste_sur_image:
  2d_target_is 10
  2d_fill_color 236,255,210

 for a%=135 to 164:clear a%:next a%
transforme:
  ligne$=rtrim$(lig_refere$)+" " :d$=""
  rem " PLACE% est défini ici au départ de ligne "

  place%=instr(ligne$,ltrim$(ligne$))
  ' ____________________________________________________________________________
  '  les REM en début de ligne
  if upper$(left$( ltrim$(ligne$) ,4))  ="REM " or left$( ltrim$(ligne$),2)="' "
    item_add 138,trim$(ligne$)
    item_add 139,place%
    goto retourTransforme
  end_if
  '  les LABELs
  if len(trim$(lig_refere$))<30 and right$(trim$(lig_refere$),1)=":" and instr(trim$(lig_refere$)," ")=0
    item_add 153,trim$(lig_refere$)
    item_add 154,place%
    goto retourTransforme
  end_if

  a%=1 :d1$=""
 ' ...........................................
 boucle:
    if d1$<>"" then gosub sauVariable
    d1$="":place%=a%
 boucle1:
 ' ...........................................
    if a%>= len(ligne$) then goto retourTransforme
    c$= mid$(ligne$,a%,1)
    if c$=" " then  a%=a%+1:goto boucle
  ' _________________________________________________________________________________________
      ' _____on regarde les guillemets pour savoir si caractère chaine ou spéciaux

  if c$=chr$(34)        :' 141,142
      if d1$<>"" then gosub sauVariable
                        rem "la 1ére fois le guillemet, à la fin le texte et le guillemet"
      item_add 141,chr$(34):item_add 142,a%
                        rem "faire le bouclage ici pour prendre le texte
      a$=right$(ligne$,len(ligne$)-a%)
      a%=a%+1
      b%=instr(a$,chr$(34))
      if b%>0                                  :' si guillemet on enregistre la chaine jusqu'au guillemet suivant
          item_add 150,left$(rtrim$(a$),b%-1)
          item_add 151,a%
        a%=a%+b%
          item_add 141,chr$(34)                  :' on enregistre le 2ème guillemet
          item_add 142,a%-1                      :' la position
          goto boucle
      else
        rem " on verra pour mettre la chaine en erreur tant qu'elle n'est pas fermé"
          item_add 156,rtrim$(a$)                :' on enregistre toute la chaine, les guillemets
          item_add 157,a%                        :' non fermé  DU 156 157
        goto retourTransforme
      end_if
  end_if        :' fin des guillemets
    ' ________________________________________________________________________________________
      ' les commandes    135,136,      recherche des INSTRUCTIONS
      a$=mid$(ligne$,a%,len(ligne$)-a%)  :maj$=upper$(a$)+"              "
      for b%=1 to count(105)
        b$=item_read$(105,b%)
        if b$=left$(maj$,len(b$))
          if d1$<>"" then gosub sauVariable
          item_add 135,left$(a$,len(b$))
          item_add 136,a%
          a%=a%+len(b$) : place%=a%
          exit_for
        end_if
      next b%
      if b%<=count(105) then goto boucle :' fin de la recherche des INSTRUCTIONS
  ' ___________________________________________________________________________________________
      ' ______on reprend les REM à l'intérieur ( on n'est pas dans les chaines

      b$=mid$(ligne$,a%,1):d$=upper$(mid$(ligne$,a%,4))
      if b$="'" or d$="REM "
        mot$= right$( ligne$, len(ligne$)-a% +1) :mot$=rtrim$(mot$)
        item_add 138,mot$
        item_add 139,a%
        goto retourTransforme: ' ICI il faut se rendre contre qu'on imprime pas.
      end_if
    ' ----------------------------------------------------------------------------------------------
      if c$="," then item_add 159,",":item_add 160,a%:item_add 161,1:a%=a%+1:goto boucle
      ' --
      if c$=":"
        item_add 144,":":item_add 145,a%:item_add 146,1:a%=a%+1
        goto boucle
      end_if
      if instr("/*-+",c$)>0 then item_add 147,c$:item_add 148,a%:item_add 149,1:a%=a%+1:goto boucle
      d$=mid$(ligne$,a%,2)
      if d$="<>" then item_add 147,d$:item_add 148,a%:a%=a%+2:goto boucle
      if d$="<=" then item_add 147,d$:item_add 148,a%:a%=a%+2:goto boucle
      if d$=">=" then item_add 147,d$:item_add 148,a%:a%=a%+2:goto boucle
      ' --
      if c$="="  then item_add 147,c$:item_add 148,a%:a%=a%+1:goto boucle
      if c$="<"  then item_add 147,c$:item_add 148,a%:a%=a%+1:goto boucle
      if c$=">"  then item_add 147,c$:item_add 148,a%:a%=a%+1:goto boucle
      ' --------------------------------------------------------------------------------------------
      ' reste les variables
      d1$=d1$+c$
      a%=a%+1
      if a%<len(ligne$)
        goto boucle1
      else
        if d1$<>"" then gosub sauVariable
      end_if
' ________________
retourTransforme:
' ----------------
  2d_target_is 10 :print_target_is 10
  size%=10
  gosub memoRem
  gosub memoriche
  gosub memosigne
  gosub memodeuxpoint
  gosub memotexte
  gosub memotextesans
  gosub memoguillemet
  gosub memovariable
  gosub memovirgule
  gosub memolabel

return
' ==============================================================================
sauVariable:
  item_add 162,d1$:item_add 163,place% :item_add 164,len(d1$):d1$="":d$=""
return

' ==============================================================================
memoRem:
rem "REM et '
  if count(138)>0
    2d_pen_color 8,215,33  : 2d_fill_color 255,255,155:' 165,251,173 :' vert
    font_color 10,0,0,255
    for a%=1 to count(138)
      a$=item_read$(138,a%)
      place%=item_read$(139,a%)
      lettre%=len(a$)
      TABpx%=place%*size%  : TABpx1%=(place%+lettre%)*size%
      print_locate TABpx%+1,(v%-1)*25+3 :print a$
    next a%
  end_if
return
rem " ========================================================================="
memoriche:
REM " COMMANDE ICI"
  if count(135)>0
    2d_pen_color 255,203,147  : 2d_fill_color 255,49,154:' 255,203,147
    font_color 10,255,255,255
    for a%=1 to count(135)
      a$=item_read$(135,a%)
      place%=item_read$(136,a%)
      lettre%=len(a$)
      TABpx%=place%*size% : TABpx1%=(place%+lettre%)*size%
      print_locate TABpx%+4,(v%-1)*25+3 :print a$
    next a%
  end_if
return
rem " ========================================================================="
memosigne:
  rem "=+-*/<>"
  if count(147)>0
    2d_pen_color 255,203,255  : 2d_fill_color 247,109,74
    font_color 10,0,0,0
    for a%=1 to count(147)
      a$=item_read$(147,a%)
      place%=item_read$(148,a%)
      lettre%=len(a$)
      TABpx%=place%*size% : TABpx1%=(place%+lettre%)*size%
      print_locate TABpx%+1,(v%-1)*25+3 :print a$
    next a%
  end_if
return
rem " ========================================================================="
memodeuxpoint:
  rem ": deux point
  if count(144)>0
    2d_pen_color 8,215,33  : 2d_fill_color 0,253,153 :' vert
    font_color 10,255,0,0
    for a%=1 to count(144)
      a$=item_read$(144,a%)
      place%=item_read$(145,a%)
      lettre%=len(a$)
      TABpx%=place%*size% : TABpx1%=(place%+lettre%)*size%
      print_locate TABpx%+1,(v%-1)*25+3 :print a$
    next a%
  end_if
return
rem " ========================================================================="
memovariable:
  rem "a% normalement le restant est variable
  if count(162)>0
    2d_pen_color 8,215,33  : 2d_fill_color 255,255,222 :' jaune
    font_color 10,255,0,0
    for a%=1 to count(162)
      a$=item_read$(162,a%)
      place%=item_read$(163,a%)
      lettre%=len(a$)
      TABpx%=place%*size% : TABpx1%=(place%+lettre%)*size%
      print_locate TABpx%+1,(v%-1)*25+3 :print a$
    next a%
  end_if
return
rem " ========================================================================="
memotexte:
  rem " traitement du texte
  if count(150)>0
    2d_pen_color 250,234,255  : 2d_fill_color 250,234,255 :' bleu
    font_color 10,0,0,255
    for a%=1 to count(150)
      a$=item_read$(150,a%)
      place%=item_read$(151,a%)
      lettre%=len(a$)
      TABpx%=place%*size% : TABpx1%=(place%+lettre%)*size%
      print_locate TABpx%+4,(v%-1)*25+3 :print a$
    next a%
  end_if
return
rem " ========================================================================="
memotextesans:
  rem " traitement du texte avec guillemet ouvert
  if count(156)>0
    2d_pen_color 250,234,255  : 2d_fill_color 250,234,255 :' bleu
    font_color 10,255,0,0
    for a%=1 to count(156)
      a$=item_read$(156,a%)
      place%=item_read$(157,a%)
      lettre%=len(a$)
      TABpx%=place%*size% : TABpx1%=(place%+lettre%)*size%
      print_locate TABpx%+4,(v%-1)*25+3 :print a$
    next a%
  end_if
return
rem " ========================================================================="
memoguillemet:
  rem " guillemet
  if count(141)>0
    2d_pen_color 181,251,255  : 2d_fill_color 181,251,255 :' bleu
    font_color 10,255,0,0
    for a%=1 to count(141)
      a$=item_read$(141,a%)
      place%=item_read$(142,a%)
      lettre%=len(a$)
      TABpx%=place%*size%+3 : TABpx1%=(place%+lettre%)*size%+3
      print_locate TABpx%+1,(v%-1)*25+3 :print a$
    next a%
  end_if
return
rem " ========================================================================="
memolabel:
  rem " label :"
  if count(153)>0
    2d_pen_color 0,0,255  : 2d_fill_color 255,255,0 :' jaune
    font_color 10,255,0,0
    for a%=1 to count(153)
      a$=item_read$(153,a%)
      place%=item_read$(154,a%)
      lettre%=len(a$)
      TABpx%=place%*size% : TABpx1%=(place%+lettre%)*size%
      print_locate TABpx%+4,(v%-1)*25+3 :print a$
    next a%
  end_if
return
rem " ========================================================================="
memovirgule:
  rem " , "
  if count(159)>0
    2d_pen_color 255,0,0  : 2d_fill_color 255,255,0
    font_color 10,0,0,0
    for a%=1 to count(159)
      a$=item_read$(159,a%)
      place%=item_read$(160,a%)
      lettre%=len(a$)
      TABpx%=place%*size% : TABpx1%=(place%+lettre%)*size%
      print_locate TABpx%+1,(v%-1)*25+3 :print a$
    next a%
  end_if
return

morceau d'un programme qui est appelé pour être visualisé:
Code:
label place , plaç, place_ret ,fill_couleur, ligne , affiche
dim a% ,b%, j$ , Mot$(20),tab$ ,place$ ,plac% ,a$, cou% , px,py,dx,dy,px1%
dim tabl$(10),ligne%,largeur% ,cou1%,cou2%  ,c%
width 0,1050:height 0,500
picture 1: width 1,1000:height 1,460 : print_target_is 1 :2d_target_is 1
font_size 1,14  : font_name 1,"Bitstream Vera Sans Mono"
font_color 1,0,0,0 :  color 1,255,255,255

dx=100:dy=100: ' position de départ
cou1%=5:cou2%=4
' ------------------------------------------------------------------------------
tabl$(1)="Nb":  tabl$(2)=" libellé  " :tabl$(3)="Prix uni":tabl$(4)="Prix total"

for a%=1 to 5:largeur%=largeur%+len(tabl$(a%))*14+2:next a%
  2d_pen_color 0,200,200 :2d_pen_width 1
' ------------------------------------------------------------------------------
ligne%=10*26 : gosub place :2d_pen_color 247,117,74
  cou%=2:gosub fill_couleur
  for a%=1 to 4 : a$=tabl$(a%) : gosub plaç : next a%
' ______________________________________________________________________________
tabl$(1)=" 1":  tabl$(2)="carotte  " :tabl$(3)="    0,25":tabl$(4)="      0,25":gosub affiche
' ______________________________________________________________________________
tabl$(1)="10":  tabl$(2)="boites    " :tabl$(3)="  15,55":tabl$(4)="    155,50" :gosub affiche
' ______________________________________________________________________________
tabl$(1)=" 3":  tabl$(2)="chiens    " :tabl$(3)="  250,00":tabl$(4)="    750,00":gosub affiche
' ______________________________________________________________________________
tabl$(1)="15":  tabl$(2)="camemberts" :tabl$(3)="    1,95":tabl$(4)="    29,25" :gosub affiche
' ______________________________________________________________________________
tabl$(1)=" 1":  tabl$(2)="mornifle  " :tabl$(3)="  350,99":tabl$(4)="    350,99" :gosub affiche
' ______________________________________________________________________________
tabl$(1)=" 5":  tabl$(2)="roses    " :tabl$(3)="    2,00":tabl$(4)="    10,00" :gosub affiche
' ==============================================================================
cou1%=1:cou2%=13

tabl$(1)="  ":  tabl$(2)="          " :tabl$(3)="        ":tabl$(4)="          "
for b%=1 to 5 :gosub affiche:next b%
tabl$(1)="123456789101112131415":tabl$(2)="":tabl$(3)="":tabl$(4)="":gosub affiche
end
' ______________________________________________________________________________
affiche:
gosub place_ret

En voyant le résultat, Panoramic convient pour montrer une figure, une page et regarder, un tableau, mais il vaut mieux éviter de réactualiser l'affichage à chaque modification du texte.
Revenir en haut Aller en bas
 
Problème d'affichage sur picture
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Problème de Picture.
» probleme d'affichage avec l'objet picture
» Problème d'affichage d'image dans un Picture.
» Problème color et color_pixel_xxx dans un picture
» Problème avec select case Probleme réglé merci

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Un problème avec PANORAMIC?-
Sauter vers: