Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Editeur avec cellules | |
| | |
Auteur | Message |
---|
Invité Invité
| Sujet: Editeur avec cellules Dim 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.7zle 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 |
| | | Invité Invité
| Sujet: Re: Editeur avec cellules Dim 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... |
| | | Invité Invité
| Sujet: Re: Editeur avec cellules Lun 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 |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Editeur avec cellules Lun 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.... | |
| | | Invité Invité
| Sujet: Re: Editeur avec cellules Lun 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 |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Editeur avec cellules Lun 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+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re: Editeur avec cellules Mar 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 | |
| | | Invité Invité
| Sujet: Re: Editeur avec cellules Mer 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. ce qui donne une fois fini: - 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.7zImpossible 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 |
| | | Invité Invité
| Sujet: Re: Editeur avec cellules Mer 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. |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Editeur avec cellules Mer 5 Mai 2010 - 8:01 | |
| Impressionnant, un sacré boulot. | |
| | | Invité Invité
| Sujet: Re: Editeur avec cellules Mer 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. |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re : Editeur avec cellules Jeu 6 Mai 2010 - 14:17 | |
| J'en reste bouche bée; Superbe ton programme . J'aime beaucoup. bien travaillé. A+ | |
| | | Invité Invité
| Sujet: Re: Editeur avec cellules Ven 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. |
| | | Invité Invité
| Sujet: Re: Editeur avec cellules Ven 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 |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Une demande personnel Ven 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. | |
| | | Invité Invité
| Sujet: Re: Editeur avec cellules Ven 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. @+ |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: re : debogueur Ven 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. | |
| | | Invité Invité
| Sujet: Re: Editeur avec cellules Ven 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) |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: Editeur avec cellules Ven 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. | |
| | | Invité Invité
| Sujet: Re: Editeur avec cellules Ven 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
|
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: Editeur avec cellules Ven 7 Mai 2010 - 16:24 | |
| | |
| | | Invité Invité
| Sujet: Re: Editeur avec cellules Sam 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 |
| | | Invité Invité
| Sujet: Re: Editeur avec cellules Sam 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 |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: Editeur avec cellules Sam 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. | |
| | | Invité Invité
| Sujet: Re: Editeur avec cellules Sam 8 Mai 2010 - 12:42 | |
| De quel programme parles-tu? |
| | | Contenu sponsorisé
| Sujet: Re: Editeur avec cellules | |
| |
| | | | Editeur avec cellules | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |