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
» trop de fichiers en cours
Editeur avec cellules Emptypar Marc Aujourd'hui à 11:42

» Bataille navale SM
Editeur avec cellules Emptypar jjn4 Hier à 17:39

» Une calculatrice en une ligne de programme
Editeur avec cellules Emptypar jean_debord Hier à 8:01

» Gestion d'un système client-serveur.
Editeur avec cellules Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
Editeur avec cellules Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Editeur avec cellules Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Editeur avec cellules Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Editeur avec cellules Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Editeur avec cellules Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Editeur avec cellules Emptypar papydall Dim 21 Avr 2024 - 23:30

» Form
Editeur avec cellules Emptypar leclode Dim 21 Avr 2024 - 18:09

» 2D_fill_color(résolu)
Editeur avec cellules Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Editeur avec cellules Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Editeur avec cellules Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Editeur avec cellules 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 du moment : -20%
-20% Récupérateur à eau mural 300 ...
Voir le deal
79 €

 

 Editeur avec cellules

Aller en bas 
5 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
Invité
Invité




Editeur avec cellules Empty
MessageSujet: Editeur avec cellules   Editeur avec cellules EmptyDim 2 Mai 2010 - 19:43

Pour mes propres besoins, je viens de faire un éditeur, avec des cellules sur un picture.
Jack, il y a un bug, il me rajoute sur l'image des états unies! sans raison.
je recopie la phrase:
Pour mes propres besoins, je viens de faire un éditeur, avec des cellules sur un picture.
Cette fois ci, il m'a recopié 2 fois la même chose, cette fois ci ilne là pas fait. Les Etats Unies n'ont rien à faire avec la programmation (peut-être le mot: cellule)
Je pense avoir mis suffisamment d'outils pour satisfaire ceux qui ont besoins de ce type de représentation. En tout cas j'en ai mis plus que nécessaire pour moi.
Code:

' essai de faire un memo en picture avec lignage
error_french

width 0,1000:height 0,900

dim Grid_max_colonne% : Grid_max_colonne%=20
dim Grid_max_ligne%  : Grid_max_ligne%  =35
dim a% ,h%,v%,a$

label Grid_initialisation
gosub Grid_initialisation


' =========================================================
rem "quelques cellules pour montrer les possibilitées" :' |
gosub Grid_teste                                      :' |
gosub Grid_grille                                      :' |
' =========================================================

END:' **

' ==============================================================================
Grid_gras:
  if left$(Grid_style$(colonne%,ligne%),1)="g"
      Grid_style$(colonne%,ligne%)="G"+mid$(Grid_style$(colonne%,ligne%),2,2)
      font_bold 1 :font_bold 27
  else
      Grid_style$(colonne%,ligne%)="g"+mid$(Grid_style$(colonne%,ligne%),2,2)
      font_bold_off 1 :font_bold_off 27
  end_if
  gosub Grid_grille : set_focus 3
return
' ==============================================================================
Grid_souligne:
  if mid$(Grid_style$(colonne%,ligne%),2,1)="s"
      Grid_style$(colonne%,ligne%)=left$(Grid_style$(colonne%,ligne%),1)+"S"+right$(Grid_style$(colonne%,ligne%),1)
      font_underline 1 :font_underline 28
  else
      Grid_style$(colonne%,ligne%)=left$(Grid_style$(colonne%,ligne%),1)+"s"+right$(Grid_style$(colonne%,ligne%),1)
      font_underline_off 1  : font_underline_off 28
  end_if
  gosub Grid_grille : set_focus 3
return
' ==============================================================================
Grid_italic:
  if right$(Grid_style$(colonne%,ligne%),1)="i"
      Grid_style$(colonne%,ligne%)=left$(Grid_style$(colonne%,ligne%),2)+"I"
      font_italic 1 : font_italic 29
  else
      Grid_style$(colonne%,ligne%)=left$(Grid_style$(colonne%,ligne%),2)+"i"
      font_italic_off 1 : font_italic_off 29
  end_if
  gosub Grid_grille : set_focus 3
return
' ==============================================================================
Grild_size_font:
  Grid_size(colonne%,ligne%)=position(26):gosub Grid_grille  : set_focus 3
return
' ==============================================================================
Grid_modif_lignage:
  Grid_haut(ligne%+1)=  position(24)
  Grid_larg(colonne%+1)=position(22):gosub cumul_largeur:gosub Grid_grille
return
' ==============================================================================
Grid_kolon:
  Grid_surf$(colonne%,ligne%)=Grid_couleur$
  a$=Grid_couleur$:gosub Grid_couleur:color 7,rouge%,vert%,bleu%
  gosub Grid_grille
return
' ==============================================================================
Grid_front:
  Grid_ink$(colonne%,ligne%)=Grid_couleur$
  a$=Grid_couleur$:gosub Grid_couleur:color 8,rouge%,vert%,bleu%
  gosub Grid_grille
return
' ==============================================================================
Grid_choix_couleur:
  for a%=10 to 20
      if clicked(a%)=1 then exit_for
  next a%
  Grid_couleur$=mid$(Grid_carre$,a%-9,1)
return
' ==============================================================================
Grid_saisi:
  Grid_tap%= key_up_code
  if instr( Grid_direction$ , chr$(Grid_tap%))>0
      Grid_creat$(colonne%,ligne%)=text$(3)
      2d_pen_width 1 :2d_pen_color 214,211,247
      a$=grid_surf$(colonne%,ligne%):gosub Grid_couleur:2d_fill_color rouge%,vert%,bleu%
      2d_rectangle Grid_Line(colonne%) , Grid_col(ligne%), Grid_Line(colonne%+1)+1 , Grid_col(ligne%+1)+1
      a$=Grid_ink$(colonne%,ligne%) :gosub Grid_couleur
      font_color 1,rouge%,vert%,bleu%
      h%=colonne%:v%=ligne%:gosub Grid_complement
      print_locate Grid_Line(colonne%)+2,Grid_col(ligne%)+5:print Grid_creat$(colonne%,ligne%)

      if Grid_tap% =13  or key_up_code=40
        ligne%=ligne%+1 :if ligne%>Grid_max_ligne% then ligne%=Grid_max_ligne%
        goto Grid_suite
      end_if

      if Grid_tap%=38  and ligne%>1
        ligne%=ligne%-1
        goto Grid_suite
      end_if

      if Grid_tap%=37 and colonne%>1
        colonne%=colonne%-1
        goto Grid_suite
      end_if

      if Grid_tap%=39
        colonne%=colonne%+1:if colonne%>Grid_max_colonne% then colonne%=Grid_max_colonne%
        goto Grid_suite
      end_if
  end_if
return
' ==============================================================================
cumul_largeur:
  2d_clear
  2d_pen_color 195,203,203:2d_pen_width 15:2d_fill_color 255,255,255:2d_rectangle 1,1,width(1),height(1)
  2d_pen_color 214,211,247:2d_pen_width 1
  for a%=1 to 20:Grid_line(a%)=Grid_line(a%-1)+Grid_larg(a%):next a%
  for a%=1 to 20:2d_line Grid_line(a%),1,Grid_line(a%),height(1):next a%
cumul_hauteur:
  2d_pen_color 214,211,247:2d_pen_width 1
  for a%=2 to 35:Grid_col(a%)=Grid_col(a%-1)+Grid_haut(a%):next a%
  for a%=1 to 35:2d_line 1,Grid_col(a%),width(1),Grid_col(a%):next a%
return
' ==============================================================================
Grid_grille:
  2d_pen_color 214,211,247:2d_pen_width 1
  for h%=1 to 20
  for v%=1 to 30
      if Grid_creat$(h%,v%)<>""
        Grid%=(Grid_line(h%)-Grid_line(h%-1))+2
        a$=grid_surf$(h%,v%):gosub Grid_couleur:2d_fill_color rouge%,vert%,bleu%
        2d_rectangle Grid_Line(h%) , Grid_col(v%), Grid_Line(h%+1)+1 , Grid_col(v%+1)+1
        a$=Grid_ink$(h%,v%) :gosub Grid_couleur
        font_color 1,rouge%,vert%,bleu%
        gosub Grid_complement
        print_locate Grid_Line(h%)+2,Grid_col(v%)+5-Grid_decale%:print Grid_creat$(h%,v%)
      else
        if Grid_surf$(h%,v%)="" then grid_surf$(h%,v%)="w"
        if Grid_ink$( h%,v%)="" then grid_ink$(h%,v%) ="n"
      end_if
  next v%
  next h%
  for a%=1 to 30:2d_line 1,Grid_col(a%),height(1),Grid_col(a%):next a%
  set_focus 3
return
' ==============================================================================
grid_couleur:
  Grid_couleur%=asc(upper$(a$))
  SELECT Grid_couleur%
      case  0              :'            rien
      CASE 82:GOSUB Grid_r  :' rouge
      CASE 86:GOSUB Grid_v  :' vert
      CASE 66:Gosub Grid_b  :' bleu
      CASE 87:GOSUB Grid_W  :' blanc soit WHITE
      CASE 78:GOSUB Grid_N  :' noir
      CASE 71:GOSUB Grid_g  :' gris
      CASE 74:GOSUB Grid_j  :' jaune
      CASE 79:GOSUB Grid_O  :' orange
      CASE 80:GOSUB Grid_P  :' rose soit PINK
      CASE 77:GOSUB Grid_M  :' marron
      CASE 76:GOSUB Grid_L  :' violet soit LILAS
  END_SELECT
return
' ==============================================================================
grid_r:
  rouge%=255:vert%=0:bleu%=0
return
' ==============================================================================
grid_v:
  rouge%=0:vert%=255:bleu%=0
return
' ==============================================================================
grid_b:
  rouge%=0:vert%=0:bleu%=255
return
' ==============================================================================
grid_w:
  rouge%=255:vert%=255:bleu%=255
return
' ==============================================================================
grid_n:
  rouge%=0:vert%=0:bleu%=0
return
' ==============================================================================
grid_g:
  rouge%=180:vert%=180:bleu%=180
return
' ==============================================================================

grid_j:
  rouge%=255:vert%=255:bleu%=0
return
' ==============================================================================
grid_o:
  rouge%=255:vert%=180:bleu%=0
return
' ==============================================================================
grid_p:
  rouge%=255:vert%=210:bleu%=255
return
' ==============================================================================
grid_l:
  rouge%=255:vert%=100:bleu%=255
return
' ==============================================================================
grid_m:
  rouge%=190:vert%=110:bleu%=0
return
' ==============================================================================
Grid_touche:
  2d_pen_width 1 :2d_pen_color 214,211,247
  a$=grid_surf$(colonne%,ligne%):gosub Grid_couleur:2d_fill_color rouge%,vert%,bleu%
  2d_rectangle Grid_Line(colonne%) , Grid_col(ligne%), Grid_Line(colonne%+1)+1 , Grid_col(ligne%+1)+1
  a$=Grid_ink$(colonne%,ligne%) :gosub Grid_couleur
  font_color 1,rouge%,vert%,bleu%
  h%=colonne%:v%=ligne%:gosub Grid_complement
  print_locate Grid_Line(colonne%)+2,Grid_col(ligne%)+5:print Grid_creat$(colonne%,ligne%)

  x%=mouse_x_left_down(1)
  y%=mouse_y_left_down(1)

  for h%=0 to 20
      if Grid_line(h%)< x% then colonne%=h%:if colonne%=0 then colonne%=1
  next h%

  for v%=0 to 30
      if Grid_col(v%)< y% then ligne%=v%:if ligne%=0 then ligne%=0
  next v%

Grid_suite:
  caption 4,"position:"+str$(colonne%)+" , "+str$(ligne%)
  a$=grid_surf$(colonne%,ligne%)
  if Grid_creat$(colonne%,ligne%)<>""
      gosub Grid_couleur:2d_fill_color 255-rouge%,255-vert%,255-bleu%
      2d_pen_width 3:2d_pen_color 0,0,0
      2d_rectangle Grid_Line(colonne%)+4 , Grid_col(ligne%)+3, Grid_Line(colonne%+1)-1 , Grid_col(ligne%+1)-1
      a$=Grid_ink$(colonne%,ligne%) :gosub Grid_couleur
      font_color 1,255-rouge%,255-vert%,255-bleu% :font_size 1,Grid_size(colonne%,ligne%)
      print_locate Grid_Line(colonne%)+2,Grid_col(ligne%)+5:print Grid_creat$(colonne%,ligne%)
      text 3,Grid_creat$(colonne%,ligne%)
      display
      wait 500
  end_if
  text 3,Grid_creat$(colonne%,ligne%)
  2d_fill_color 232,242,255

  a$=grid_surf$(colonne%,ligne%):gosub Grid_couleur:color 7,rouge%,vert%,bleu%
  2d_pen_width 3:2d_pen_color 0,0,0:' rouge%,vert%,bleu%
  2d_rectangle Grid_Line(colonne%)+4 , Grid_col(ligne%)+3, Grid_Line(colonne%+1)-1 , Grid_col(ligne%+1)-1
  a$=Grid_ink$(colonne%,ligne%) :gosub Grid_couleur:color 8,rouge%,vert%,bleu%
  font_color 1,0,0,0:font_size 1,Grid_size(colonne%,ligne%)
  print_locate Grid_Line(colonne%)+2,Grid_col(ligne%)+5:print Grid_creat$(colonne%,ligne%)
  position 22,Grid_larg(colonne%+1)
  position 24,Grid_haut(ligne%+1)
  position 26,Grid_size(colonne%,ligne%)
  if left$(Grid_style$(colonne%,ligne%),1)="G"
    font_bold 27
  else
      font_bold_off 27
  end_if

  if mid$(Grid_style$(colonne%,ligne%),2,1)="S"
      font_underline 28
  else
      font_underline_off 28
  end_if

  if right$(Grid_style$(colonne%,ligne%),1)="I"
      font_italic 29
  else
      font_italic_off 29
  end_if

  set_focus 3
return
' ==============================================================================
Grid_complement:
  if Grid_size(h%,v%)>0
      font_size 1,Grid_size(h%,v%)
  else
      font_size 1,10:Grid_size(h%,v%)=10
  end_if

  if left$(Grid_style$(h%,v%),1)="G"
      font_bold 1
  else
      font_bold_off 1
  end_if

  if mid$(Grid_style$(h%,v%),2,1)="S"
      font_underline 1
  else
      font_underline_off 1
  end_if

  if right$(Grid_style$(h%,v%),1)="I"
      font_italic 1
  else
      font_italic_off 1
  end_if
  ' on remonte les lignes si size trop grand ou soulignement, pour rester dans la cellule
  Grid_decale%=0
  if Grid_size(h%,v%)>10 then Grid_decale%=Grid_size(h%,v%)-10
  if instr(Grid_style$(h%,v%),"S")>0 then Grid_decale%=Grid_decale%+2
return

' ==============================================================================
                rem "  TESTE avec des cellules prédéfinies "
' ==============================================================================
Grid_teste:

rem "mettre les largeurs de cellule
data 5,50,70,70,50,80,70,70,70,70
for a%=1 to 20:        Grid_larg(a%)=70:next a%
for a%=1 to 10:read v%:Grid_larg(a%)=v%:next a%

for a%=2 to 30:Grid_haut(a%)=25:next a%

Grid_col(1) =10  :' hauteur colonne 1
Grid_haut(1)=10

rem "mettre les hauteurs de cellule"
for a%=2 to 30:Grid_haut(a%)=25:next a%
gosub cumul_largeur


Grid_creat$(2,3)="case:2,3":Grid_surf$(2,3)="J":Grid_ink$(2,3)="B"
Grid_creat$(5,8)="case:5,8":Grid_surf$(5,8)="N":Grid_ink$(5,8)="R"

colonne%=1:ligne%=1
Grid_creat$(colonne%,ligne%)="rouge":grid_surf$(colonne%,ligne%)="r":grid_ink$(colonne%,ligne%)="w"
ligne%=2
Grid_creat$(colonne%,ligne%)="vert":grid_surf$(colonne%,ligne%)="v":grid_ink$(colonne%,ligne%)="o"
ligne%=3
Grid_creat$(colonne%,ligne%)="bleu":grid_surf$(colonne%,ligne%)="b":grid_ink$(colonne%,ligne%)="r"
ligne%=4
Grid_creat$(colonne%,ligne%)="noir":grid_surf$(colonne%,ligne%)="n":grid_ink$(colonne%,ligne%)="w"
ligne%=5
Grid_creat$(colonne%,ligne%)="gris":grid_surf$(colonne%,ligne%)="g":grid_ink$(colonne%,ligne%)="r"
ligne%=6
Grid_creat$(colonne%,ligne%)="jaune":grid_surf$(colonne%,ligne%)="j":grid_ink$(colonne%,ligne%)="n"
ligne%=7
Grid_creat$(colonne%,ligne%)="orange":grid_surf$(colonne%,ligne%)="o":grid_ink$(colonne%,ligne%)="n"
ligne%=8
Grid_creat$(colonne%,ligne%)="rose":grid_surf$(colonne%,ligne%)="p":grid_ink$(colonne%,ligne%)="b"
ligne%=9
Grid_creat$(colonne%,ligne%)="marron":grid_surf$(colonne%,ligne%)="m":grid_ink$(colonne%,ligne%)="v"
ligne%=10
Grid_creat$(colonne%,ligne%)="violet":grid_surf$(colonne%,ligne%)="l":grid_ink$(colonne%,ligne%)="n"
return

' ==============================================================================
Grid_enregistre:
  filter 30,"Nom du fichier|*.fic"
  Grid_fichier$=file_name$(30)
  if Grid_fichier$<>"_"
      file_open_write 1,Grid_fichier$

      file_writeln 1,Grid_max_colonne%
      File_writeln 1,Grid_max_ligne%

      For h%=0 to Grid_max_colonne%:file_writeln 1,Grid_larg(h%):next h%
      For v%=0 to Grid_max_ligne%  :file_writeln 1,Grid_haut(v%):next v%

      For h%=1 to Grid_max_colonne%
      For v%=1 to Grid_max_ligne%
        if Grid_creat$(h%,v%)<>""
            a$=right$("000"+str$(h%),3)+":"+right$("000"+str$(v%),3)+"|"+Grid_creat$(h%,v%)
            file_writeln 1,a$
            file_writeln 1,Grid_style$(h%,v%)
            file_writeln 1,Grid_size(h%,v%)
        end_if
      next v%
      next h%
      file_writeln 1,"couleur:"
      For h%=1 to Grid_max_colonne%
      For v%=1 to Grid_max_ligne%
        if  Grid_surf$(h%,v%)<>"" or Grid_ink$(h%,v%)<>""
            if upper$(Grid_surf$(h%,v%))<>"W" or upper$(Grid_ink$(h%,v%))<>"N"
              a$=right$("000"+str$(h%),3)+":"+right$("000"+str$(v%),3)+"|"+Grid_surf$(h%,v%)+"!"+Grid_ink$(h%,v%)
              file_writeln 1,a$
            end_if
        end_if

      next v%
      next h%
      file_writeln 1,"stop"
      file_close 1
  end_if
  set_focus 3
return
' ==============================================================================
Grid_chargement:
  filter 31,"Nom du fichier|*.fic"
  Grid_fichier$=file_name$(31)
  if Grid_fichier$<>"_"
      file_open_read 1,Grid_fichier$
      file_readln 1,Grid_max_colonne%
      file_readln 1,Grid_max_ligne%

      For h%=0 to Grid_max_colonne%:file_readln 1,Grid_larg(h%):next h%
      For v%=0 to Grid_max_ligne%  :file_readln 1,Grid_haut(v%):next v%
      repeat
        file_readln 1,a$
        if a$<>"couleur:"
            h%=val(left$(a$,3))
            v%=val(mid$(a$,5,3))
            a$=right$(a$,len(a$)-8):Grid_creat$(h%,v%)=a$
            file_readln 1,Grid_style$(h%,v%)
            file_readln 1,Grid_size(h%,v%)
        end_if
      until a$="couleur:"

      repeat
        file_readln 1,a$
        if a$<>"stop"
            h%=val(left$(a$,3))
            v%=val(mid$(a$,5,3))
            a$=right$(a$,len(a$)-8):if Grid_surf$(h%,v%)<>"!" then Grid_surf$(h%,v%)=left$(a$,1)
            if right$(a$,1)<>"!" then Grid_ink$(h%,v%)=right$(a$,1)
        end_if
      until a$="stop"
      file_close 1
      gosub cumul_largeur
      gosub Grid_grille
      colonne%=1:ligne%=1
  end_if
  set_focus 3
return
' ==============================================================================
Grid_initialisation:

dim  Grid_col(50)
dim  Grid_line(50)

dim  Grid_haut(35)
dim  Grid_larg(20)
dim  Grid% , Grid_creat$(20,35) ,Grid_size(20,35)
dim Grid_ink$(20,35)
dim Grid_Surf$(20,35)
dim Grid_style$(20,35)
dim rouge% , vert% , bleu% ,Grid_couleur%  , Grid_touche% ,colonne%,ligne%,x%,y% , Grid_tap%
dim kolor_rouge% , kolor_vert% , kolor_bleu%  ,dr%,ga% ,ha%,ba% ,erreur% , Grid_couleur$
dim Grid_carre$ , Grid_decale% , Grid_direction$ , Grid_fichier$

label grid_r , grid_v , grid_b , grid_w , grid_n , grid_g , grid_j , grid_o
label grid_p , grid_l , grid_m

label cumul_largeur  ,  Grid_couleur , Grid_touche , Grid_teste , Grid_grille , Grid_suite
label Grid_saisi , Grid_choix_couleur , Grid_kolon , Grid_front , Grid_complement
label Grid_modif_lignage , cumul_hauteur , Grild_size_font , Grid_gras , Grid_souligne , Grid_italic
label Grid_enregistre , Grid_chargement

' pour edit, éviter l'affichage sur l'écran pendant la saisie (pertubation affichage)
for a%=37 to 40
  Grid_direction$=Grid_direction$+chr$(a%)
next a%
Grid_direction$=Grid_direction$+chr$(13)

' LES OBJETS
picture      1 :top 1,50:width 1,950:height 1,800:font_name 1,"Bitstream Ver Sans Mono":font_size 1,10
              2d_target_is 1:2d_pen_color 214,211,247 :font_bold 1
              print_target_is 1 : on_click 1,Grid_touche
alpha        2 :top 2,10:left 2,30:caption 2,"texte cellule :"
edit        3 :hide 3:height 3,25:show 3:top 3,10 :left 3,90:width 3,200:font_size 3,12:font_bold 3
              on_key_up 3,Grid_saisi
alpha        4 :top 4,25:left 4,10:caption 4,"position:"+str$(colonne%)+" , "+str$(ligne%)

Grid_carre$="RVBWNGJOPML":' pour remplir les carrés en couleur, selon celles programmés
for a%=10 to 20
  picture a%:top a%,10:left a%,300+(a%-10)*17:width a%,15:height a%,15
  a$= mid$(Grid_carre$,a%-9,1) : gosub Grid_couleur
  color a%,rouge%,vert%,bleu%  : on_click a%,Grid_choix_couleur
next a%

alpha        5 :top 5,30:left 5,305:caption 5,"cellule :"
alpha        6 :top 6,30:left 6,410:caption 6,"libellé"
picture      7 :top 7,30:left 7,340:width 7,20:height 7,12 :on_click 7,Grid_kolon
picture      8 :top 8,30:left 8,445:width 8,20:height 8,12 :on_click 8,Grid_front
alpha      21 :top 21,0:left 21 ,490:caption 21,"largeur"
spin        22 :top 22,20:left 22,490:width 22,50 :on_click 22,Grid_modif_lignage
alpha      23 :top 23,0:left 23 ,550:caption 23,"hauteur"
spin        24 :top 24,20:left 24,550:width 24,50 :on_click 24,Grid_modif_lignage
alpha      25 :top 25,0:left 25,610 :caption 25,"size fonte"
spin        26 :top 26,20:left 26,610:width 26,50 :on_click 26,Grild_size_font
alpha      27 :top 27,5:left 27,670:font_name 27,"Arial":font_size 27,14:caption 27,"G":width 27,18
alpha      28 :top 28,5:left 28,690:font_name 28,"Arial":font_size 28,14:caption 28,"S":width 28,18
alpha      29 :top 29,5:left 29,710:font_name 29,"Arial":font_size 29,14:caption 29,"I":width 29,18

save_dialog 30
open_dialog 31
button      32 :top 32,5 :left 32,730:width 32,50:caption 32,"enregistre":height 32,20
button      33 :top 33,26:left 33,730:width 33,50:caption 33,"charger"  :height 33,20
' -------------------------
on_click 27,Grid_gras
on_click 28,Grid_souligne
on_click 29,Grid_italic
on_click 32,Grid_enregistre
on_click 33,Grid_chargement

' ==============================================================================
' initialisation de départ lorsque rien n'est encore défini

Grid_larg(1)=5  : Grid_col(0)=5 :Grid_line(0)=5
for a%=2 to 20:Grid_larg(a%)=70:next a%
for a%=1 to 30:Grid_haut(a%)=25:next a%:gosub cumul_largeur


for v%=0 to 30 : for h%=0 to 20
  Grid_size(h%,v%)=10 : Grid_surf$(h%,v%)="w": grid_ink$(h%,v%)="n" :Grid_style$(h%,v%)="gsi"
next h%:next v%

gosub Grid_grille :' mise à jour de départ

return






le fichier d'aide:
j'ai rajouté des lignes vides ici pour bien séparer les deux programmes

Voir le Fichier : aide.7z



le programme nettoyer de ses outils pour une applications qui serait déjà préparée:




Code:

' essai de faire un memo en picture avec lignage
error_french

width 0,1000:height 0,900

dim Grid_max_colonne% : Grid_max_colonne%=20
dim Grid_max_ligne%  : Grid_max_ligne%  =35

label Grid_initialisation
gosub Grid_initialisation



END:' **

' ==============================================================================
Grid_gras:
  if left$(Grid_style$(colonne%,ligne%),1)="g"
      Grid_style$(colonne%,ligne%)="G"+mid$(Grid_style$(colonne%,ligne%),2,2)
      font_bold 1 :font_bold 27
  else
      Grid_style$(colonne%,ligne%)="g"+mid$(Grid_style$(colonne%,ligne%),2,2)
      font_bold_off 1 :font_bold_off 27
  end_if
  gosub Grid_grille : set_focus 3
return
' ==============================================================================
Grid_souligne:
  if mid$(Grid_style$(colonne%,ligne%),2,1)="s"
      Grid_style$(colonne%,ligne%)=left$(Grid_style$(colonne%,ligne%),1)+"S"+right$(Grid_style$(colonne%,ligne%),1)
      font_underline 1 :font_underline 28
  else
      Grid_style$(colonne%,ligne%)=left$(Grid_style$(colonne%,ligne%),1)+"s"+right$(Grid_style$(colonne%,ligne%),1)
      font_underline_off 1  : font_underline_off 28
  end_if
  gosub Grid_grille : set_focus 3
return
' ==============================================================================
Grid_italic:
  if right$(Grid_style$(colonne%,ligne%),1)="i"
      Grid_style$(colonne%,ligne%)=left$(Grid_style$(colonne%,ligne%),2)+"I"
      font_italic 1 : font_italic 29
  else
      Grid_style$(colonne%,ligne%)=left$(Grid_style$(colonne%,ligne%),2)+"i"
      font_italic_off 1 : font_italic_off 29
  end_if
  gosub Grid_grille : set_focus 3
return
' ==============================================================================
Grild_size_font:
  Grid_size(colonne%,ligne%)=position(26):gosub Grid_grille  : set_focus 3
return
' ==============================================================================
Grid_modif_lignage:
  Grid_haut(ligne%+1)=  position(24)
  Grid_larg(colonne%+1)=position(22):gosub cumul_largeur:gosub Grid_grille
return
' ==============================================================================
Grid_kolon:
  Grid_surf$(colonne%,ligne%)=Grid_couleur$
  a$=Grid_couleur$:gosub Grid_couleur:color 7,rouge%,vert%,bleu%
  gosub Grid_grille
return
' ==============================================================================
Grid_front:
  Grid_ink$(colonne%,ligne%)=Grid_couleur$
  a$=Grid_couleur$:gosub Grid_couleur:color 8,rouge%,vert%,bleu%
  gosub Grid_grille
return
' ==============================================================================
Grid_saisi:
  Grid_tap%= key_up_code
 '  if instr( Grid_direction$ , chr$(Grid_tap%))>0
      Grid_creat$(colonne%,ligne%)=text$(3)
      2d_pen_width 1 :2d_pen_color 214,211,247
      a$=grid_surf$(colonne%,ligne%):gosub Grid_couleur:2d_fill_color rouge%,vert%,bleu%
      2d_rectangle Grid_Line(colonne%) , Grid_col(ligne%), Grid_Line(colonne%+1)+1 , Grid_col(ligne%+1)+1
      a$=Grid_ink$(colonne%,ligne%) :gosub Grid_couleur
      font_color 1,rouge%,vert%,bleu%
      h%=colonne%:v%=ligne%:gosub Grid_complement
      print_locate Grid_Line(colonne%)+2,Grid_col(ligne%)+5:print Grid_creat$(colonne%,ligne%)

      if Grid_tap% =13  or key_up_code=40
        ligne%=ligne%+1 :if ligne%>Grid_max_ligne% then ligne%=Grid_max_ligne%
        goto Grid_suite
      end_if

      if Grid_tap%=38  and ligne%>1
        ligne%=ligne%-1
        goto Grid_suite
      end_if

      if Grid_tap%=37 and colonne%>1
        colonne%=colonne%-1
        goto Grid_suite
      end_if

      if Grid_tap%=39
        colonne%=colonne%+1:if colonne%>Grid_max_colonne% then colonne%=Grid_max_colonne%
        goto Grid_suite
      end_if
  ' end_if
return
' ==============================================================================
cumul_largeur:
  2d_clear
  2d_pen_color 214,211,247:2d_pen_width 1
  for a%=1 to 20:Grid_line(a%)=Grid_line(a%-1)+Grid_larg(a%):next a%
  for a%=1 to 20:2d_line Grid_line(a%),1,Grid_line(a%),height(1):next a%
cumul_hauteur:
  2d_pen_color 214,211,247:2d_pen_width 1
  for a%=2 to 35:Grid_col(a%)=Grid_col(a%-1)+Grid_haut(a%):next a%
  for a%=1 to 35:2d_line 1,Grid_col(a%),width(1),Grid_col(a%):next a%
return
' ==============================================================================
Grid_grille:
  2d_pen_color 214,211,247:2d_pen_width 1
  for h%=1 to 20
  for v%=1 to 30
      if Grid_creat$(h%,v%)<>""
        Grid%=(Grid_line(h%)-Grid_line(h%-1))+2
        a$=grid_surf$(h%,v%):gosub Grid_couleur:2d_fill_color rouge%,vert%,bleu%
        2d_rectangle Grid_Line(h%) , Grid_col(v%), Grid_Line(h%+1)+1 , Grid_col(v%+1)+1
        a$=Grid_ink$(h%,v%) :gosub Grid_couleur
        font_color 1,rouge%,vert%,bleu%
        gosub Grid_complement
        print_locate Grid_Line(h%)+2,Grid_col(v%)+5-Grid_decale%:print Grid_creat$(h%,v%)
      else
        if Grid_surf$(h%,v%)="" then grid_surf$(h%,v%)="w"
        if Grid_ink$( h%,v%)="" then grid_ink$(h%,v%) ="n"
      end_if
  next v%
  next h%
  for a%=1 to 30:2d_line 1,Grid_col(a%),800,Grid_col(a%):next a%
  set_focus 3
return
' ==============================================================================
grid_couleur:
  Grid_couleur%=asc(upper$(a$))
  SELECT Grid_couleur%
      case  0              :'            rien
      CASE 82:GOSUB Grid_r  :' rouge
      CASE 86:GOSUB Grid_v  :' vert
      CASE 66:Gosub Grid_b  :' bleu
      CASE 87:GOSUB Grid_W  :' blanc soit WHITE
      CASE 78:GOSUB Grid_N  :' noir
      CASE 71:GOSUB Grid_g  :' gris
      CASE 74:GOSUB Grid_j  :' jaune
      CASE 79:GOSUB Grid_O  :' orange
      CASE 80:GOSUB Grid_P  :' rose soit PINK
      CASE 77:GOSUB Grid_M  :' marron
      CASE 76:GOSUB Grid_L  :' violet soit LILAS
  END_SELECT
return
' ==============================================================================
grid_r:
  rouge%=255:vert%=0:bleu%=0
return
' ==============================================================================
grid_v:
  rouge%=0:vert%=255:bleu%=0
return
' ==============================================================================
grid_b:
  rouge%=0:vert%=0:bleu%=255
return
' ==============================================================================
grid_w:
  rouge%=255:vert%=255:bleu%=255
return
' ==============================================================================
grid_n:
  rouge%=0:vert%=0:bleu%=0
return
' ==============================================================================
grid_g:
  rouge%=180:vert%=180:bleu%=180
return
' ==============================================================================

grid_j:
  rouge%=255:vert%=255:bleu%=0
return
' ==============================================================================
grid_o:
  rouge%=255:vert%=180:bleu%=0
return
' ==============================================================================
grid_p:
  rouge%=255:vert%=210:bleu%=255
return
' ==============================================================================
grid_l:
  rouge%=255:vert%=100:bleu%=255
return
' ==============================================================================
grid_m:
  rouge%=190:vert%=110:bleu%=0
return
' ==============================================================================
Grid_touche:
  2d_pen_width 1 :2d_pen_color 214,211,247
  a$=grid_surf$(colonne%,ligne%):gosub Grid_couleur:2d_fill_color rouge%,vert%,bleu%
  2d_rectangle Grid_Line(colonne%) , Grid_col(ligne%), Grid_Line(colonne%+1)+1 , Grid_col(ligne%+1)+1
  a$=Grid_ink$(colonne%,ligne%) :gosub Grid_couleur
  font_color 1,rouge%,vert%,bleu%
  h%=colonne%:v%=ligne%:gosub Grid_complement
  print_locate Grid_Line(colonne%)+2,Grid_col(ligne%)+5:print Grid_creat$(colonne%,ligne%)

  x%=mouse_x_left_down(1)
  y%=mouse_y_left_down(1)

  for h%=1 to 20
      if Grid_line(h%)< x% then colonne%=h%
  next h%

  for v%=1 to 30
      if Grid_col(v%)< y% then ligne%=v%
  next v%

Grid_suite:
  a$=grid_surf$(colonne%,ligne%)
  if Grid_creat$(colonne%,ligne%)<>""
      gosub Grid_couleur:2d_fill_color 255-rouge%,255-vert%,255-bleu%
      2d_pen_width 3:2d_pen_color 0,0,0:' rouge%,vert%,bleu%
      2d_rectangle Grid_Line(colonne%)+4 , Grid_col(ligne%)+3, Grid_Line(colonne%+1)-1 , Grid_col(ligne%+1)-1
      a$=Grid_ink$(colonne%,ligne%) :gosub Grid_couleur
      font_color 1,255-rouge%,255-vert%,255-bleu% :font_size 1,Grid_size(colonne%,ligne%)
      print_locate Grid_Line(colonne%)+2,Grid_col(ligne%)+5:print Grid_creat$(colonne%,ligne%)
      text 3,Grid_creat$(colonne%,ligne%)
      display
      wait 600
  end_if
  text 3,Grid_creat$(colonne%,ligne%)
  2d_fill_color 232,242,255

  a$=grid_surf$(colonne%,ligne%):gosub Grid_couleur
  2d_pen_width 3:2d_pen_color 0,0,0:' rouge%,vert%,bleu%
  2d_rectangle Grid_Line(colonne%)+4 , Grid_col(ligne%)+3, Grid_Line(colonne%+1)-1 , Grid_col(ligne%+1)-1
  a$=Grid_ink$(colonne%,ligne%) :gosub Grid_couleur
  font_color 1,0,0,0:font_size 1,Grid_size(colonne%,ligne%)
  print_locate Grid_Line(colonne%)+2,Grid_col(ligne%)+5:print Grid_creat$(colonne%,ligne%)

  set_focus 3
return
' ==============================================================================
Grid_complement:
  if Grid_size(h%,v%)>0
      font_size 1,Grid_size(h%,v%)
  else
      font_size 1,10:Grid_size(h%,v%)=10
  end_if

  if left$(Grid_style$(h%,v%),1)="G"
      font_bold 1
  else
      font_bold_off 1
  end_if

  if mid$(Grid_style$(h%,v%),2,1)="S"
      font_underline 1
  else
      font_underline_off 1
  end_if

  if right$(Grid_style$(h%,v%),1)="I"
      font_italic 1
  else
      font_italic_off 1
  end_if
  ' on remonte les lignes si size trop grand ou soulignement, pour rester dans la cellule
  Grid_decale%=0
  if Grid_size(h%,v%)>10 then Grid_decale%=Grid_size(h%,v%)-10
  if instr(Grid_style$(h%,v%),"S")>0 then Grid_decale%=Grid_decale%+2
return
=========================================================================
Grid_chargement:
  filter 31,"Nom du fichier|*.fic"
  Grid_fichier$=file_name$(31)
  if Grid_fichier$<>"_"
      file_open_read 1,Grid_fichier$
      file_readln 1,Grid_max_colonne%
      file_readln 1,Grid_max_ligne%

      For h%=0 to Grid_max_colonne%:file_readln 1,Grid_larg(h%):next h%
      For v%=0 to Grid_max_ligne%  :file_readln 1,Grid_haut(v%):next v%
      repeat
        file_readln 1,a$
        if a$<>"couleur:"
            h%=val(left$(a$,3))
            v%=val(mid$(a$,5,3))
            a$=right$(a$,len(a$)-8):Grid_creat$(h%,v%)=a$
            file_readln 1,Grid_style$(h%,v%)
            file_readln 1,Grid_size(h%,v%)
        end_if
      until a$="couleur:"

      repeat
        file_readln 1,a$
        if a$<>"stop"
            h%=val(left$(a$,3))
            v%=val(mid$(a$,5,3))
            a$=right$(a$,len(a$)-8):if Grid_surf$(h%,v%)<>"!" then Grid_surf$(h%,v%)=left$(a$,1)
            if right$(a$,1)<>"!" then Grid_ink$(h%,v%)=right$(a$,1)
        end_if
      until a$="stop"
      file_close 1
      gosub cumul_largeur
      gosub Grid_grille
      colonne%=1:ligne%=1
  end_if
  set_focus 3
return
' ==============================================================================
Grid_initialisation:
dim  Grid_col(50)
dim  Grid_line(50)

dim  Grid_haut(35)
dim  Grid_larg(20)
dim  Grid% , Grid_creat$(20,35) ,Grid_size(20,35)
dim Grid_ink$(20,35)
dim Grid_Surf$(20,35)
dim Grid_style$(20,35)
dim rouge% , vert% , bleu% ,Grid_couleur%  , Grid_touche% ,colonne%,ligne%,x%,y% , Grid_tap%
dim kolor_rouge% , kolor_vert% , kolor_bleu%  ,dr%,ga% ,ha%,ba% ,erreur% , Grid_couleur$

label grid_r , grid_v , grid_b , grid_w , grid_n , grid_g , grid_j , grid_o
label grid_p , grid_l , grid_m

label cumul_largeur  , Grid_touche , Grid_grille , Grid_suite
label Grid_saisi  , Grid_kolon , Grid_front , Grid_complement
label Grid_modif_lignage , cumul_hauteur , Grild_size_font , Grid_gras , Grid_souligne , Grid_italic
label Grid_chargement  ,  Grid_couleur

' on_error_goto teste

dim a% ,h%,v%,a$ , Grid_carre$ , Grid_decale% , Grid_direction$ , Grid_fichier$

' LES OBJETS
picture      1 :top 1,0:width 1,950:height 1,800:font_name 1,"Bitstream Ver Sans Mono":font_size 1,10
              2d_target_is 1:2d_pen_color 214,211,247 :font_bold 1
              print_target_is 1 : on_click 1,Grid_touche
edit        3 :height 3,25:show 3:top 3,10 :left 3,90:width 3,1:height 3,1
              on_key_up 3,Grid_saisi

open_dialog 31
' ------------------------------------------------------------------------------

' ==============================================================================
' initialisation de départ lorsque rien n'est encore défini
Grid_larg(1)=20  : Grid_col(1)=20
for a%=2 to 20:Grid_larg(a%)=70:next a%
for a%=1 to 30:Grid_haut(a%)=25:next a%:gosub cumul_largeur

rem " les lettres du haut"
for a%=1 to 20
  Grid_creat$(a%,0)=chr$(a%+64)
  Grid%=(Grid_line(a%)-Grid_line(a%-1))/2-5
  print_locate Grid_line(a%-1)+Grid%,Grid_col(0)+Grid_col(1)-15
  print Grid_creat$(a%,0)
next a%
for v%=1 to 30 : for h%=1 to 20
  Grid_size(h%,v%)=10 : Grid_surf$(h%,v%)="w": grid_ink$(h%,v%)="n" :Grid_style$(h%,v%)="gsi"
next h%:next v%
gosub Grid_chargement
return

J'espère que vous ne serez pas décus.
Est-il possible de faire confiance à ce forum, si celui-ci transforme mes phrases ] même l'ordre des mots est modifié.


Dernière édition par cosmos70 le Lun 3 Mai 2010 - 9:01, édité 2 fois
Revenir en haut Aller en bas
Invité
Invité




Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptyDim 2 Mai 2010 - 19:45

Apparemment l'envoi est meilleurs que l'aperçu, j'espère qu'il n'y aura pas de problèmes, il m'est difficile de tout corriger.

A la réouverture, tout était encore transformé.
Une fois enregistré, l'affichage est redevenu correct!!!
Quant est-il pour vous?

J'ai lancé mon anti-virus, des fois que...
Revenir en haut Aller en bas
Invité
Invité




Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptyLun 3 Mai 2010 - 1:51

J'ai apporté une modification du 1er programme. J'ai supprimé l'affichage des lettres sur la bordure du haut, qui me posait problème. De toute façon ce n'est pas un tableur.

Je reprendrais le 2ème (programme allégé) à un autre moment
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptyLun 3 Mai 2010 - 8:18

C'est peut-être pas encore un tableur, mais çà lui ressemble.
Beau travail, le code est petit par rapport à la tache qu'il fait.

Ce qui m'intéresse c'est que ce code fait ce que je voulais (pour le mien) de manière différente, mais je peut y puisser des idées.

Bravo,

A+

PS: pour enregistrer un message dans le forum, hier (le 2/05/2010), j'ai eu comme toi plein de soucis....
Revenir en haut Aller en bas
Invité
Invité




Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptyLun 3 Mai 2010 - 8:58

Je te remercie. Le but n'est pas de faire un tableur, même si je n'ai pas exel,Panoramique a des commandes pour ce tableur.

Le but était pour moi de pouvoir à des emplacements donnés, de pouvoir afficher des nombres de couleurs différents selon leur importance, et un memo ne me convenait pas.

De plus il y a quelque mois, j'ai publié un programme que tu bien voulu tester"boite de dialog fourre tout", et j'aime pas la représentation, et j'ai pensé que ce type de programme remplacera à merveille cette boite pour faire des saisies de textes multiples.

A ce faire, je vais quant même rajouter la possibilité de bloquer des cellules pour protéger les données, et pouvoir mettre les dimensions du picture pour afficher des minis boites.

Il y a une chose à laquelle je n'ai pas penser, c'est de mettre ce programme dans une autre forme. Je ne sais pas encore si je dois le faire ou non.
@+
j'ai rajouté des lignes vides entre les 2 programmes, il n'était pas évidant de voir la séparation
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptyLun 3 Mai 2010 - 11:54

Ce qui m'intéresse avec ce programme, c'est que l'on peut positionner les textes et choisir la couleur du fond et du texte, la police et la taille. Pour mon utilité, il faut que je m'arrange de rendre les cellules invisibles et le tour est joué.
Il faut que je regarde comment tu as sauvegardés tout les paramètres de chaques cellules.

A+
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptyMar 4 Mai 2010 - 11:48

Je viens de tester ton code
et ouahou cheers cheers cheers

c'est chouette,excel n'a qu'à bien se tenir
Revenir en haut Aller en bas
Invité
Invité




Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptyMer 5 Mai 2010 - 1:27

Je viens de revoir mon programme de fond en comble, j'ai rajouté des outils, et amélioré certaines choses.
Comme il y a des différences, je préfère laisser l'autre et le reporter ici.
un présentation de départ:
Ne vous fiez pas au apparence, c'est dans une salle d'attente me m'est venu l'idée de cette feuille. (Je n'y connais rien au chevaux.

Editeur avec cellules Feuille1d
ce qui donne une fois fini:
Editeur avec cellules Feuille2

Code:



' EDITEUR remplissage cellules colorées mode préparation, version V.02
error_french
width 0,1000:height 0,900 :color 0,223,193,0:left 0,10:top 0,10

dim Grid_max_colonne% : Grid_max_colonne%=20
dim Grid_max_ligne%  : Grid_max_ligne%  =37
dim a% ,h%,v%,a$ , b$

label Grid_initialisation
gosub Grid_initialisation

END:' **

' ==============================================================================
Grid_gras:
  if checked(65)=0
    if instr(Grid_style$(colonne%,ligne%),"B")=0
        if left$(Grid_style$(colonne%,ligne%),1)="g"
          a$=right$( Grid_style$(colonne%,ligne%),1):if instr("BD",a$)=0 then a$=""
          Grid_style$(colonne%,ligne%)="G"+mid$(Grid_style$(colonne%,ligne%),2,2)+a$
          font_bold 1 :font_bold 27
        else
          Grid_style$(colonne%,ligne%)="g"+mid$(Grid_style$(colonne%,ligne%),2,2)+a$
          font_bold_off 1 :font_bold_off 27
        end_if
        gosub Grid_grille
    end_if
    set_focus 3
  else
    if passage%=0
        show 40:show 67
        caption 42,"Modifier sur la LIGNE ou la COLONNE":objet%=27
        caption 43,"LIGNE":caption 44,"COLONNE":show 66:show 67:caption 67,"NORMAL"
        inactive 0
    else
        passage%=0
        if choix%<3
          b$=caption$(67)
          if b$="NORMAL"
              b$="g"
          else
              b$="G"
          end_if
          if choix%=1 :' mode ligne
              for h%=1 to Grid_max_colonne%
                a$=right$( Grid_style$(h%,ligne%),1):if instr("BD",a$)=0 then a$=""
                if instr(Grid_style$(h%,ligne%),"B")=0 then Grid_style$(h%,ligne%)=b$+mid$(Grid_style$(h%,ligne%),2,2)+a$
              next h%
          else        :' mode colonne
              for v%=1 to Grid_max_ligne%
                a$=right$( Grid_style$(colonne%,v%),1):if instr("BD",a$)=0 then a$=""
                if instr(Grid_style$(colonne%,v%),"B")=0 then Grid_style$(colonne%,v%)=b$+mid$(Grid_style$(colonne%,v%),2,2)+a$
              next v%
          end_if
        end_if
        to_foreground 0
        set_focus 3 : gosub Grid_grille
    end_if
  end_if

return
' ==============================================================================
Grid_annule:
    choix%=3:hide 40:active 0:passage%=1 :hide 66:hide 67
    select objet%
      case 26:goto Grild_size_font
      case 27:goto Grid_gras
      case 28:goto Grid_souligne
      case 29:goto Grid_italic
      case 7 :goto Grid_kolon
      case 8 :goto Grid_front
  end_select
return
' ==============================================================================
Grid_souligne:

  if checked(65)=0
    if instr(Grid_style$(colonne%,ligne%),"B")=0
        if mid$(Grid_style$(colonne%,ligne%),2,1)="s"
          a$=right$( Grid_style$(colonne%,ligne%),1):if instr("BD",a$)=0 then a$=""
          Grid_style$(colonne%,ligne%)=left$(Grid_style$(colonne%,ligne%),1)+"S"+mid$(Grid_style$(colonne%,ligne%),3,1)+a$
          font_underline 1 :font_underline 28
        else
          Grid_style$(colonne%,ligne%)=left$(Grid_style$(colonne%,ligne%),1)+"s"+mid$(Grid_style$(colonne%,ligne%),3,1)+a$
          font_underline_off 1  : font_underline_off 28
        end_if
        gosub Grid_grille
    end_if
    set_focus 3
  else
  ' groupe pour souligner ou non ligne ou colonne
    if passage%=0
        show 40:show 67
        caption 42,"Modifier sur la LIGNE ou la COLONNE":objet%=28
        caption 43,"LIGNE":caption 44,"COLONNE":show 66:show 67:caption 67,"NORMAL"
        inactive 0
    else
        passage%=0
        if choix%<3
          b$=caption$(67)
          if b$="NORMAL"
              b$="s"
          else
              b$="S"
          end_if
          if choix%=1 :' mode ligne
              for h%=1 to Grid_max_colonne%
                a$=right$( Grid_style$(h%,ligne%),1):if instr("BD",a$)=0 then a$=""
                if instr(Grid_style$(h%,ligne%),"B")=0 then Grid_style$(h%,ligne%)=left$(Grid_style$(h%,ligne%),1)+b$+mid$(Grid_style$(h%,ligne%),3,1)+a$
              next h%
          else        :' mode colonne
              for v%=1 to Grid_max_ligne%
                a$=right$( Grid_style$(colonne%,v%),1):if instr("BD",a$)=0 then a$=""
                if instr(Grid_style$(colonne%,v%),"B")=0 then Grid_style$(colonne%,v%)=left$(Grid_style$(colonne%,v%),1)+b$+mid$(Grid_style$(colonne%,v%),3,1)+a$
              next v%
          end_if
        end_if
        to_foreground 0
        set_focus 3 : gosub Grid_grille
    end_if
  end_if

return
' ==============================================================================
Grid_italic:
  if checked(65)=0
    if instr(Grid_style$(colonne%,ligne%),"B")=0
        if mid$(Grid_style$(colonne%,ligne%),3,1)="i"
          a$=right$( Grid_style$(colonne%,ligne%),1):if instr("BD",a$)=0 then a$=""
          Grid_style$(colonne%,ligne%)=left$(Grid_style$(colonne%,ligne%),2)+"I"+a$
          font_italic 1 : font_italic 29
        else
          Grid_style$(colonne%,ligne%)=left$(Grid_style$(colonne%,ligne%),2)+"i"+a$
          font_italic_off 1 : font_italic_off 29
        end_if
        gosub Grid_grille
    end_if
    set_focus 3
  else
    if passage%=0
        show 40:show 67
        caption 42,"Modifier sur la LIGNE ou la COLONNE":objet%=29
        caption 43,"LIGNE":caption 44,"COLONNE":show 66:show 67:caption 67,"NORMAL"
        inactive 0
    else
        passage%=0
        if choix%<3
          b$=caption$(67)
          if b$="NORMAL"
              b$="i"
          else
              b$="I"
          end_if
          if choix%=1 :' mode ligne
              for h%=1 to Grid_max_colonne%
                a$=right$( Grid_style$(h%,ligne%),1):if instr("BD",a$)=0 then a$=""
                if instr(Grid_style$(h%,ligne%),"B")=0 then Grid_style$(h%,ligne%)=left$(Grid_style$(h%,ligne%),2)+b$+a$
              next h%
          else        :' mode colonne
              for v%=1 to Grid_max_ligne%
                a$=right$( Grid_style$(colonne%,v%),1):if instr("BD",a$)=0 then a$=""
                if instr(Grid_style$(colonne%,v%),"B")=0 then Grid_style$(colonne%,v%)=left$(Grid_style$(colonne%,v%),2)+b$+a$
              next v%
          end_if
        end_if
        to_foreground 0
        set_focus 3 : gosub Grid_grille
      end_if
  end_if

return
' ==============================================================================
Grild_size_font:
  if checked(65)=0
      if instr(Grid_style$(colonne%,ligne%),"B")=0
        Grid_size(colonne%,ligne%)=position(26):gosub Grid_grille  : set_focus 3
      end_if
  else
      if passage%=0
        show 40
        caption 42,"Modifier sur la LIGNE ou la COLONNE":objet%=26
        caption 43,"LIGNE":caption 44,"COLONNE":show 66:hide 67
        inactive 0
      else
        passage%=0
        if choix%<3
          if choix%=1 :' mode ligne
              for h%=1 to Grid_max_colonne%
                if instr(Grid_style$(h%,ligne%),"B")=0 then Grid_size(h%,ligne%)=position(26)
              next h%
          else        :' mode colonne
              for v%=1 to Grid_max_ligne%
                if instr(Grid_style$(colonne%,v%),"B")=0 then Grid_size(colonne%,v%)=position(26)
              next v%
          end_if
        end_if
        to_foreground 0
        set_focus 3 : gosub Grid_grille
      end_if
  end_if
return
' ==============================================================================
Grid_modif_lignage:
  Grid_haut(ligne%+1)=  position(24)
  Grid_larg(colonne%+1)=position(22):gosub cumul_largeur:gosub Grid_grille
return
' ==============================================================================
Grid_kolon:
  if checked(65)=0
    a$=Grid_couleur$:gosub Grid_couleur : color 7,rouge%,vert%,bleu%
    if instr(Grid_style$(colonne%,ligne%),"B")=0 then Grid_surf$(colonne%,ligne%)=Grid_couleur$:Grid_couleur_fond$=Grid_couleur$:gosub Grid_grille
  else
    if passage%=0
        show 40 :hide 67
        caption 42,"Modifier sur la LIGNE ou la COLONNE":objet%=7
        caption 43,"LIGNE":caption 44,"COLONNE":show 66
        inactive 0
      else
        passage%=0
        if choix%<3
          if choix%=1 :' mode ligne
              for h%=1 to Grid_max_colonne%
                if instr(Grid_style$(h%,ligne%),"B")=0 then Grid_surf$(h%,ligne%)=Grid_couleur_fond$
              next h%
          else        :' mode colonne
              for v%=1 to Grid_max_ligne%
                if instr(Grid_style$(colonne%,v%),"B")=0 then Grid_surf$(colonne%,v%)=Grid_couleur_fond$
              next v%
          end_if
        end_if
        to_foreground 0
        set_focus 3 : gosub Grid_grille
      end_if
  end_if
return
' ==============================================================================
Grid_front:
  if checked(65)=0
    Grid_ink$(colonne%,ligne%)=Grid_couleur$:Grid_couleur_encre$=Grid_couleur$
    if instr(Grid_style$(colonne%,ligne%),"B")=0
        a$=Grid_couleur$:gosub Grid_couleur:color 8,rouge%,vert%,bleu%
        gosub Grid_grille
    end_if
  else
    if passage%=0
        show 40:hide 67
        caption 42,"Modifier sur la LIGNE ou la COLONNE":objet%=8
        caption 43,"LIGNE":caption 44,"COLONNE"
        inactive 0
      else
        passage%=0
        if choix%<3
          if choix%=1 :' mode ligne
              for h%=1 to Grid_max_colonne%
                if instr(Grid_style$(h%,ligne%),"B")=0 then Grid_ink$(h%,ligne%)=Grid_couleur_encre$
              next h%
          else        :' mode colonne
              for v%=1 to Grid_max_ligne%
                if instr(Grid_style$(colonne%,v%),"B")=0 then Grid_ink$(colonne%,v%)=Grid_couleur_encre$
              next v%
          end_if
        end_if
        to_foreground 0
        set_focus 3 : gosub Grid_grille
      end_if
  end_if
return
' ==============================================================================
Grid_choix_couleur:
  for a%=10 to 20
      if clicked(a%)=1 then exit_for
  next a%
  Grid_couleur$=mid$(Grid_carre$,a%-9,1)
  if a%>20
      for a%=50 to 60
        if clicked(a%)=1 then exit_for
      next a%
      Grid_couleur$=mid$(Grid_carrf$,a%-49,1)
  end_if
return
' ==============================================================================
Grid_saisi:
  Grid_tap%= key_up_code
  if instr(Grid_style$(colonne%,ligne%),"B")=0 :' bloque, on saute la cellule

  if instr( Grid_direction$ , chr$(Grid_tap%))>0
      Grid_creat$(colonne%,ligne%)=text$(3)
      2d_pen_width 1 :2d_pen_color 214,211,247
      a$=grid_surf$(colonne%,ligne%):gosub Grid_couleur:2d_fill_color rouge%,vert%,bleu%
      2d_rectangle Grid_Line(colonne%) , Grid_col(ligne%), Grid_Line(colonne%+1)+1 , Grid_col(ligne%+1)+1
      a$=Grid_ink$(colonne%,ligne%) :gosub Grid_couleur
      font_color 1,rouge%,vert%,bleu%
      h%=colonne%:v%=ligne%:gosub Grid_complement
      print_locate Grid_Line(colonne%)+2,Grid_col(ligne%)+5:print Grid_creat$(colonne%,ligne%)

      if Grid_tap% =13  or key_up_code=40
        if instr(Grid_style$(colonne%,ligne%+1),"B")=0
            ligne%=ligne%+1 :if ligne%>Grid_max_ligne% then ligne%=Grid_max_ligne%
            goto Grid_suite
        else
            goto Grid_suite1
        end_if
      end_if

      if Grid_tap%=38  and ligne%>1
        if instr(Grid_style$(colonne%,ligne%-1),"B")=0
            ligne%=ligne%-1
            goto Grid_suite
        else
            goto Grid_suite1
        end_if
      end_if

      if Grid_tap%=37 and colonne%>1
        if instr(Grid_style$(colonne%-1,ligne%),"B")=0
            colonne%=colonne%-1
            goto Grid_suite
        else
            goto Grid_suite1
        end_if
      end_if

      if Grid_tap%=39
        if instr(Grid_style$(colonne%+1,ligne%),"B")=0
            colonne%=colonne%+1:if colonne%>Grid_max_colonne% then colonne%=Grid_max_colonne%
            goto Grid_suite
        else
            goto Grid_suite1
        end_if
      end_if
  end_if
  end_if
  if instr(Grid_style$(colonne%,ligne%),"B")=1 then text 3,Grid_creat$(colonne%,ligne%)
return
' ==============================================================================
cumul_largeur:
  2d_clear
  2d_pen_color 195,203,203:2d_pen_width 15:2d_fill_color 255,255,255:2d_rectangle 1,1,width(1),height(1)
  if Grid_grille%=1
    2d_pen_color 214,211,247
  else
    2d_pen_color 255,255,255
  end_if
  2d_pen_width 1
  for a%=1 to 20:Grid_line(a%)=Grid_line(a%-1)+Grid_larg(a%):next a%
  for a%=2 to 37:Grid_col(a%)=Grid_col(a%-1)+Grid_haut(a%):next a%
  if Grid_grille%=1
    for a%=1 to 20
        if a%=Grid_max_colonne%+1
          2d_line Grid_line(a%),5,Grid_line(a%),height(1)-10
          2d_pen_color 255,0,0
          2d_line Grid_line(a%),5,Grid_line(a%),Grid_col(Grid_max_ligne%+1)
        else
          2d_pen_color 214,211,247
          2d_line Grid_line(a%),5,Grid_line(a%),height(1)-10
        end_if
    next a%
      2d_pen_color 214,211,247:2d_pen_width 1
    for a%=1 to 35:2d_line 1,Grid_col(a%),width(1),Grid_col(a%):next a%
  end_if

cumul_hauteur:




return
' ==============================================================================
Grid_grille:
  2d_pen_color 195,203,203:2d_pen_width 10:2d_fill_color 255,255,255
  2d_pen_color 214,211,247:2d_pen_width 1
  for h%=20 to 1 step -1
  for v%=35 to 1 step -1
      if Grid_creat$(h%,v%)<>""
        Grid%=(Grid_line(h%)-Grid_line(h%-1))+2
        a$=grid_surf$(h%,v%):gosub Grid_couleur:2d_fill_color rouge%,vert%,bleu%
        2d_rectangle Grid_Line(h%) , Grid_col(v%), Grid_Line(h%+1)+1 , Grid_col(v%+1)+1
        a$=Grid_ink$(h%,v%) :gosub Grid_couleur
        font_color 1,rouge%,vert%,bleu%
        gosub Grid_complement
        print_locate Grid_Line(h%)+2,Grid_col(v%)+5-Grid_decale%:print Grid_creat$(h%,v%)
      else
        if Grid_surf$(h%,v%)="" then grid_surf$(h%,v%)="w"
        if Grid_ink$( h%,v%)="" then grid_ink$(h%,v%) ="n"
        if grid_surf$(h%,v%)<>"w"
            Grid%=(Grid_line(h%)-Grid_line(h%-1))+2
            a$=grid_surf$(h%,v%):gosub Grid_couleur:2d_fill_color rouge%,vert%,bleu%
            2d_rectangle Grid_Line(h%) , Grid_col(v%), Grid_Line(h%+1)+1 , Grid_col(v%+1)+1
        end_if
      end_if
  next v%
  next h%
  if Grid_grille%=1
    for a%=1 to 35
      if a%=Grid_max_ligne%+1
          2d_pen_color 255,0,0
      else
          2d_pen_color 214,211,247
      end_if
      2d_line 5,Grid_col(a%),Grid_line(Grid_max_colonne%+1),Grid_col(a%)
    next a%
  end_if
  set_focus 3
return
' ==============================================================================
grid_couleur:
  Grid_couleur%=asc(upper$(a$))
  SELECT Grid_couleur%
      case  0              :'            rien
      CASE 82:GOSUB Grid_r  :' rouge
      CASE 86:GOSUB Grid_v  :' vert
      CASE 66:Gosub Grid_b  :' bleu
      CASE 87:GOSUB Grid_W  :' blanc soit WHITE
      CASE 78:GOSUB Grid_N  :' noir
      CASE 71:GOSUB Grid_g  :' gris
      CASE 74:GOSUB Grid_j  :' jaune
      CASE 79:GOSUB Grid_O  :' orange
      CASE 80:GOSUB Grid_P  :' rose soit PINK
      CASE 77:GOSUB Grid_M  :' marron
      CASE 76:GOSUB Grid_L  :' violet soit LILAS
      CASE 65:GOSUB Grid_a  :' A jaune clair
      CASE 67:Gosub Grid_c  :' jaune clair+
      CASE 68:GOSUB Grid_d  :'  ++
      CASE 69:GOSUB Grid_e  :'
      CASE 70:GOSUB Grid_f  :'
      CASE 72:GOSUB Grid_h  :'
      CASE 75:GOSUB Grid_k  :'
      CASE 81:GOSUB Grid_q  :'
      CASE 83:GOSUB Grid_s  :'
      CASE 84:GOSUB Grid_t  :'
      CASE 85:GOSUB Grid_u  :'
  END_SELECT
return
' ==============================================================================
rem "couleur suplémentaire"
grid_a:
' jaune clair
  rouge%=255:vert%=255:bleu%=215
return
'
grid_c:
' jaune clair +
  rouge%=255:vert%=255:bleu%=195
return
'
grid_d:
' jaune clair ++
  rouge%=255:vert%=255:bleu%=175
return
' ----
grid_e:
' gris clair
  rouge%=233:vert%=233:bleu%=233
return
' ----
grid_f:
' gris clair ++
  rouge%=222:vert%=222:bleu%=222
return
' ----- -------------------------
grid_h:
' vert clair
  rouge%=216:vert%=255:bleu%=216
return
' ----
grid_k:
' vert clair +
  rouge%=193:vert%=255:bleu%=193
return
' -----
grid_Q:
' vert clair ++
  rouge%=170:vert%=255:bleu%=170
return
' -----
grid_s:
' bleu clair
  rouge%=238:vert%=238:bleu%=255
return
' -----
grid_t:
' bleu clair +
  rouge%=211:vert%=211:bleu%=255
return
' -----
grid_u:
' bleu clair ++
  rouge%=185:vert%=185:bleu%=255
return
' ==============================================================================
grid_r:
  rouge%=255:vert%=0:bleu%=0
return
' ==============================================================================
grid_v:
  rouge%=0:vert%=255:bleu%=0
return
' ==============================================================================
grid_b:
  rouge%=0:vert%=0:bleu%=255
return
' ==============================================================================
grid_w:
  rouge%=255:vert%=255:bleu%=255
return
' ==============================================================================
grid_n:
  rouge%=0:vert%=0:bleu%=0
return
' ==============================================================================
grid_g:
  rouge%=210:vert%=210:bleu%=210
return
' ==============================================================================

grid_j:
  rouge%=255:vert%=255:bleu%=0
return
' ==============================================================================
grid_o:
  rouge%=255:vert%=180:bleu%=0
return
' ==============================================================================
grid_p:
  rouge%=255:vert%=210:bleu%=255
return
' ==============================================================================
grid_l:
  rouge%=255:vert%=100:bleu%=255
return
' ==============================================================================
grid_m:
  rouge%=190:vert%=110:bleu%=0
return
' ==============================================================================
Grid_touche:
  ' on remet les styles avant de changer de cellule
  2d_pen_width 1 :2d_pen_color 214,211,247
  a$=grid_surf$(colonne%,ligne%):gosub Grid_couleur:2d_fill_color rouge%,vert%,bleu%
  2d_rectangle Grid_Line(colonne%) , Grid_col(ligne%), Grid_Line(colonne%+1)+1 , Grid_col(ligne%+1)+1
  a$=Grid_ink$(colonne%,ligne%) :gosub Grid_couleur
  font_color 1,rouge%,vert%,bleu%
  h%=colonne%:v%=ligne%:gosub Grid_complement
  print_locate Grid_Line(colonne%)+2,Grid_col(ligne%)+5:print Grid_creat$(colonne%,ligne%)
  ' maintenant on repère la cellule du clic
  x%=mouse_x_left_down(1)
  y%=mouse_y_left_down(1)
 
  for h%=0 to 20
      if Grid_line(h%)< x% then colonne%=h%:' if colonne%=0 then colonne%=1
  next h%

  for v%=0 to 37
      if Grid_col(v%)< y% then ligne%=v%:' if ligne%=0 then ligne%=1
  next v%

  if colonne%>Grid_max_colonne% or ligne%>Grid_max_ligne%
      a%=message_confirmation_yes_no(str$(v%)+" , "+str$(h%)+": les limites sont dépassées, acceptez-vous"+chr$(13)+"la position actuelle du pointeur?")
      if a%=2
        if colonne%>Grid_max_colonne% then colonne%=Grid_max_colonne%
        if ligne%>Grid_max_ligne% then ligne%=Grid_max_ligne%
      end_if
  end_if

Grid_suite:
  caption 4,"position:"+str$(colonne%)+" , "+str$(ligne%)
  text 3,Grid_creat$(colonne%,ligne%)
  2d_fill_color 232,242,255
Grid_suite1:
  a$=grid_surf$(colonne%,ligne%):gosub Grid_couleur:color 7,rouge%,vert%,bleu%
  2d_pen_width 3:2d_pen_color 0,0,0:' rouge%,vert%,bleu%
  2d_rectangle Grid_Line(colonne%)+4 , Grid_col(ligne%)+3, Grid_Line(colonne%+1)-1 , Grid_col(ligne%+1)-1
  a$=Grid_ink$(colonne%,ligne%) :gosub Grid_couleur:color 8,rouge%,vert%,bleu%
  font_color 1,0,0,0
  if Grid_size(colonne%,ligne%)>0
      font_size 1,Grid_size(colonne%,ligne%)
  else
      font_size 1,10:Grid_size(colonne%,ligne%)=10
  end_if
  print_locate Grid_Line(colonne%)+2,Grid_col(ligne%)+5:print Grid_creat$(colonne%,ligne%)
  position 22,Grid_larg(colonne%+1)
  position 24,Grid_haut(ligne%+1)
  position 26,Grid_size(colonne%,ligne%)
  if left$(Grid_style$(colonne%,ligne%),1)="G"
    font_bold 27
  else
      font_bold_off 27
  end_if

  if mid$(Grid_style$(colonne%,ligne%),2,1)="S"
      font_underline 28
  else
      font_underline_off 28
  end_if
  if mid$(Grid_style$(colonne%,ligne%),3,1)="I"
      font_italic 29
  else
      font_italic_off 29
  end_if

  set_focus 3
return
' ==============================================================================
Grid_complement:
  if Grid_size(h%,v%)>0
      font_size 1,Grid_size(h%,v%)
  else
      font_size 1,10:Grid_size(h%,v%)=10
  end_if

  if left$(Grid_style$(h%,v%),1)="G"
      font_bold 1
  else
      font_bold_off 1
  end_if

  if mid$(Grid_style$(h%,v%),2,1)="S"
      font_underline 1
  else
      font_underline_off 1
  end_if

  if mid$(Grid_style$(h%,v%),3,1)="I"
      font_italic 1
  else
      font_italic_off 1
  end_if
  ' on remonte les lignes si size trop grand ou soulignement, pour rester dans la cellule
  Grid_decale%=0
  if Grid_size(h%,v%)>12 then Grid_decale%=Grid_size(h%,v%)-12
  if instr(Grid_style$(h%,v%),"S")>0 then Grid_decale%=Grid_decale%+2
return

' ==============================================================================
                rem "  TESTE avec des cellules prédéfinies "
' ==============================================================================
Grid_teste:

rem "mettre les largeurs de cellule
data 5,50,70,70,50,80,70,70,70,70
for a%=1 to 20:        Grid_larg(a%)=70:next a%
for a%=1 to 10:read v%:Grid_larg(a%)=v%:next a%

for a%=2 to 30:Grid_haut(a%)=25:next a%

Grid_col(1) =10  :' hauteur colonne 1
Grid_haut(1)=10

rem "mettre les hauteurs de cellule"
for a%=2 to 30:Grid_haut(a%)=25:next a%
gosub cumul_largeur


Grid_creat$(2,3)="case:2,3":Grid_surf$(2,3)="J":Grid_ink$(2,3)="B"
Grid_creat$(5,8)="case:5,8":Grid_surf$(5,8)="N":Grid_ink$(5,8)="R"

colonne%=1:ligne%=1
Grid_creat$(colonne%,ligne%)="rouge":grid_surf$(colonne%,ligne%)="r":grid_ink$(colonne%,ligne%)="w"
ligne%=2
Grid_creat$(colonne%,ligne%)="vert":grid_surf$(colonne%,ligne%)="v":grid_ink$(colonne%,ligne%)="o"
ligne%=3
Grid_creat$(colonne%,ligne%)="bleu":grid_surf$(colonne%,ligne%)="b":grid_ink$(colonne%,ligne%)="r"
ligne%=4
Grid_creat$(colonne%,ligne%)="noir":grid_surf$(colonne%,ligne%)="n":grid_ink$(colonne%,ligne%)="w"
ligne%=5
Grid_creat$(colonne%,ligne%)="gris":grid_surf$(colonne%,ligne%)="g":grid_ink$(colonne%,ligne%)="r"
ligne%=6
Grid_creat$(colonne%,ligne%)="jaune":grid_surf$(colonne%,ligne%)="j":grid_ink$(colonne%,ligne%)="n"
ligne%=7
Grid_creat$(colonne%,ligne%)="orange":grid_surf$(colonne%,ligne%)="o":grid_ink$(colonne%,ligne%)="n"
ligne%=8
Grid_creat$(colonne%,ligne%)="rose":grid_surf$(colonne%,ligne%)="p":grid_ink$(colonne%,ligne%)="b"
ligne%=9
Grid_creat$(colonne%,ligne%)="marron":grid_surf$(colonne%,ligne%)="m":grid_ink$(colonne%,ligne%)="v"
ligne%=10
Grid_creat$(colonne%,ligne%)="violet":grid_surf$(colonne%,ligne%)="l":grid_ink$(colonne%,ligne%)="n"
return

' ==============================================================================
Grid_enregistre:
  filter 30,"Nom du fichier|*.fic"
  Grid_fichier$=file_name$(30)
  if Grid_fichier$<>"_"
      if right$(upper$(Grid_fichier$),4)<>".FIC" then Grid_fichier$=Grid_fichier$+".fic"
      file_open_write 1,Grid_fichier$
     
      file_writeln 1,Grid_titre$
      file_writeln 1,left(0)
      file_writeln 1,top(0)
     
     

      file_writeln 1,Grid_max_colonne%
      File_writeln 1,Grid_max_ligne%

      For h%=0 to Grid_max_colonne%+1:file_writeln 1,Grid_larg(h%):next h%
      For v%=0 to Grid_max_ligne% +1 :file_writeln 1,Grid_haut(v%):next v%

      For h%=1 to Grid_max_colonne%
      For v%=1 to Grid_max_ligne%
        if Grid_creat$(h%,v%)<>""
            a$=right$("000"+str$(h%),3)+":"+right$("000"+str$(v%),3)+"|"+Grid_creat$(h%,v%)
            file_writeln 1,a$
            file_writeln 1,Grid_style$(h%,v%)
            file_writeln 1,Grid_size(h%,v%)
        end_if
      next v%
      next h%
      ' ------------------------------------------------------------------------
      file_writeln 1,"couleur:"
      For h%=1 to Grid_max_colonne%
      For v%=1 to Grid_max_ligne%
        if  Grid_surf$(h%,v%)<>"" or Grid_ink$(h%,v%)<>""
            if upper$(Grid_surf$(h%,v%))<>"W" or upper$(Grid_ink$(h%,v%))<>"N"
              a$=right$("000"+str$(h%),3)+":"+right$("000"+str$(v%),3)+"|"+Grid_surf$(h%,v%)+"!"+Grid_ink$(h%,v%)
              file_writeln 1,a$
            end_if
        end_if
      next v%
      next h%
      ' ------------------------------------------------------------------------
      file_writeln 1,"BOUTON"
     
      if checked(47)=1 or instr(Grid_mettre_bouton$,"1")>0
        file_writeln 1,"bouton1"
        a$=right$("0000"+str$(left(Grid_bouton1%)),4)+":"+right$("0000"+str$(top(Grid_bouton1%) ),4)+"|"+Grid_caption$(1)
        file_writeln 1,a$
      end_if
      if checked(48)=1 or instr(Grid_mettre_bouton$,"2")>0
        file_writeln 1,"bouton2"
        a$=right$("0000"+str$(left(Grid_bouton2%)),4)+":"+right$("0000"+str$(top(Grid_bouton2%) ),4)+"|"+Grid_caption$(2)
        file_writeln 1,a$
      end_if
      if checked(49)=1 or instr(Grid_mettre_bouton$,"3")>0
        file_writeln 1,"bouton3"
        a$=right$("0000"+str$(left(Grid_bouton3%)),4)+":"+right$("0000"+str$(top(Grid_bouton3%) ),4)+"|"+Grid_caption$(3)
        file_writeln 1,a$
      end_if
      ' ------------------------------------------------------------------------
      file_writeln 1,"stop"
       
      file_close 1
  end_if
  set_focus 3
return
' ==============================================================================
Grid_chargement:
  filter 31,"Nom du fichier|*.fic"
  Grid_fichier$=file_name$(31)
  if Grid_fichier$<>"_"
      file_open_read 1,Grid_fichier$
     
      file_readln 1,Grid_titre$:caption 0,Grid_titre$:text 64,Grid_titre$
      file_readln 1,a%:left 0,a%
      file_readln 1,a%:top 0,a%
     
      file_readln 1,Grid_max_colonne%
      file_readln 1,Grid_max_ligne%
     


      For h%=0 to Grid_max_colonne%+1:file_readln 1,Grid_larg(h%):next h%
      For v%=0 to Grid_max_ligne% +1 :file_readln 1,Grid_haut(v%):next v%
      repeat
        file_readln 1,a$
        if a$<>"couleur:"
            h%=val(left$(a$,3))
            v%=val(mid$(a$,5,3))
            a$=right$(a$,len(a$)-8):Grid_creat$(h%,v%)=a$
            file_readln 1,Grid_style$(h%,v%)
            file_readln 1,Grid_size(h%,v%)
        end_if
      until a$="couleur:"
      ' ------------------------------------------------------------------------
      repeat
        file_readln 1,a$
        if a$<>"BOUTON"
            h%=val(left$(a$,3))
            v%=val(mid$(a$,5,3))
            a$=right$(a$,len(a$)-8):if Grid_surf$(h%,v%)<>"!" then Grid_surf$(h%,v%)=left$(a$,1)
            if right$(a$,1)<>"!" then Grid_ink$(h%,v%)=right$(a$,1)
        end_if
      until a$="BOUTON"
      if instr(Grid_mettre_bouton$,"1")>0 then delete Grid_bouton1%
      if instr(Grid_mettre_bouton$,"2")>0 then delete Grid_bouton2%
      if instr(Grid_mettre_bouton$,"3")>0 then delete Grid_bouton3%
      Grid_mettre_bouton$=""
      file_readln 1, a$ :' normalement bouton1 ou stop
      if a$<>"stop"
        repeat
          if a$="bouton1"
              file_readln 1,a$
              button Grid_bouton1%:left Grid_bouton1%,val(left$(a$,4))
              a%=val(mid$(a$,6,4)):top Grid_bouton1%,a%:width Grid_bouton1%,50
              a%=instr(a$,"|"):caption Grid_bouton1%, right$(a$,len(a$)-a%):hide 47
              Grid_mettre_bouton$=Grid_mettre_bouton$+"1":Grid_caption$(1)=caption$(Grid_bouton1%)
              file_readln 1,a$
          end_if

          if a$="bouton2"
              file_readln 1,a$
              button Grid_bouton2%:left Grid_bouton2%,val(left$(a$,4))
              a%=val(mid$(a$,6,4)):top Grid_bouton2%,a%:width Grid_bouton2%,50
              a%=instr(a$,"|"):caption Grid_bouton2%, right$(a$,len(a$)-a%):hide 48
              Grid_mettre_bouton$=Grid_mettre_bouton$+"2":Grid_caption$(2)=caption$(Grid_bouton2%)
              file_readln 1,a$
          end_if

          if a$="bouton3"
              file_readln 1,a$
              button Grid_bouton3%:left Grid_bouton3%,val(left$(a$,4))
              a%=val(mid$(a$,6,4)):top Grid_bouton3%,a%:width Grid_bouton3%,50
              a%=instr(a$,"|"):caption Grid_bouton3%, right$(a$,len(a$)-a%):hide 49
              Grid_mettre_bouton$=Grid_mettre_bouton$+"3":Grid_caption$(3)=caption$(Grid_bouton3%)
              file_readln 1,a$
          end_if
        until a$="stop"
      end_if
     
      file_close 1
      gosub cumul_largeur
      gosub Grid_grille
      colonne%=1:ligne%=1
  end_if
  set_focus 3
return
' ==============================================================================
Grid_limite:
  a%=message_confirmation_yes_no("est_vous certain de limiter les cellules"+chr$(13)+"à: "+str$(colonne%)+" colonnes, et à "+str$(ligne%))
  if a%=1
      Grid_max_colonne%=colonne%:Grid_max_ligne%=ligne%:gosub cumul_largeur:gosub Grid_grille
      height 1,Grid_col(Grid_max_ligne%+1)+10
      width  1,Grid_line(Grid_max_colonne%+1)+10
      2d_pen_color 195,203,203:2d_pen_width 15:2d_fill_color 255,255,255:2d_rectangle 1,1,width(1),height(1)
      gosub Grid_grille
  else
      height 1,height(0)-10
      width 1,width(0)-10
      Grid_max_colonne%=20
      Grid_max_ligne%=35
      gosub cumul_largeur
      gosub Grid_grille
  end_if
return
' ==============================================================================
Grid_bloc_colonnes:
  hide 67:caption 43,"BLOC":caption 44,"Débloc"
  caption 42,"on bloc ou on débloc"
  objet%=36
  to_foreground 0
  if passage%=0
    show 40:passage%=0:inactive 0
  else
    passage%=0
    if choix%=1
      for v%=1 to Grid_max_ligne%
          Grid_style$(colonne%,v%)=left$(Grid_style$(colonne%,v%),3)+"B"
      next v%
    else
      for v%=1 to Grid_max_ligne%
          Grid_style$(colonne%,v%)=left$(Grid_style$(colonne%,v%),3)+"D"
      next v%
    end_if
  end_if
return
' ==============================================================================
Grid_bloc_lignes:
  hide 67
  caption 42,"on bloc ou on débloc"
  caption 43,"BLOC":caption 44,"Débloc"
  objet%=35
  to_foreground 0
  if passage%=0
    show 40:passage%=0:inactive 0
  else
    passage%=0
    if choix%=1
      for h%=1 to Grid_max_colonne%
          Grid_style$(h%,ligne%)=left$(Grid_style$(h%,ligne%),3)+"B"
      next h%
    else
      for h%=1 to Grid_max_ligne%
          Grid_style$(h%,ligne%)=left$(Grid_style$(h%,ligne%),3)+"D"
      next h%
    end_if
  end_if
return
' ==============================================================================
Grid_bloc_cellule:
  hide 67
  caption 42,"on bloc ou on débloc"
  caption 43,"BLOC":caption 44,"Débloc"
  objet%=37
  to_foreground 0
  if passage%=0
    show 40:passage%=0:inactive 0
  else
    passage%=0
    if choix%=1
      Grid_style$(colonne%,ligne%)=left$(Grid_style$(colonne%,ligne%),3)+"B"
    else
      Grid_style$(colonne%,ligne%)=left$(Grid_style$(colonne%,ligne%),3)+"D"
    end_if
  end_if
return
' ==============================================================================
Grid_color_picture:
  a%=message_warning_yes_no("etes-vous sûr de recouvrir tout l'écran")
  if a%=1
      for h%=1 to Grid_max_colonne%
      for v%=1 to Grid_max_ligne%
        Grid_surf$(h%,v%)=Grid_couleur$
      next v%
      next h%
      2d_clear
      gosub Grid_grille
      2d_pen_color 195,203,203:2d_pen_width 15:2d_fill_color 255,255,255:2d_rectangle 1,1,width(1),height(1)
  end_if
  return
' ==============================================================================
Grid_oui:

  choix%=1:hide 40:active 0:passage%=1 :hide 66
  select objet%
    case 35:goto Grid_bloc_lignes
    case 36:goto Grid_bloc_colonnes
    case 37:goto Grid_bloc_cellule
    case 27:goto Grid_gras
    case 28:goto Grid_souligne
    case 29:goto Grid_italic
    case 26:goto Grild_size_font
    case 7 :goto Grid_kolon
    case 8 :goto Grid_front
  end_select
return
' ==============================================================================
Grid_non:
  choix%=2:hide 40:active 0:passage%=1 :hide 66
  select objet%
    case 35:goto Grid_bloc_lignes
    case 36:goto Grid_bloc_colonnes
    case 37:goto Grid_bloc_cellule
    case 27:goto Grid_gras
    case 28:goto Grid_souligne
    case 29:goto Grid_italic
    case 26:goto Grild_size_font
    case 7 :goto Grid_kolon
    case 8 :goto Grid_front
  end_select
return
' ==============================================================================
Grid_affiche_grille:
    if checked(38)=1
      Grid_grille%=1
    else
      Grid_grille%=0
    end_if
    gosub cumul_largeur
    gosub Grid_grille
return
' ==============================================================================
Grid_bouton1:
  if  clicked(47)=1
  if checked(47)=1
      a%=message_confirmation_yes_no("Souhaitez-vous installer un bouton"+chr$(13)+"à l'emplacement colonne: "+str$(colonne%)+" ligne: "+str$(ligne%))
      if a%= 1
        a$=message_input$("accepter le bouton ou quittez!","tapez le titre du bouton","OK")
        height 1,Grid_col(ligne%+1)-10:Grid_caption$(1)=a$
        inactive 47
        button grid_bouton1%:left grid_bouton1%,Grid_line(colonne%):top grid_bouton1%,Grid_col(ligne%)+65:caption grid_bouton1%,a$
        Grid_mettre_bouton$=Grid_mettre_bouton$+"1"
      else
        mark_off 47
      end_if
  end_if
  end_if
return
' ==============================================================================
Grid_bouton2:
  if checked(48)=1
      a%=message_confirmation_yes_no("Souhaitez-vous installer un bouton"+chr$(13)+"à l'emplacement colonne: "+str$(colonne%)+" ligne: "+str$(ligne%))
      if a%= 1
        a$=message_input$("accepter le bouton ou quittez!","tapez le titre du bouton","annulé")
        height 1,Grid_col(ligne%+1)-10:Grid_caption$(2)=a$
        inactive 48
        button grid_bouton2%:left grid_bouton2%,Grid_line(colonne%):top grid_bouton2%,Grid_col(ligne%)+65:caption grid_bouton2%,a$
        Grid_mettre_bouton$=Grid_mettre_bouton$+"2"
      else
        mark_off 48
      end_if
  end_if
return
' ==============================================================================
Grid_bouton3:
  if checked(49)=1
      a%=message_confirmation_yes_no("Souhaitez-vous installer un bouton"+chr$(13)+"à l'emplacement colonne: "+str$(colonne%)+" ligne: "+str$(ligne%))
      if a%= 1
        a$=message_input$("accepter le bouton ou quittez!","tapez le titre du bouton","OK")
        color 1,255,255,255
        height 1,Grid_col(ligne%+1)-10:Grid_caption$(3)=a$
        inactive 49
        button grid_bouton3%:left grid_bouton3%,Grid_line(colonne%):top grid_bouton3%,Grid_col(ligne%)+65:caption grid_bouton3%,a$
        Grid_mettre_bouton$=Grid_mettre_bouton$+"3"
      else
        mark_off 49
      end_if
  end_if
return
' ==============================================================================
Grid_titre:
  Grid_titre$=text$(64)
  caption 0,Grid_titre$
return
' ==============================================================================
Grid_form_alpha:
  if objet%=27
      if caption$(67)="NORMAL"
        caption 67,"GRAS"
      else
        caption 67,"NORMAL"
      end_if
  end_if
  if objet%=28
      if caption$(67)="NORMAL"
        caption 67,"SOULIGNÉ"
      else
        caption 67,"NORMAL"
      end_if
  end_if
  if objet%=29
      if caption$(67)="NORMAL"
        caption 67,"ITALIQUE"
      else
        caption 67,"NORMAL"
      end_if
  end_if
return
' ==============================================================================
Grid_efface:
  text 3,""
  Grid_creat$(colonne%,ligne%)="":set_focus 3
return
' ==============================================================================
Grid_memoire:
  text 69,text$(3):set_focus 3
return
' ==============================================================================
Grid_coller:
  text 3,text$(69):set_focus 3
return

' ==============================================================================
Grid_initialisation:

dim grid_bouton1% , grid_bouton2% ,grid_bouton3% :' réservé pour placer 3 boutons dans la feuille, on les définit maintenant
    grid_bouton1%=61 :grid_bouton2%=62 : grid_bouton3%= 63
dim  Grid_col(50)
dim  Grid_line(50)

dim  Grid_haut(40)
dim  Grid_larg(20)
dim  Grid% , Grid_creat$(20,40) ,Grid_size(20,40)
dim Grid_ink$(20,40)
dim Grid_Surf$(20,40)
dim Grid_style$(20,40)
dim rouge% , vert% , bleu% ,Grid_couleur%  , Grid_touche% ,colonne%,ligne%,x%,y% , Grid_tap%
dim kolor_rouge% , kolor_vert% , kolor_bleu%  ,dr%,ga% ,ha%,ba% ,erreur% , Grid_couleur$
dim Grid_carre$ , Grid_decale% , Grid_direction$ , Grid_fichier$
dim Grid_carrf$
dim choix% ,passage% , objet% , Grid_grille% ,Grid_mettre_bouton$
dim grid_caption$(3) ,Grid_titre$ ,Grid_couleur_fond$ , Grid_couleur_encre$

label grid_r , grid_v , grid_b , grid_w , grid_n , grid_g , grid_j , grid_o
label grid_p , grid_l , grid_m

label cumul_largeur  ,  Grid_couleur , Grid_touche , Grid_teste , Grid_grille , Grid_suite
label Grid_saisi , Grid_choix_couleur , Grid_kolon , Grid_front , Grid_complement
label Grid_modif_lignage , cumul_hauteur , Grild_size_font , Grid_gras , Grid_souligne , Grid_italic
label Grid_enregistre , Grid_chargement , Grid_limite , Grid_bloc_lignes , Grid_bloc_colonnes , Grid_bloc_cellule

label Grid_oui,Grid_non , Grid_affiche_grille , Grid_a , Grid_c ,Grid_d , Grid_e , Grid_F , Grid_H
label Grid_K , Grid_Q , Grid_S, Grid_T , Grid_u  , Grid_color_picture , Grid_bouton1 , Grid_bouton2 ,Grid_bouton3
label Grid_titre , Grid_suite1 , Grid_annule , Grid_form_alpha , Grid_efface , Grid_memoire
label Grid_coller

' pour edit, éviter l'affichage sur l'écran pendant la saisie (pertubation affichage)
for a%=37 to 40
  Grid_direction$=Grid_direction$+chr$(a%)
next a%
Grid_direction$=Grid_direction$+chr$(13)

' LES OBJETS
picture      1 :top 1,60:left 1,6:width 1,width(0)-20:height 1,790:font_name 1,"Bitstream Ver Sans Mono":font_size 1,10
              2d_target_is 1:2d_pen_color 214,211,247 :font_bold 1
              print_target_is 1 : on_click 1,Grid_touche
alpha        2 :top 2,10:left 2,30:caption 2,"texte cellule :"
edit        3 :hide 3:height 3,25:show 3:top 3,10 :left 3,90:width 3,200:font_size 3,12:font_bold 3
                color 3,213,196,197:on_key_up 3,Grid_saisi:hint 3,"saisie du texte"
alpha        4 :top 4,25:left 4,10:caption 4,"position:"+str$(colonne%)+" , "+str$(ligne%)
' ------------------------------------------------------------------------------
picture      9 :top 9,2:left 9,298:width 9,189:height 9,38:color 9,0,0,0
' les carrés de couleur
Grid_carre$="RVBWNGJOPML":' pour remplir les carrés en couleur, selon celles programmés
for a%=10 to 20
  picture a%:top a%,5:left a%,300+(a%-10)*17:width a%,15:height a%,15
  a$= mid$(Grid_carre$,a%-9,1) : gosub Grid_couleur
  color a%,rouge%,vert%,bleu%  : on_click a%,Grid_choix_couleur
next a%
Grid_carrf$="ACDEFHKQSTU"
for a%=50 to 60
  picture a%:top a%,22:left a%,300+(a%-50)*17:width a%,15:height a%,15
  a$= mid$(Grid_carrf$,a%-49,1) :gosub Grid_couleur
  color a%,rouge%,vert%,bleu%  :on_click a%,Grid_choix_couleur
next a%
' ------------------------------------------------------------------------------
alpha        5 :top 5,45:left 5,305:caption 5,"cellule :"
alpha        6 :top 6,45:left 6,410:caption 6,"libellé"
picture    45 :top 45,42:left 45,338:width 45,30:height 45,16:color 45,0,0,0
picture    46 :top 46,42:left 46,443:width 46,30:height 46,16:color 46,0,0,0
picture      7 :top 7,44:left 7,340:width 7,26:height 7,12 :on_click 7,Grid_kolon:hint 7,"couleur de la cellule"
picture      8 :top 8,44:left 8,445:width 8,26:height 8,12 :on_click 8,Grid_front:hint 8,"couleur de l'encre"
alpha      21 :top 21,0:left 21 ,490:caption 21,"largeur"
spin        22 :top 22,15:left 22,490:width 22,50 :on_click 22,Grid_modif_lignage:hint 22,"largeur de la colonne"
alpha      23 :top 23,0:left 23 ,550:caption 23,"hauteur"
spin        24 :top 24,15:left 24,550:width 24,50 :on_click 24,Grid_modif_lignage:hint 24,"hauteur de la ligne"
alpha      25 :top 25,0:left 25,610 :caption 25,"size fonte"
spin        26 :top 26,15:left 26,610:width 26,50 :on_click 26,Grild_size_font:hint 26,"hauteur de la fonte"
alpha      27 :top 27,1:left 27,670:font_name 27,"Arial":font_size 27,14:caption 27,"G":width 27,18
alpha      28 :top 28,1:left 28,690:font_name 28,"Arial":font_size 28,14:caption 28,"S":width 28,18
alpha      29 :top 29,1:left 29,710:font_name 29,"Arial":font_size 29,14:caption 29,"I":width 29,18
edit        64 :top 64,39:left 64,490:height 64,20:width 64,150:color 64,255,224,135:on_click 64,Grid_titre:hint 64,"titre de la fenêtre"

check      65 :top 65,40:left 65,668:height 65,20:width 65,50:caption 65,"groupe":hint 65,"si cliqué, modifie les attributs d'une ligne"+chr$(13)+"ou d'une colonne (couleur-gras...)"

save_dialog 30
open_dialog 31
button      32 :top 32,5 :left 32,730:width 32,50 :caption 32,"enregistre"  :height 32,20
button      33 :top 33,36:left 33,730:width 33,50 :caption 33,"charger"      :height 33,20
button      34 :top 34,5 :left 34,790:width 34,50 :caption 34,"limite"      :height 34,20:hint 34,"limite la fenêtre ou non"

button      35 :top 35,0 :left 35,850:width 35,75 :caption 35,"bloc lignes"  :height 35,20:hint 35,"bloque ou débloque l'ensemble d'une ligne"
button      36 :top 36,20:left 36,850:width 36,75 :caption 36,"bloc colonnes":height 36,20:hint 36,"Bloque ou débloque l'ensemble d'une colonne"
button      37 :top 37,40:left 37,850:width 37,75 :caption 37,"bloc cellules":height 37,20:hint 37,"bloque ou débloque une cellule"

check      38 :top 38,30:left 38,795:width 38,50 :caption 38,"grille":hint 38,"affiche ou limite la grille"
button      39 :top 39,25:left 39,670:width 39,50 :caption 39,"color"
                height 39,20:hint 39,"impose la couleur choisie sur 'cellule'"+chr$(13)+"à toute la feuille"
               
check      47 :top 47,0 :left 47,928:width 47,62 :caption 47,"bouton 1":hint 47,"ajoute un bouton près de la cellule cliquée"
check      48 :top 48,20:left 48,928:width 48,62 :caption 48,"bouton 2":hint 48,"ajoute un 2ème bouton"
check      49 :top 49,40:left 49,928:width 49,62 :caption 49,"bouton 3":hint 49,"ajoute un 3ème bouton"
button      68 :top 68,40:left 68,90 :width 68,50 :caption 68,"efface"  :hint 68,"efface la cellule"
                height 68,18
edit        69 :top 69,40:left 69,145:width 69,100:height 69,18:on_click 69,Grid_memoire:hint 69,"met en mémoire le texte de la zone de saisie":color 69,220,220,220
button      70 :top 70,40:left 70,250:width 70,40 :height 70,18:on_click 70,Grid_coller:caption 70,"colle":hint 70,"récupère le texte en mémoire"
' -------------------------

' list 50:color 50,220,220,0 :left 50,800:top 50,80:height 50,500
' création de la boite d'attente

form    40 :hide 40:top 40,200:left 40,(screen_x -400)/2:width 40,370:height 40,180:caption 40,"choisissez votre demande"
            border_small 40:command_target_is 40
picture 41 :top 41,10:left 41,10:width 41,345:height 41,110:color 41,237,232,124
alpha  42 :top 42,30:left 42,20:font_size 42,12:font_bold 42:caption 42,"on bloc ou on débloc"
button  43 :top 43,90:left 43,70 :caption 43,"bloc": on_click 43,Grid_oui
button  44 :top 44,90:left 44,170:caption 44,"debloc": on_click 44,Grid_non
' supplément
button  66 :top 66,90:left 66,270:caption 66,"annulé": on_click 66,Grid_annule:hide 66
alpha  67 :top 67,60:left 67,140:font_size 67,14:font_bold 67:caption 67,"NORMAL":font_color 67,255,0,0
            hide 67:hint 67,"cliqué sur le texte pour faire un autre choix"
' ==============================================================================
' initialisation de départ lorsque rien n'est encore défini
command_target_is 0

Grid_larg(1)=5  : Grid_col(0)=5 :Grid_line(0)=5
for a%=2 to Grid_max_colonne%:Grid_larg(a%)=70:next a%
for a%=1 to Grid_max_ligne%:Grid_haut(a%)=25:next a%
Grid_grille%=1
gosub cumul_largeur


for v%=0 to 38 : for h%=0 to 20
  Grid_size(h%,v%)=10 : Grid_surf$(h%,v%)="w": grid_ink$(h%,v%)="n" :Grid_style$(h%,v%)="gsiD"
next h%:next v%
    '  list 100:left 100,700:height 100,300:top 100,80:width 100,200

gosub Grid_grille :' mise à jour de départ
on_click 27,Grid_gras
on_click 28,Grid_souligne
on_click 29,Grid_italic
on_click 32,Grid_enregistre
on_click 33,Grid_chargement
on_click 34,Grid_limite

on_click 35,Grid_bloc_lignes
on_click 36,Grid_bloc_colonnes
on_click 37,Grid_bloc_cellule
on_click 38,Grid_affiche_grille
on_click 39,Grid_color_picture
on_click 47,Grid_bouton1
on_click 48,Grid_bouton2
on_click 49,Grid_bouton3
on_click 67,Grid_form_alpha
on_click 68,Grid_efface

mark_on  38
return






le fichier pdf pour montrer la méthode:

Voir le Fichier : aide_envoi1.7z

Impossible de tout mettre dans le même poste, le forum le refuse.


Dernière édition par cosmos70 le Mer 5 Mai 2010 - 1:31, édité 1 fois
Revenir en haut Aller en bas
Invité
Invité




Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptyMer 5 Mai 2010 - 1:28

suite avec le 2ème programme:

le programme simplifié qui ne fait que récupérer la feuille faite avec l'autre programme:



Code:



' Fenêtre remplissage cellules colorées mode simplifié, version V.02
error_french

width 0,1000:height 0,900:border_small 0 :width 0,1:height 0,1:color 0,240,240,240

dim Grid_max_colonne% : Grid_max_colonne%=20
dim Grid_max_ligne%  : Grid_max_ligne%  =40
dim a% ,h%,v%,a$

label Grid_initialisation
gosub Grid_initialisation


' =========================================================
rem "quelques cellules pour montrer les possibilitées"  :' |
' gosub Grid_teste                                      :' |
' gosub Grid_grille                                      :' |
' =========================================================

END:' **

' ==============================================================================
Grid_gras:
  if instr(Grid_style$(colonne%,ligne%),"B")=0
  if left$(Grid_style$(colonne%,ligne%),1)="g"
      a$=right$( Grid_style$(colonne%,ligne%),1):if instr("BD",a$)=0 then a$=""
      Grid_style$(colonne%,ligne%)="G"+mid$(Grid_style$(colonne%,ligne%),2,2)+a$
      font_bold 1
  else
      Grid_style$(colonne%,ligne%)="g"+mid$(Grid_style$(colonne%,ligne%),2,2)+a$
      font_bold_off 1
  end_if
  gosub Grid_grille
  end_if
  set_focus 3
return
' ==============================================================================
Grid_souligne:
  if instr(Grid_style$(colonne%,ligne%),"B")=0
  if mid$(Grid_style$(colonne%,ligne%),2,1)="s"
      a$=right$( Grid_style$(colonne%,ligne%),1):if instr("BD",a$)=0 then a$=""
      Grid_style$(colonne%,ligne%)=left$(Grid_style$(colonne%,ligne%),1)+"S"+mid$(Grid_style$(colonne%,ligne%),3,1)+a$
      font_underline 1
  else
      Grid_style$(colonne%,ligne%)=left$(Grid_style$(colonne%,ligne%),1)+"s"+mid$(Grid_style$(colonne%,ligne%),3,1)+a$
      font_underline_off 1
  end_if
  gosub Grid_grille
  end_if
  set_focus 3
return
' ==============================================================================
Grid_italic:
  if instr(Grid_style$(colonne%,ligne%),"B")=0
  if mid$(Grid_style$(colonne%,ligne%),3,1)="i"
      a$=right$( Grid_style$(colonne%,ligne%),1):if instr("BD",a$)=0 then a$=""
      Grid_style$(colonne%,ligne%)=left$(Grid_style$(colonne%,ligne%),2)+"I"+a$
      font_italic 1
  else
      Grid_style$(colonne%,ligne%)=left$(Grid_style$(colonne%,ligne%),2)+"i"+a$
      font_italic_off 1
  end_if
  gosub Grid_grille
  end_if
  set_focus 3
return
' ==============================================================================
Grild_size_font:
  if instr(Grid_style$(colonne%,ligne%),"B")=0
      gosub Grid_grille  : set_focus 3
  end_if
return
' ==============================================================================
Grid_saisi:
  Grid_tap%= key_up_code
  if instr(Grid_style$(colonne%,ligne%),"B")=0 :' bloque, on saute la cellule

      Grid_creat$(colonne%,ligne%)=text$(3)
      2d_pen_width 1 :2d_pen_color 214,211,247
      a$=grid_surf$(colonne%,ligne%):gosub Grid_couleur:2d_fill_color rouge%,vert%,bleu%
      2d_rectangle Grid_Line(colonne%) , Grid_col(ligne%), Grid_Line(colonne%+1)+1 , Grid_col(ligne%+1)+1
      a$=Grid_ink$(colonne%,ligne%) :gosub Grid_couleur
      font_color 1,rouge%,vert%,bleu%
      h%=colonne%:v%=ligne%:gosub Grid_complement
      print_locate Grid_Line(colonne%)+2,Grid_col(ligne%)+5:print Grid_creat$(colonne%,ligne%)

      if Grid_tap% =13  or key_up_code=40
        if instr(Grid_style$(colonne%,ligne%+1),"B")=0
            ligne%=ligne%+1 :if ligne%>38 then ligne%=38:' Grid_max_ligne% then ligne%=Grid_max_ligne%
            goto Grid_suite
        else
            goto Grid_suite1
        end_if
      end_if

      if Grid_tap%=38  and ligne%>1
        if instr(Grid_style$(colonne%,ligne%-1),"B")=0
            ligne%=ligne%-1
            goto Grid_suite
        else
            goto Grid_suite1
        end_if
      end_if

      if Grid_tap%=37 and colonne%>1
        if instr(Grid_style$(colonne%-1,ligne%),"B")=0
            colonne%=colonne%-1
            goto Grid_suite
        else
            goto Grid_suite1
        end_if
      end_if

      if Grid_tap%=39
        if instr(Grid_style$(colonne%+1,ligne%),"B")=0
            colonne%=colonne%+1:if colonne%>Grid_max_colonne% then colonne%=Grid_max_colonne%
            goto Grid_suite
        else
            goto Grid_suite1
        end_if
      end_if
  end_if
  if instr(Grid_style$(colonne%,ligne%),"B")=1 then text 3,Grid_creat$(colonne%,ligne%)
return
' ==============================================================================
cumul_largeur:
  2d_clear
  2d_pen_color 195,203,203:2d_pen_width 15:2d_fill_color 255,255,255:2d_rectangle 1,1,width(1),height(1)
  if Grid_grille%=1
    2d_pen_color 214,211,247
  else
    2d_pen_color 255,255,255
  end_if
  2d_pen_width 1
  for a%=1 to 20:Grid_line(a%)=Grid_line(a%-1)+Grid_larg(a%):next a%
  for a%=2 to 38:Grid_col(a%)=Grid_col(a%-1)+Grid_haut(a%):next a%
  if Grid_grille%=1
    for a%=1 to 20
        if a%=Grid_max_colonne%+1
          2d_line Grid_line(a%),5,Grid_line(a%),height(1)-10
          2d_pen_color 255,0,0
          2d_line Grid_line(a%),5,Grid_line(a%),Grid_col(Grid_max_ligne%+1)
        else
          2d_pen_color 214,211,247
          2d_line Grid_line(a%),5,Grid_line(a%),height(1)-10
        end_if
    next a%
      2d_pen_color 214,211,247:2d_pen_width 1
    for a%=1 to 38:2d_line 1,Grid_col(a%),width(1),Grid_col(a%):next a%
  end_if

cumul_hauteur:

return
' ==============================================================================
Grid_grille:
  2d_pen_color 195,203,203:2d_pen_width 15:2d_fill_color 255,255,255
  2d_pen_color 214,211,247:2d_pen_width 1
  for h%=20 to 1 step -1
  for v%=38 to 1 step -1
      if Grid_creat$(h%,v%)<>""
        Grid%=(Grid_line(h%)-Grid_line(h%-1))+2
        a$=grid_surf$(h%,v%):gosub Grid_couleur:2d_fill_color rouge%,vert%,bleu%
        2d_rectangle Grid_Line(h%) , Grid_col(v%), Grid_Line(h%+1)+1 , Grid_col(v%+1)+1
        a$=Grid_ink$(h%,v%) :gosub Grid_couleur
        font_color 1,rouge%,vert%,bleu%
        gosub Grid_complement
        print_locate Grid_Line(h%)+2,Grid_col(v%)+5-Grid_decale%:print Grid_creat$(h%,v%)
      else
        if Grid_surf$(h%,v%)="" then grid_surf$(h%,v%)="w"
        if Grid_ink$( h%,v%)="" then grid_ink$(h%,v%) ="n"
        if grid_surf$(h%,v%)<>"w"
            Grid%=(Grid_line(h%)-Grid_line(h%-1))+2
            a$=grid_surf$(h%,v%):gosub Grid_couleur:2d_fill_color rouge%,vert%,bleu%
            2d_rectangle Grid_Line(h%) , Grid_col(v%), Grid_Line(h%+1)+1 , Grid_col(v%+1)+1
        end_if
      end_if
  next v%
  next h%
  if Grid_grille%=1
    for a%=1 to 38
      if a%=Grid_max_ligne%+1
          2d_pen_color 255,0,0
      else
          2d_pen_color 214,211,247
      end_if
      2d_line 5,Grid_col(a%),Grid_line(Grid_max_colonne%+1),Grid_col(a%)
    next a%
  end_if
  set_focus 3
return
' ==============================================================================
grid_couleur:
  Grid_couleur%=asc(upper$(a$))
  SELECT Grid_couleur%
      case  0              :'            rien
      CASE 82:GOSUB Grid_r  :' rouge
      CASE 86:GOSUB Grid_v  :' vert
      CASE 66:Gosub Grid_b  :' bleu
      CASE 87:GOSUB Grid_W  :' blanc soit WHITE
      CASE 78:GOSUB Grid_N  :' noir
      CASE 71:GOSUB Grid_g  :' gris
      CASE 74:GOSUB Grid_j  :' jaune
      CASE 79:GOSUB Grid_O  :' orange
      CASE 80:GOSUB Grid_P  :' rose soit PINK
      CASE 77:GOSUB Grid_M  :' marron
      CASE 76:GOSUB Grid_L  :' violet soit LILAS
      CASE 65:GOSUB Grid_a  :' A jaune clair
      CASE 67:Gosub Grid_c  :' jaune clair+
      CASE 68:GOSUB Grid_d  :'  ++
      CASE 69:GOSUB Grid_e  :'
      CASE 70:GOSUB Grid_f  :'
      CASE 72:GOSUB Grid_h  :'
      CASE 75:GOSUB Grid_k  :'
      CASE 81:GOSUB Grid_q  :'
      CASE 83:GOSUB Grid_s  :'
      CASE 84:GOSUB Grid_t  :'
      CASE 85:GOSUB Grid_u  :'
  END_SELECT
return
' ==============================================================================
rem "couleur suplémentaire"
grid_a:
' jaune clair
  rouge%=255:vert%=255:bleu%=215
return
'
grid_c:
' jaune clair +
  rouge%=255:vert%=255:bleu%=195
return
'
grid_d:
' jaune clair ++
  rouge%=255:vert%=255:bleu%=175
return
' ----
grid_e:
' gris clair
  rouge%=233:vert%=233:bleu%=233
return
' ----
grid_f:
' gris clair ++
  rouge%=222:vert%=222:bleu%=222
return
' ----- -------------------------
grid_h:
' vert clair
  rouge%=216:vert%=255:bleu%=216
return
' ----
grid_k:
' vert clair +
  rouge%=193:vert%=255:bleu%=193
return
' -----
grid_Q:
' vert clair ++
  rouge%=170:vert%=255:bleu%=170
return
' -----
grid_s:
' bleu clair
  rouge%=238:vert%=238:bleu%=255
return
' -----
grid_t:
' bleu clair +
  rouge%=211:vert%=211:bleu%=255
return
' -----
grid_u:
' bleu clair ++
  rouge%=185:vert%=185:bleu%=255
return
' ==============================================================================
grid_r:
  rouge%=255:vert%=0:bleu%=0
return
' ==============================================================================
grid_v:
  rouge%=0:vert%=255:bleu%=0
return
' ==============================================================================
grid_b:
  rouge%=0:vert%=0:bleu%=255
return
' ==============================================================================
grid_w:
  rouge%=255:vert%=255:bleu%=255
return
' ==============================================================================
grid_n:
  rouge%=0:vert%=0:bleu%=0
return
' ==============================================================================
grid_g:
  rouge%=210:vert%=210:bleu%=210
return
' ==============================================================================

grid_j:
  rouge%=255:vert%=255:bleu%=0
return
' ==============================================================================
grid_o:
  rouge%=255:vert%=180:bleu%=0
return
' ==============================================================================
grid_p:
  rouge%=255:vert%=210:bleu%=255
return
' ==============================================================================
grid_l:
  rouge%=255:vert%=100:bleu%=255
return
' ==============================================================================
grid_m:
  rouge%=190:vert%=110:bleu%=0
return
' ==============================================================================
Grid_touche:
  2d_pen_width 1 :2d_pen_color 214,211,247
  a$=grid_surf$(colonne%,ligne%):gosub Grid_couleur:2d_fill_color rouge%,vert%,bleu%
  2d_rectangle Grid_Line(colonne%) , Grid_col(ligne%), Grid_Line(colonne%+1)+1 , Grid_col(ligne%+1)+1
  a$=Grid_ink$(colonne%,ligne%) :gosub Grid_couleur
  font_color 1,rouge%,vert%,bleu%
  h%=colonne%:v%=ligne%:gosub Grid_complement
  print_locate Grid_Line(colonne%)+2,Grid_col(ligne%)+5:print Grid_creat$(colonne%,ligne%)

  x%=mouse_x_left_down(1)
  y%=mouse_y_left_down(1)

  for h%=0 to 20
      if Grid_line(h%)< x% then colonne%=h%:if colonne%=0 then colonne%=1
  next h%

  for v%=0 to 38
      if Grid_col(v%)< y% then ligne%=v%:if ligne%=0 then ligne%=1
  next v%
        if colonne%>Grid_max_colonne% then colonne%=Grid_max_colonne%
        ' if ligne%>Grid_max_ligne% then ligne%=Grid_max_ligne%
Grid_suite:
  a$=grid_surf$(colonne%,ligne%)
  if Grid_creat$(colonne%,ligne%)<>""
      gosub Grid_couleur:2d_fill_color 255-rouge%,255-vert%,255-bleu%
      2d_pen_width 3:2d_pen_color 0,0,0
      2d_rectangle Grid_Line(colonne%)+4 , Grid_col(ligne%)+3, Grid_Line(colonne%+1)-1 , Grid_col(ligne%+1)-1
      a$=Grid_ink$(colonne%,ligne%) :gosub Grid_couleur
      font_color 1,255-rouge%,255-vert%,255-bleu% :font_size 1,Grid_size(colonne%,ligne%)
      print_locate Grid_Line(colonne%)+2,Grid_col(ligne%)+5:print Grid_creat$(colonne%,ligne%)
      text 3,Grid_creat$(colonne%,ligne%)
      display
      wait 500
  end_if
  text 3,Grid_creat$(colonne%,ligne%)
  2d_fill_color 232,242,255
Grid_suite1:
  a$=grid_surf$(colonne%,ligne%):gosub Grid_couleur
  2d_pen_width 3:2d_pen_color 0,0,0:' rouge%,vert%,bleu%
  2d_rectangle Grid_Line(colonne%)+4 , Grid_col(ligne%)+3, Grid_Line(colonne%+1)-1 , Grid_col(ligne%+1)-1
  a$=Grid_ink$(colonne%,ligne%) :gosub Grid_couleur
  font_color 1,0,0,0
  if Grid_size(colonne%,ligne%)>0
      font_size 1,Grid_size(colonne%,ligne%)
  else
      font_size 1,10:Grid_size(colonne%,ligne%)=10
  end_if
  print_locate Grid_Line(colonne%)+2,Grid_col(ligne%)+5:print Grid_creat$(colonne%,ligne%)

  set_focus 3
return
' ==============================================================================
Grid_complement:
  if Grid_size(h%,v%)>0
      font_size 1,Grid_size(h%,v%)
  else
      font_size 1,10:Grid_size(h%,v%)=10
  end_if

  if left$(Grid_style$(h%,v%),1)="G"
      font_bold 1
  else
      font_bold_off 1
  end_if

  if mid$(Grid_style$(h%,v%),2,1)="S"
      font_underline 1
  else
      font_underline_off 1
  end_if

  if mid$(Grid_style$(h%,v%),3,1)="I"
      font_italic 1
  else
      font_italic_off 1
  end_if
  ' on remonte les lignes si size trop grand ou soulignement, pour rester dans la cellule
  Grid_decale%=0
  if Grid_size(h%,v%)>12 then Grid_decale%=Grid_size(h%,v%)-12
  if instr(Grid_style$(h%,v%),"S")>0 then Grid_decale%=Grid_decale%+2
return

' ==============================================================================
Grid_chargement:
  filter 31,"Nom du fichier|*.fic"
  Grid_fichier$=file_name$(31)
  if Grid_fichier$<>"_"
      file_open_read 1,Grid_fichier$
     
      file_readln 1,Grid_titre$:caption 0,Grid_titre$
      file_readln 1,a%:if a%=0 then a%=1
      left 0,a%
      file_readln 1,a%:if a%=0 then a%=1
      top 0,a%
      file_readln 1,Grid_max_colonne%
      file_readln 1,Grid_max_ligne%

      For h%=0 to Grid_max_colonne%+1:file_readln 1,Grid_larg(h%):next h%
      For v%=0 to Grid_max_ligne% +1 :file_readln 1,Grid_haut(v%):next v%
      repeat
        file_readln 1,a$
        if a$<>"couleur:"
            h%=val(left$(a$,3))
            v%=val(mid$(a$,5,3))
            a$=right$(a$,len(a$)-8):Grid_creat$(h%,v%)=a$
            file_readln 1,Grid_style$(h%,v%)
            file_readln 1,Grid_size(h%,v%)
        end_if
      until a$="couleur:"
      ' ------------------------------------------------------------------------
      repeat
        file_readln 1,a$
        if a$<>"BOUTON"
            h%=val(left$(a$,3))
            v%=val(mid$(a$,5,3))
            a$=right$(a$,len(a$)-8):if Grid_surf$(h%,v%)<>"!" then Grid_surf$(h%,v%)=left$(a$,1)
            if right$(a$,1)<>"!" then Grid_ink$(h%,v%)=right$(a$,1)
        end_if
      until a$="BOUTON"
      if instr(Grid_mettre_bouton$,"1")>0 then delete Grid_bouton1%
      if instr(Grid_mettre_bouton$,"2")>0 then delete Grid_bouton2%
      if instr(Grid_mettre_bouton$,"3")>0 then delete Grid_bouton3%
      Grid_mettre_bouton$=""
      file_readln 1, a$ :' normalement bouton1 ou stop
      if a$<>"stop"
        repeat
          if a$="bouton1"
              file_readln 1,a$
              button Grid_bouton1%:left Grid_bouton1%,val(left$(a$,4))
              a%=val(mid$(a$,6,4)):top Grid_bouton1%,a%-60:width Grid_bouton1%,50
              a%=instr(a$,"|"):caption Grid_bouton1%, right$(a$,len(a$)-a%)
              Grid_mettre_bouton$=Grid_mettre_bouton$+"1"
              file_readln 1,a$
          end_if

          if a$="bouton2"
              file_readln 1,a$
              button Grid_bouton2%:left Grid_bouton2%,val(left$(a$,4))
              a%=val(mid$(a$,6,4)):top Grid_bouton2%,a%-60:width Grid_bouton2%,50
              a%=instr(a$,"|"):caption Grid_bouton2%, right$(a$,len(a$)-a%)
              Grid_mettre_bouton$=Grid_mettre_bouton$+"2"
              file_readln 1,a$
          end_if

          if a$="bouton3"
              file_readln 1,a$
              button Grid_bouton3%:left Grid_bouton3%,val(left$(a$,4))
              a%=val(mid$(a$,6,4)):top Grid_bouton3%,a%-60:width Grid_bouton3%,50
              a%=instr(a$,"|"):caption Grid_bouton3%, right$(a$,len(a$)-a%)
              Grid_mettre_bouton$=Grid_mettre_bouton$+"3"
              file_readln 1,a$
          end_if
        until a$="stop"
      end_if

      file_close 1
      gosub cumul_largeur
      gosub Grid_grille
      colonne%=1:ligne%=1
  end_if
  set_focus 3
return
' ==============================================================================
Grid_initialisation:

dim grid_bouton1% , grid_bouton2% ,grid_bouton3% :' réservé pour placer 3 boutons dans la feuille, on les définit maintenant
    grid_bouton1%=4 :grid_bouton2%=5 : grid_bouton3%= 6

dim  Grid_col(50)
dim  Grid_line(50)

dim  Grid_haut(40)
dim  Grid_larg(20)
dim  Grid% , Grid_creat$(20,40) ,Grid_size(20,40)
dim Grid_ink$(20,40)
dim Grid_Surf$(20,40)
dim Grid_style$(20,40)
dim rouge% , vert% , bleu% ,Grid_couleur%  , Grid_touche% ,colonne%,ligne%,x%,y% , Grid_tap%
dim kolor_rouge% , kolor_vert% , kolor_bleu%  ,dr%,ga% ,ha%,ba% ,erreur% , Grid_couleur$
dim Grid_carre$ , Grid_decale% , Grid_direction$ , Grid_fichier$
dim Grid_carrf$
dim choix% ,passage% , objet% , Grid_grille% , Grid_mettre_bouton$ , Grid_titre$

label grid_r , grid_v , grid_b , grid_w , grid_n , grid_g , grid_j , grid_o
label grid_p , grid_l , grid_m

label cumul_largeur  ,  Grid_couleur , Grid_touche , Grid_grille , Grid_suite
label Grid_saisi
label Grid_complement
label cumul_hauteur , Grild_size_font , Grid_gras , Grid_souligne , Grid_italic
label Grid_chargement , Grid_suite1
label Grid_a , Grid_c ,Grid_d , Grid_e , Grid_F , Grid_H
label Grid_K , Grid_Q , Grid_S, Grid_T , Grid_u

' pour edit, éviter l'affichage sur l'écran pendant la saisie (pertubation affichage)
for a%=37 to 40
  Grid_direction$=Grid_direction$+chr$(a%)
next a%
Grid_direction$=Grid_direction$+chr$(13)

' LES OBJETS
picture      1 :top 1,0:width 1,750:height 1,790:font_name 1,"Bitstream Ver Sans Mono":font_size 1,10
              2d_target_is 1:2d_pen_color 214,211,247 :font_bold 1
              print_target_is 1 : on_click 1,Grid_touche
edit        3 :height 3,1:top 3,1 :left 3,1:width 3,1:font_size 3,12:font_bold 3
              on_key_up 3,Grid_saisi
' ------------------------------------------------------------------------------
open_dialog 31
' ==============================================================================
' initialisation de départ lorsque rien n'est encore défini
Grid_larg(1)=5  : Grid_col(0)=5 :Grid_line(0)=5
for a%=2 to Grid_max_colonne%:Grid_larg(a%)=70:next a%
for a%=1 to 38:Grid_haut(a%)=25:next a%
Grid_grille%=1
gosub cumul_largeur


for v%=0 to 38 : for h%=0 to 20
  Grid_size(h%,v%)=10 : Grid_surf$(h%,v%)="w": grid_ink$(h%,v%)="n" :Grid_style$(h%,v%)="gsiD"
next h%:next v%

gosub Grid_grille :' mise à jour de départ

gosub Grid_chargement
 width 0,    Grid_line(Grid_max_colonne%+1)+7
 width 1,Grid_line(Grid_max_colonne%+1)-3
 height 1, Grid_col(Grid_max_ligne%+2)
 height 0,Grid_col(Grid_max_ligne%+2) +45
return


Je vous souhaite bonne nuit, c'est mon tour maintenant.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptyMer 5 Mai 2010 - 8:01

Impressionnant, un sacré boulot.
Revenir en haut Aller en bas
Invité
Invité




Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptyMer 5 Mai 2010 - 8:47

Merci bien.
J'ai oublié de préciser que lors de l'enregistrement, celui-ci prend compte de l'emplacement de la feuille par rapport de l'écran, pour la récupérer à ce même emplacement. Donc régler la fenêtre pour qu'elle apparaisse une fois finie, comme on veut.

A voir mes codes de trop près, j'ai manqué de recule, et je crois que le 2ème programme, qui est la récupération du premier programme, j'ai pas pensé à placer le résultat sur une autre forme. Celui-ci n'étant pour une des deux possibilitées que j'y vois, que le temps d'une saisie d'un ensemble de données.

Donc que je crois que cela s'avère nécessaire, je verrais cela ce soir.
Revenir en haut Aller en bas
659_minifly




Nombre de messages : 590
Age : 75
Localisation : Valenciennes Nord
Date d'inscription : 29/04/2010

Editeur avec cellules Empty
MessageSujet: Re : Editeur avec cellules   Editeur avec cellules EmptyJeu 6 Mai 2010 - 14:17

J'en reste bouche bée;

Superbe ton programme . J'aime beaucoup.

bien travaillé.
A+ cheers
Revenir en haut Aller en bas
Invité
Invité




Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptyVen 7 Mai 2010 - 0:01

je te remercie.
En fait je suis un peu surpris du résultat. Je m'aperçois que je peux élargir les possibilités de ce programme, et en fait résoudre un autre problème que j'avais, et je pensais faire un autre programme pour cela.

Celui-ci à la réflexion, doit pouvoir apporter les réponses à mes problèmes, et je vais donc apporter (essayer tant que c'est pas fait, c'est pas réussi) quelques correctifs et ajouts pour avoir un programme un peu plus polyvalent.

Je vais rajouter le choix de fonte différentes dans les cellules, à ceci près que je ne sauvegarderai pas le nom complet, mais une lettre pour une fonte, ce qui obligera au moins une fois de sauvegarder la liste de fonte dans un fichier, dans le cas où il y aurait des rajout, pour retrouver toujours la même fonte avec la même lettre.

Il faudrait aussi que je puisse tracer des lignes comme pour un tableau, mais là j'ai pas encore l'idée.

Hier soir j'ai vu une erreur. Le placement du texte se faisait par rapport à la ligne supérieure, vu que c'est le coin gauche qui fait référence à la position du texte. Et c'est une erreur. Si je veux augmenter l'interligne d'une ligne, le texte se colle en haut, alors qu'il devrait se coller sur la ligne du bas. C'est erreur est corrigée, et lorsque que j'aurai un peu plus avancé, je mettrais le fichier à jour.

Pour ce programme, après modification, il sera facile de faire un modèle avec les fontes, le style spécifique de chaque cas.

Si j'arrive à faire le cadre d'un tableau, il pourrait être servir de support pour une facture ou montrer une série de nombres.

La seule chose est que je ne peux passer tout mon temps sur ce programme, et c'est ça le principal problème.
Revenir en haut Aller en bas
Invité
Invité




Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptyVen 7 Mai 2010 - 0:25

petit exemple, à gauche le modèle, à droite on écris sur le modèle, et les paramètres sont automatiquement appliqués au nouveau texte.
Pour l'instant il n'y a qu'une fonte.


[b] je viens de retirer le lien, image trop large, et il manque une instruction pour faire une feuille complète/b


Dernière édition par cosmos70 le Ven 7 Mai 2010 - 9:42, édité 1 fois
Revenir en haut Aller en bas
659_minifly




Nombre de messages : 590
Age : 75
Localisation : Valenciennes Nord
Date d'inscription : 29/04/2010

Editeur avec cellules Empty
MessageSujet: Une demande personnel   Editeur avec cellules EmptyVen 7 Mai 2010 - 9:18

Dans un message tu parle de ton debugger. Qu'est-ce que c'est?
Pourrais-tu nous en parler plus.

Ton travail est superbe j'aimerai en faire autant.
A plus.
Revenir en haut Aller en bas
Invité
Invité




Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptyVen 7 Mai 2010 - 9:38

Bonjour,
Je vais retirer l'image plus haut pour deux raison: elle est trop large et gène l'affichage, et 2ème je me suis aperçu cette nuit qu'il manque une instruction capitale pour faire cela.

Un exemple de lettre signifie qu'il faut faire un scroll de l'image.Jusque là pas de problème, seulement il manque une instruction pour savoir où on se trouve dans l'écran. La position du scroll onne la connait pas, et les décalages de la feuille par rapport à l'écran, comment je fais pour la connaitre?

Quant à mon "débogeur", l'idée m'es venu en discutions avec je crois JL35, et en exposant mon idée, on soutenait que celà n'était pas faisable en Panoramique, qu'on ne comprenait pas comment cela pouvait fonctionné.

J'ai mis dans ce forum une image de ce que j'obtenais, et je crois le programme qui était la 1ère mouture de celui-ci, et depuis plus aucune nouvelle de personne. Il faut savoir que je suis brutal dans mes propos, et qu'à partir du moment où j'ai l'impression d'être un con, je fais le con, et je laisse tombé les choses avec le forum.

Pour ce qui est de celui-ci, avec l'instruction include, celui-ci est à revoir et franchement je manque énormément de temps. Il n'y a que l'hiver que je peux passer du temps sur la programmation, après c'est du coup par coup, et que généralement lorsque je commence un programme, je ne sais pas les résultats que je vais obtenir.
@+
Revenir en haut Aller en bas
659_minifly




Nombre de messages : 590
Age : 75
Localisation : Valenciennes Nord
Date d'inscription : 29/04/2010

Editeur avec cellules Empty
MessageSujet: re : debogueur   Editeur avec cellules EmptyVen 7 Mai 2010 - 12:21

Et alors ce débogueur il marche ?

Ce serait bien de pouvoir mettre dans le menu "outils" de panoramic certain
programme tel que ton débogueur ou lancer un autre programme.
il serait bon aussi de pouvoir lancer Panoramic comme ceci

run Panaromic "calcul.bas" -c

dans l'exemple ci-dessus compile le programme calcul.bas et fais en un exe,
ceci nous permetrais par exemple d'utiliser un autre editeur que Panamoric.
je ne critique pas celui présent mais d'autres existent.
Revenir en haut Aller en bas
Invité
Invité




Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptyVen 7 Mai 2010 - 13:01

Il marche mais il n'est pas parfait, il y a encore quelques erreurs, et je corrige dans le programme les erreurs éventuelles.

Maintenant ce n'est pas un éditeur. Le principe est que je mets le programme (celui à contrôler) dans un dlist. Je récupère toutes les variables déclarées provisoirement, puis je recopie chaque ligne du programme dans une liste jusqu'à ce qu'il trouve le END du programme (cette partie je ne la débogue pas).
Ensuite avant toutes les lignes suivantes, je rajoute le n° de ligne dans une variable avec un gosub trace (pour l'instant je recréé un nouveau programme) , jusqu'à la fin du programme.
Ensuite je rajoute la routine trace pour déboguer.
Au lancement de ce nouveau programme, chaque ligne est détournée (après le END) pour connaitre la ligne en cour, et la valeur de toutes variables.
Si tu veux voir de plus près, j'ai fais un fichier zip pour déboguer le jeux des petits chevaux. Tu comprendras mieux.
Vu qu'il n'est pas parfait, qu'il y a encore des erreurs, et que maintenant il y a INCLUDE, donc il faut aussi rajouter les lignes des autres programmes (ce n'est pas un gros problème ), il serait pas bien aujourd'hui que je mette sur le forum un programme qui doit être revu. Moi j'ai pas le temps maintenant (à moins qu'une âme charitable veuille le reprendre, le modifier, et le finir)
Revenir en haut Aller en bas
659_minifly




Nombre de messages : 590
Age : 75
Localisation : Valenciennes Nord
Date d'inscription : 29/04/2010

Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptyVen 7 Mai 2010 - 13:39

j'aimerai bien le voir.Pour trois raisons
1 Je suis curieux
2 Je pensais déja a un débogueur.
3 Si je serai capable de modifier le tien. Ce doit être déja un sacré programme vue déja le nombre de programme que tu nous présente et la complexité de.
Revenir en haut Aller en bas
Invité
Invité




Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptyVen 7 Mai 2010 - 15:00

Ok je vais te le mettre. Le programme n'a jamais vraiment été fini, il y a plein de fenêtre qui me servait à contrôler la conception du programme, et il faudra rentrer dans la compréhension du programme pour savoir à quoi elle servait. Ce programme est un peu loin pour me rappeler de tout.

Il y a deux programmes: la partie un, qui mets les lignes intermédiaires, et relève les variables
la partie deux qui se rajoute ensuite à la fin qui possède l'inialisation des objets de controle, et la procédure de suivi.

Bon courage:


Code:


    rem  " SI VOUS METTEZ LE CHOIX COULEUR CHAINE EN ROUGE, les remarques que "
    rem  " j ai fait seront plus repérables "
dim f$,a%,b%,c% ,z%
dim a$,b$,c$,e$ ,d$,s$,boucle%,boucle1% , copie_controle$

full_space 0
list 1 :width 1,800 :height 1,200:font_size 1,12:color 1,191,250,193:' vert
item_add 1,"REM ici:list 1 charger programme"
open_dialog 2
save_dialog 5

memo 3:top 3,210:width 3,300:height 3,200 :font_size 3,11:font_bold 3:print_target_is 3
item_add 3,"REM ici:memo 3  controle de END"
list 4:top 4,420 :height 4,screen_y -470:width 4,screen_x:color 4,250,250,200 :' jaune
    font_size 4,14:font_color 4,255,0,0
    item_add 4,"REM ici:list 4  le programme fini"

LIST 6:left 6,310:top 6,210:width 6,500 :height 6,200 :color 6,180,240,220:' bleu ciel
item_add 6,"REM ici: memo 6  les variables"
list 7:left 7,820:top 7,210:width 7,510 :height 7,200 :color 7,247,170,214:' rose
item_add 7,"REM ici:list 7"
list 8:left 8,820:width 8,500 :height 8,200:color 8,255,223,165:' orange
item_add 8,"REM ici:list 8  2ème partie fenêtre de débogage"

f$=file_name$(2)  :if f$="_" then end

rem "ICI il faudrait plutôt lire ligne par ligne et regarder si on a #INCLUDE"
rem "auquel cas, il faudrait rajouter les lignes dans le memo, puis reprendre"
rem "la suite des lignes

rem "une autre solution serait de charger dans un dlist, puis le décoder celui-ci"
rem "et mettre dans le memo


  file_load 1,f$
s$=left$(f$,len(f$)-4)+"-copie- .bas"

item_add 4,"rem  copie de travail pour tracer le programme"
item_add 4," LABEL initial_trace"
item_add 4," GOSUB initial_trace:'  inialise les données pour le contrôle"
for z%=1 to count(1)
  a$= item_read$(1,z%)
  b%=instr( upper$(a$),"DIM ")
  if b%>0
    b%=b%+4
    for c%=b% to len(a$)
        c$=mid$(a$,c%,1)
        if c$=":" then d$=trim$(d$):exit_for
        if c$<>"," or  c%=len(a$)
          d$=d$+c$
        else
          if instr(d$,"$")>0
              if instr( d$,"(" )= 0
                item_add 6,"item_add optch%+5," + chr$(34) + d$ + "=" + chr$(34) + "+" + d$
              end_if
          else
              if instr( d$,"(" ) =0
                item_add 6,"item_add optch%+5," + chr$(34) + d$ + "=" + chr$(34) + "+ str$("+d$+")"
              end_if
          end_if
          d$=""
        end_if
    next c%
    if instr(d$,"$")>0
        if instr( d$,"(" )= 0
          item_add 6,"item_add optch%+5," + chr$(34) + d$ + "=" + chr$(34) + "+" + d$
        end_if
    else
        if instr( d$,"(" ) =0
          item_add 6,"item_add optch%+5," + chr$(34) + d$ + "=" + chr$(34) + "+ str$("+d$+")"
        end_if
    end_if
    d$=""
  end_if
next z%

' _______________ recherche du dernier label ou dim, pour ne pas mettre de ligne intermédiaire
rem      SI IL Y A PAS DE "END", LE METTRE DANS UN "REM" OU APOSTROPHE.  on le met là après le "label"
rem            ou les objets. le "END" est pas nécessaire si il y a pas de clic à évennement 'on_clic ou on_change
rem      mais retenir ceci: le "end" doit être repérable par le programme
rem      ici la recherche se faire avec "END:' **
rem      si vous préférez autre chose, changez l instruction suivante END: **

for a%=count(1) to 1 step -1
  if instr(upper$(item_read$(1,a%)),"END:' **") > 0  then exit_for
  a$=item_read$(1,a%):print instr(a$,"end")
next a%
print "fin:",a%
' ==============================================================================
item_add 4,"optch%=100:rem modifier  ' optch% selon le programme ****"
item_add 4,"gosub OBJETd_INSERTION"
item_add 4,"file_load optch%+3,"+chr$(34)+f$+chr$(34)
z%=a%

  rem " ICI IMPOSE z% COMME DEPART
' z%=  :' pour le cas où!

for a%=1 to z%              :' sur la ligne suivante il serait possible d'éviter les lignes vides ?!!
  ' il faudra vérifier qu'il n'y a pas d'#include ici
  item_add 4,item_read$(1,a%)
next a%
' donc pour l'instant on a ajouté les lignes jusqu'à END:' **
' -----------------------------------------------------------

boucle%=0:boucle1%=0

REM "ICI COMMENCE L'INSERTION DES LIGNES "TRACE"
for z%=a%+1 to count(1)
  if trim$(item_read$(1,z%))<>""
    if trim$(upper$(a$))<>"TERMINATE" then a$="wyt%="+str$(z%)+" :gosub trace"            :  ' item_read$(1,z%) +chr$(34)
    rem  "  cette partie je l'avais faite pour éviter de tester les boucles "' à vous de voir
    '  if instr( upper$(item_read$(1,z%)), "REPEAT")>0 and instr( upper$(item_read$(1,z%)), "_REPEAT")=0 then boucle%=1:if instr(upper$(item_read$(1,z%)),"UNTIL")>0 then boucle%=0:' si les 2 sont sur la même ligne
    '  if instr(upper$(item_read$(1,z%)),"UNTIL")>0 then boucle%=0
    '  if instr( upper$(item_read$(1,z%)), "WHILE")>0 and instr( upper$(item_read$(1,z%)), "END_WHILE")=0 then boucle1%=1:if instr(upper$(item_read$(1,z%)),"END_WHILE")>0 then boucle1%=0
    '  if instr(upper$(item_read$(1,z%)),"END_WHILE")>0 then boucle1%=0
    '  if boucle%=0 and boucle1%=0

    rem " ICI INTERROMPU PAR LA VALEUR DE Z
    ' si il le faut, on peut mettre un teste sur z% pour arréter avant
    if a$<>"" then item_add 4,string$(80," ")+a$:' on ne perturbe pas les boucles

    item_add 4,item_read$(1,z%)
  end_if

next z%
' ici partie à rajouter '

print_target_is 7

rem  ***************************************************************************  rem
rem  ***************************************************************************  rem
rem  *  " modifiez le chemin, si celui-ci est pas absolu, il faudra copier "  *  rem
rem  *            " le fichier chaque fois qu il sera lut ailleur "            *  rem
rem  ***************************************************************************  rem
rem  ***************************************************************************  rem


' ===================================================
' &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

' il faudra modifier le chemin du fichier partie.bas

' --------------------------------------------------

file_add 8,"F:\Basic_Panoramique\partie_objet.bas" :' entre il faut les variables  dans la fonction trace
' sort 8

for a%=1 to count(8)
  a$=item_read$(8,a%)
  ' -------------
  item_add 4,a$
  if instr(a$,"**********")>0  : ' mettre les variables récupérées ici
      SORT 6
      REM "il faudrait séparer les variables par catégorie, les variable entières et les variables
      REM "flotantes, deux par lignes pour gain de place

      for b%=1 to count(6)
        item_add 4, item_read$(6,b%)
        print  item_read$(6,b%)
      next b%
  end_if
  ' -------------
  print a$
next a%
' ==========================================
rem "on sauvegarde la copie qui sera le programme à charger et à déboguer"
 file_save 4,s$
end
' ==============================================================================




la partie deux:



Code:



REM ARRET TRACE REM
 OBJETd_INSERTION:
'  à insérer dans un sous programme à appeler après les dim et label
memo optch%+1 :hide optch%+1:left optch%+1 ,300:width optch%+1 , 300:font_size optch%+1 ,12:color optch%+1,33,251,24:font_size optch%+1,14:font_bold optch%+1
open_dialog optch%+2 :  dlist optch%+3
                ' form de transfert pour voir les variable
form optch%+4 :width optch%+4 ,700 :height optch%+4 ,950:border_small optch%+4:left optch%+4,600
memo optch%+5 :parent optch%+5 , optch%+4 :top optch%+5 ,220:width optch%+5 , width( optch%+4 ):height optch%+5 ,600:on_click optch%+5 ,trace
  container_option optch%+6 :parent optch%+6 , optch%+4 :height optch%+6 ,30 :width optch%+6 ,440
option optch%+7 :parent optch%+7 , optch%+6 :top optch%+7 ,10:left optch%+7 ,10 :caption optch%+7 ,"rien"
option optch%+8 :parent optch%+8 , optch%+6 :top optch%+8 ,10:left optch%+8 ,60 :caption optch%+8 ," 50"
option optch%+9 :parent optch%+9 , optch%+6 :top optch%+9 ,10:left optch%+9 ,110:caption optch%+9 ," 300"
option optch%+10 :parent optch%+10 , optch%+6 :top optch%+10 ,10:left optch%+10 ,160:caption optch%+10 ," 600"
option optch%+11 :parent optch%+11 , optch%+6 :top optch%+11 ,10:left optch%+11 ,210:caption optch%+11 ," 1000"
option optch%+12 :parent optch%+12 , optch%+6 :top optch%+12 ,10:left optch%+12 ,260:caption optch%+12 ," 1500"
option optch%+13 :parent optch%+13 , optch%+6 :top optch%+13 ,10:left optch%+13 ,310:caption optch%+13 ," 2000"
option optch%+14 :parent optch%+14 , optch%+6 :top optch%+14 ,10:left optch%+14 ,380:caption optch%+14 ,"TRACE"
button optch%+15 :parent optch%+15 , optch%+4 :left optch%+15 ,450:caption optch%+15 ,"TRACE":top optch%+15 ,0  :height optch%+15 ,20
button optch%+16 :parent optch%+16 , optch%+4 :left optch%+16 ,450:caption optch%+16 , "FIN" :top optch%+16 ,30 :height optch%+16 ,20

button optch%+22 :parent optch%+22 , optch%+4 :left optch%+22 ,360:caption optch%+22 , "SAVE":top optch%+22 ,30 :height optch%+22 ,20:on_click optch%+22,save_trace

mark_on optch%+11
edit optch%+18 :parent optch%+18,optch%+4:top optch%+18,30:width optch%+18,50:color optch%+18,230,200,200:font_size optch%+18,10:font_bold optch%+18
edit optch%+24 :parent optch%+24,optch%+4:top optch%+24,30:left optch%+24,60:width optch%+24,70:color optch%+24,230,200,180:font_size optch%+24,10:font_bold optch%+18
                  ' ----------------------------
edit optch%+17 :parent optch%+17,optch%+4:top optch%+17,50:width optch%+17,width( optch%+4 ):height optch%+17,25
                color optch%+17,255,255,239:font_size optch%+17,12
edit optch%+19 :parent optch%+19,optch%+4:top optch%+19,75 :width optch%+19,width( optch%+4 ):height optch%+19,25
                color optch%+19,247,251,90 :font_size optch%+19,12:font_bold optch%+19
edit optch%+20 :parent optch%+20,optch%+4:top optch%+20,100 :width optch%+20,width( optch%+4 ):height optch%+20,25
                color optch%+20,255,231,173:font_size optch%+20,12
edit optch%+21 :parent optch%+21,optch%+4:top optch%+21,125 :width optch%+21,width( optch%+4 ):height optch%+21,25
                color optch%+21,255,251,222:font_size optch%+21,12
dlist optch%+23
edit optch%+25:parent optch%+25,optch%+4:top optch%+25,160:font_size optch%+25,12:width optch%+25,680
  color optch%+25,200,240,180 :height optch%+25,25
edit optch%+26:parent optch%+26,optch%+4:top optch%+26,190:height optch%+26,25:width optch%+26,680
  color optch%+26,115,247,46 :font_size optch%+26,14
' -----------------------------------------------------------------------------------
return
' ==============================================================================
' ==========================SAUVEGARDE==========================================
save_trace:
  rem "cette partie de sauvegarde a je crois un problème (elle servait dans le cas où une"
  rem "modification était faite pendant le débogage pour récupérer les modifications"

  show optch%+1
  item_add optch%+1,"avant de pouvoir nettoyer le programme"
  item_add optch%+1,"le sauvegarder pour pouvoir le relire"
  item_add optch%+1,"mettre un nom temporaire"
  message "fermez cette fenêtre après sauvegarde"

  item_add optch%+1,"maintenant il faut le relire"
  wait 2000
  save_trace$=file_name$(optch%+23)
  file_open_read 5,save_trace$
  file_read 5,k_trace$:file_read 5,k_trace$:file_read 5,k_trace$
  file_read 5,k_trace$:file_read 5,k_trace$:file_read 5,k_trace$

  while file_eof(5) <> 1
      file_read 5,k_trace$
      if instr(k_trace$,"REM ARRET TRACE REM")>0 then exit_while
      if ltrim$(k_trace$)<>"wyt%=" and instr(k_trace$,"wyt%=")>60 then item_add optch%+23,k_trace$
  end_while
  file_close 5
  file_save optch%+23,save_trace$
  clear optch%+1
  item_add optch%+1,"maintenant vous pouvez quitter"
return
' =======================FIN D'INSERTION========================================
' ==============================================================================
initial_trace:
dim wyt%,optchc$ ,copie_controle$,optch%,save_trace$,k_trace$,trace_compteur%
dim labelle$,labelle1$,labelle2$,labelle3$,labelle4$
label trace ,OBJETd_INSERTION,boucle_attente,save_trace,traite_label

return
' ==============================================================================
traite_label:
  labelle3$=labelle2$
  labelle2$=labelle1$
  labelle1$=labelle4$
  labelle4$=labelle$
return
' ==============================================================================
trace:
show optch%+4
text optch%+18 ,wyt%:trace_compteur%=trace_compteur%+1:text optch%+24 ,trace_compteur%
if checked(optch%+7 )=1  then goto boucle_attente
 clear optch%+5
if wyt%-2>0 then text optch%+17,trim$(item_read$( optch%+3 ,wyt%-1))
if wyt%-1>0 then text optch%+19,trim$(item_read$( optch%+3 ,wyt%))
if wyt%>0 then text optch%+20,trim$(item_read$( optch%+3 ,wyt%+1))
if wyt%>0 then text optch%+21,trim$(item_read$( optch%+3 ,wyt%+2))

' ici on reporte les variables ********************Il faut laisser étoiles (teste pour sauvegarde)

' ----------------------------
text optch%+25,"scancode:"+str$(scancode)+"  key_down_code:"+str$(key_down_code)+"  key_down_special:"+str$(key_down_special)+"  key_up_code:"+str$(key_up_code)+"  key_up_special:"+str$(key_up_special)+" car: "+inkey$
if labelle$<>labelle4$ then gosub traite_label
text optch%+26,labelle$+" | "+labelle1$+" | "+labelle2$+" | "+labelle3$
' ------------------------------------------------------------------------------
boucle_attente:
  if checked( optch%+14 )=0
      if checked(optch%+7 )=1  then wait 1
      if checked( optch%+8 )=1 then wait 100
      if checked( optch%+9 )=1 then wait 300
      if checked( optch%+10 )=1 then wait 600
      if checked( optch%+11 )=1 then wait 1000
      if checked( optch%+12 )=1 then wait 3500
      if checked( optch%+13 )=1 then wait 5000
      if clicked( optch%+16 )=1 then stop
  else
      repeat
      if clicked( optch%+16 )=1 then stop
      until  clicked( optch%+15 )=1:repeat: until mouse_left_up(optch%+15)=1:wait 500
  end_if
  if clicked( optch%+16 )=1 then stop
return

Revenir en haut Aller en bas
659_minifly




Nombre de messages : 590
Age : 75
Localisation : Valenciennes Nord
Date d'inscription : 29/04/2010

Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptyVen 7 Mai 2010 - 16:24

Merci je vais regarder
A+
Revenir en haut Aller en bas
Invité
Invité




Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptySam 8 Mai 2010 - 9:14

J'ai enfin pu me connecter. Hier impossible de pouvoir après midi joindre Panoramique
Si tu peux finir le travail, ce sera très bien.
Salutation
Revenir en haut Aller en bas
Invité
Invité




Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptySam 8 Mai 2010 - 10:38

Citation :
il manque une instruction pour savoir où on se trouve dans l'écran. La position du scroll onne la connait pas, et les décalages de la feuille par rapport à l'écran, comment je fais pour la connaitre?
Dès fois on a des aprioris sur certaines choses. Depuis longtemps j'écris avec une variable de décalage d'écran lorsque je sais que l'affichage d'écran se fait hors des limites de celui-ci pour escamoter une partie du haut.

Ici dans un picture si on rêgle height hors des limites de l'écran, le clic sur l'image tient compte de ce décalage, donc si je me sert de l'ascenseur pour cliquer plus bas, la position dans l'image est respectée.

Dommage que personne ne me reprend lorsque je commets une erreur.

Il devient possible de faire des modèles A4 de lettre et donc d'augmenter les performances de mon logiciel.

Seul ombre, je vais regarder en plus l'intérieur de mon code, car contrairement à ce qui était dit (je vais pas perdre de temps à retrouver la phrase) que tout programme qui a été conçu pourra est repris avec les version montantes (les termes ne sont exactes, mais le sens).

Maintenant une question:


puisque je connais la raison en se qui concerne les problèmes d'affichage grace à 659_minifly, j'ai retiré l'image qui perturbe l'affichage du site

je me suis trompé de logiciel, je voulais mettre en zip, et j'ai pris l'autre programme qui affiche les images


Dernière édition par cosmos70 le Sam 8 Mai 2010 - 14:19, édité 1 fois
Revenir en haut Aller en bas
659_minifly




Nombre de messages : 590
Age : 75
Localisation : Valenciennes Nord
Date d'inscription : 29/04/2010

Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptySam 8 Mai 2010 - 11:19

A mon avis tu as un programme de traduction qui tourne en tache de fond et qui te traduit tout en français. Traduire du français en français il n'y a que le mot anglais qu'il traduit en terme approchant.Regarde en faisant Crtl+alt+Suppr tu devrais avoir un programme qui te permettra de voir quels sont les programmes quit tournent.si tu arrive tu pourra le tuer avec le même programme.

En regardant ton programme il y a plusieurs que j'aimerai savoir.
Quel était le but en fin de compte. Peut tu m'expliquer la philosophie générale de ce programme . pas en détail.
As tu un dictionnaire de toutes les instructions et commandes de Panoramic?
Si oui pourrais tu me le faire parvenir.
Bien a toi.
Revenir en haut Aller en bas
Invité
Invité




Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules EmptySam 8 Mai 2010 - 12:42

De quel programme parles-tu?
Revenir en haut Aller en bas
Contenu sponsorisé





Editeur avec cellules Empty
MessageSujet: Re: Editeur avec cellules   Editeur avec cellules Empty

Revenir en haut Aller en bas
 
Editeur avec cellules
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
» Editeur avec MemoRicht
» Editeur de polices avec typographie
» en rapport avec éditeur Panoramic
» Editeur avec marquage syntaxique

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: