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

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
Un pseudo objet: grid_memo Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Un pseudo objet: grid_memo Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Un pseudo objet: grid_memo Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Un pseudo objet: grid_memo Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Un pseudo objet: grid_memo Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Un pseudo objet: grid_memo Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Un pseudo objet: grid_memo Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Un pseudo objet: grid_memo Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Un pseudo objet: grid_memo Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Un pseudo objet: grid_memo Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Un pseudo objet: grid_memo Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Un pseudo objet: grid_memo Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Un pseudo objet: grid_memo Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Un pseudo objet: grid_memo Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Un pseudo objet: grid_memo Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -28%
Précommande : Smartphone Google Pixel 8a 5G ...
Voir le deal
389 €

 

 Un pseudo objet: grid_memo

Aller en bas 
AuteurMessage
Invité
Invité




Un pseudo objet: grid_memo Empty
MessageSujet: Un pseudo objet: grid_memo   Un pseudo objet: grid_memo EmptySam 23 Juil 2016 - 0:19

Il s'agit d'un besoin que j'ai eu pour un autre programme. Cela ressemble à un grid mais chaque cellule s'assimile à un memo. Suivre les commentaires pour les réglages. Ce programme fonctionne tel_quelle, mais peut être intégré dans un autre, en prenant l'ensemble du code, et l'insérer juste avant le END d'un autre.

Le lancer, puis cliquez sur une cellule. Le contenu se copie dans un vrai memo qui permet de remplir celle-ci, ou de le modifier. Pour voir le memo, ou agir sur ses besoins, il faut faire un clic droit sur la vue des cellules pour montrer un menu contextuel. L’intérêt de ce programme a été pour moi de pouvoir entrer des paramètres, aussi les cellules doivent être dimensionnées selon le nombre paramètres qu'on a besoin, car je n'ai pas prévu de scrolling dans chaque pseudo cellule.

Code:
' organigramme    "C:\PANO\temp\réflexion\pour_tester\SUB_organigrame1.bas"

' Ici fin de la déclaration du programme. Ce module se place dans son ensemble avant le END
' permettant ainsi le fonctionnement du GRID_MEMO (pas de TIMER, pas de LABEL)

rem "=============================================================="
rem "*** Création d'un pseudo-objet: GRID_MEMO *** par cosmos70 ***"
rem "*** 22 juillet 2016                                        ***"
rem "=============================================================="

full_space 0
if variable("a$") = 0 then dim a$ :' pour aider à comprendre le montage
rem "=============Module Grid_memo=========================================================================="
dim form_recoit%  , grid_memo$ , grid_memo% , h%  , blocage_grid_memo%   , x , y
   ' form récepteur, N° objet départ , NB de ligne,Nb de colonne , marge,  width , height  ,left , top
   '       0       ,    995...1000   ,      11    ,      5       ,   2  ,   200  ,   100   , 000 , 200

   grid_memo$         = "10,"  : ' form de réception du module, peut-être aussi "0,"
grid_memo$=grid_memo$ + "995," : ' N° de départ pour Pseudo Grid_memo (995 + 6 autres)
grid_memo$=grid_memo$ + "11,"  : ' Nombre de lignes, ou plutôt nombre de pseudo memos verticales
grid_memo$=grid_memo$ + "5,"   : ' Nombre de colonnes, soit nombre de cellules horiz.
grid_memo$=grid_memo$ + "2,"   : ' Largeur d'une marge (si on en veut une entre  chaque cellule)
grid_memo$=grid_memo$ + "200," : ' Largeur d'une cellule
grid_memo$=grid_memo$ + "100," : ' hauteur d'une cellule
grid_memo$=grid_memo$ + "0,"   : ' left, soit de la form si création, ou du panel si la form existe déjà
grid_memo$=grid_memo$ + "200"  : ' top, idem

'  OU
grid_memo$ = "10,995,11,5,10,200,100,100,200" :' en variable pour garder en mémoire
' appel à la conception du grid_memo
grid_memo(0)
rem "==============================================================FIN======================================"
' cette partie est nécessaire et est placée avant le END du programme dans lequel on insère celui-ci
repeat
   pause 100
   if blocage_grid_memo% = 0  :' pour annuler l'exploitation
      if mouse_right_down(grid_memo%+1) = 1 then grid_memo(1)  :' clic contextuel sur les cellules ET SHOW memo
      if mouse_right_down(0) = 1 then show form_recoit% : to_foreground form_recoit%
      if mouse_left_down(grid_memo%+1) = 1 then grid_memo(0):' clic sur un module pour reporter le texte dans le memo.
      ' if mouse_left_down(grid_memo%+4) = 1 then grid_memo(2) :' clic bouton "écrire"
  end_if
until scancode = 19 :' touche PAUSE

hide grid_memo%  :' panel de gril memo (pour le cas on veut seulement sortir du grid_memo)
                  ' Dans ce cas supprimer terminate
terminate        :' à retirer si on veut seulement annuler le module et continuer normalement

END :' <--------------------------------------------------
' ==============================================================================

SUB grid_memo(cde%)
   dim_local colonne%,ligne%,a$, no% , a%,b% ,l%,t% , exist% ,tx$ , separ_texte$
   dim_local column%,row%,marge%,col%,lig% , v% , j% , x , y , b$ , nb_caract
   dim_local r1%,v1%,b1%  ,  r2%,v2%,b2%  , r3%,v3%,b3%  :' préparer les couleurs

   r1%=255:v1%=255:b1%=190 : ' couleur de fond des cellules vides
   r2%=255:v2%=255:b2%=0   : ' cellule cliquée
   r3%=220:v3%=230:b3%=250 : ' cellule avec contenue
   separ_texte$ = chr$(1)
   ' -----------------------------
   a$ = trim$(grid_memo$) : if right$(a$,1) <> "," then a$ = a$+","
   j% = 1
   repeat
      v% = instr(a$,",")
      select j%
         case 1 : form_recoit% = val(trim$(left$(a$,v%-1)))
         case 2 : grid_memo%   = val(trim$(left$(a$,v%-1)))
         case 3 : row%         = val(trim$(left$(a$,v%-1)))
         case 4 : column%      = val(trim$(left$(a$,v%-1)))
         case 5 : marge%       = val(trim$(left$(a$,v%-1)))
         case 6 : col%         = val(trim$(left$(a$,v%-1)))
         case 7 : lig%         = val(trim$(left$(a$,v%-1)))
         case 8 : l%           = val(trim$(left$(a$,v%-1)))
         case 9 : t%           = val(trim$(left$(a$,v%-1)))
      end_select
      j% = j%+1 :  a$ = right_pos$(a$,v%+1)
   until v% = 0 or j% = 10 or scancode = 27
   ' ========================================
   if cde% =  0
      if variable( "pp%") = 0
         dim pp% , texte_grid_memo$(column%,row%) , memoire$ , fichier_grid_memo$
         ' ..................................................................
         ' PARTIE DE L'OBJET GRID_MEMO
         if form_recoit% > 0
            if object_exists(form_recoit%) = 0         :' DONC création du FORM
               form form_recoit%:left form_recoit%,l%
               width form_recoit%,column%*col%+40 : height form_recoit%,row%*lig%+50
               top form_recoit%,t%:left form_recoit%,l%  : exist% = 1
            end_if
         end_if

         no% = grid_memo%   :' 1 panel + 1 picture pour faire le GRID_MEMO, + 1 panel avec memo,bouton caché pour traitement texte
         panel no%:parent no%,form_recoit% :width no%,column%*col%+10 :height no%,row%*lig%+10  :' GRID_MEMO% ¤¤¤
            ' si form_recoit% = 0 ok pour left et top. Si création du form, alors le panel position: 0,0
            if exist% = 0 then top no%,t%  : left no%,l%:' si le form n'est pas créé pour, on déplace le panel selon la demande
            ' dans le cas contraire (on créé le FORM, alors c'est ce dernier qui est placé.

         no%=no%+1
         picture no%:parent no%,no%-1:width no%,column%*col%+1: height no%,row%*lig%+1          :' grid_memo% + 1
            font_name no%,"Consolas":font_size no%,9 : font_bold no%
            2d_target_is no% : print_target_is no% : font_size no%,9
            for a% = 0 to column% -1
               for b% = 0 to row%-1
                  2d_fill_color 255,255,255 : 2d_pen_width 1 : 2d_pen_color 220,220,220 :' cellules en entier sans marges
                  2d_rectangle a%*col% , b%*lig%   ,   (a%+1)*col% , (b%+1)*lig%
                  2d_fill_color r1%,v1%,b1%  : 2d_pen_color 0,0,0 :if marge% > 1 then 2d_pen_width 2
                  2d_rectangle a%*col%+marge% , b%*lig%+marge% ,   (a%+1)*col%-marge%, (b%+1)*lig% -marge%
               next b%
            next a%
         ' ..................................................................
         ' PARTIE OU ON TRAVAIL LES TEXTES dans un memo :' on créé un panel HIDE, avec 1memo + boutons s'appellant par clic_droit

         no% = no%+1    :' parent no%,form_recoit%  remplacer le panel par form
         form no% : left no%,l%: width no%,320:height no%,200 :border_small no%         :' grid_memo% + 2
            caption no%,"Saisie de texte"
         no% = no% +1
         memo no%:parent no%,no%-1:width no%,300:height no%,150 :bar_both no%                   :' grid_memo% + 3
         no% = no%+1
         ' button no% : parent no%,no%-2:left no%,310:caption no%,"écrire":width no%,120        :' grid_memo% + 4
                      ' annuler, reporté dans le menu contextuel
         ' ------------------------------------------------------------------------
         hide grid_memo%+2
         ' ------------------------------------------------------------------------
         rem " faire un panel avec picture pour un menu contextuel
         no%=no%+1
         PANEL no%:parent no%,grid_memo%  : left no%,100:top no%,250:width no%,160:height no%,210     :' grid_memo% + 5
            hide no% : font_size no%,10 : no%=no%+1
         PICTURE no%:parent no%,no%-1:full_space no% : color no%,255,255,0                            :' grid_memo% + 6
                                                     '  ^__ pourquoi jaune?
      ELSE
         ' ------------ variable pp% déclarée ------------------------------------------------------------------------
         ' parcourt dans le module
         print_target_is grid_memo%+1
         nb_caract = (text_width("WWWWWWWWWW",grid_memo%+1))/10
         nb_caract = int((col%-(marge%*2-10)) / nb_caract) -2

         ' il faut en premier, rétablir la couleur normale sur la case cliquée avant
         if texte_grid_memo$(0,0) <> ""
            colonne% = val(texte_grid_memo$(0,0)) : ligne% = val(texte_grid_memo$(0,1)) : 2d_target_is grid_memo%+1


               if texte_grid_memo$(colonne%,ligne%) <> "" then 2d_fill_color r3%,v3%,b3% : else :2d_fill_color r1%,v1%,b1%
               2d_fill_on      :rem "LIGNE SUIVANTE : +10 ET -10
               2d_rectangle (colonne%-1)*col%+marge% , (ligne%-1)*lig% +marge% , (colonne%)*col%-marge% , (ligne%)*lig%-marge%
               if texte_grid_memo$(colonne%,ligne%)  <> ""
                  a% = 1 : a$ = texte_grid_memo$(colonne%,ligne%)
                  repeat
                     v% = instr(a$,separ_texte$)
                     if v% > 0
                        print_locate (colonne%-1)*col%+marge%+2 , (ligne%-1)*lig%+marge% + (a%-1)*17 +3
                        b$ = left$(a$,v%-1) : print left$(b$,nb_caract)
                        a$ = right_pos$(a$,v%+1)
                     end_if
                     a% = a% +1
                  until v%=0 or a$=""
               end_if
         end_if

         ' cellule cliquée ensuite
         x = mouse_x_position(grid_memo%+1) :   y=  mouse_y_position(grid_memo%+1)
         colonne% = x/col%+.5               :   ligne% = y/lig% +.5  : caption 0, "ligne%="+str$(ligne%)+ "  colonne%="+str$(colonne%)
         if colonne% <= column%  and ligne% <= row%
            texte_grid_memo$(0,0) = str$(colonne%)       : texte_grid_memo$(0,1) = str$(ligne%)

            rem " IL FAUT MONTRER LA ZONE DE CLIC

            2d_fill_color r2%,v2%,b2% : 2d_fill_on      :rem "LIGNE SUIVANTE : +10 ET -10
            2d_rectangle (colonne%-1)*col%+marge% , (ligne%-1)*lig% +marge%  ,   (colonne%)*col%-marge% , (ligne%)*lig%-marge%

            clear grid_memo% +3  :' memo
            a$ = texte_grid_memo$(colonne%,ligne%) : b% = 0
            if colonne% > 0 and ligne% > 0
               repeat
                  if a$ <> ""
                     a% = 1
                     repeat
                        v% = instr(a$,separ_texte$)
                        if v% > 0
                           item_add grid_memo%+3,left$(a$,v%-1)  : b$ = left$(a$,v%-1)
                           print_locate (colonne%-1)*col%+marge%+2 , (ligne%-1)*lig%+marge% + (a%-1)*17 +3
                           print left$(b$,nb_caract)
                           a$ = right_pos$(a$,v%+1)
                        else
                           if a$ <> "" then item_add grid_memo%+3,a$ : a$ = ""
                        end_if
                        a% = a%+1
                     until a$ = "" or scancode = 27
                  end_if
               until a$ = ""
               if show(grid_memo%+2) = 1 then set_focus grid_memo%+3 :' memo
            end_if
            ' ---------------------------------------------------------------------------------------------------------------
         else
            colonne% = 0 : ligne% = 0 :' on a cliqué en dehors, et cela évite les erreurs pour la suite
         end_if
      end_if
   end_if :' cde%=0
   ' ---------------------
   nb_caract = (text_width("WWWWWWWWWW",grid_memo%+1))/10
   nb_caract = int((col%-(marge%*2-10)) / nb_caract) -2
   ' ---------------------
   if cde% = 1 :' menu textuel sur les cellules

      if texte_grid_memo$(0,0) <> "" then colonne% = val( texte_grid_memo$(0,0))
      if texte_grid_memo$(0,1) <> "" then ligne%   = val( texte_grid_memo$(0,1))

      show grid_memo%+5         :' menu contextuel
      2d_target_is grid_memo%+6 :' picture sur menu contextuel
      2d_clear  : print_target_is grid_memo%+6
      color  grid_memo%+6, 240,240,240
      tx$ = "Glisser avant de relâcher|Annulation|Montrer le memo|Cacher le memo|ÉCRIRE DANS LA CELLULE|Effacer la cellule|Annuler efface|Enregistrer|Lire|"
      v% = 0 : a% = 0
      a$ = tx$
      2d_fill_color 255,0,0 : font_color grid_memo%+6, 255,255,0
      repeat
         v%= instr(a$,"|")
         if v% > 0
            if a% = 1 then 2d_fill_color 240,240,240 : font_color grid_memo%+6, 0,0,0
            print_locate 5,a%*20+2 : print left$(a$,v%-1)
            a$ = right_pos$(a$,v%+1)
            a% = a%+1
         end_if
      until v% = 0 or a$ = ""
      ' ....placement du menu...... Tant qu'on ne relève pas le doigt droit, on peut déplacer le menu.
      repeat
         x = mouse_x_position(grid_memo%+1)+10 :  y = mouse_y_position(grid_memo%+1)
         left grid_memo%+5,x
         top grid_memo%+5,y
         caption 0,scancode
      until scancode = 0

      ' on réécrit dans une boucle en tenant compte de la souris pour montrer la ligne
      j%=1
      repeat
         y = int((mouse_y_position(grid_memo%+6)+8)/20 -1 +.5)
         v% = 0 : a% = 0 :  a$ = tx$
         repeat
            v%= instr(a$,"|")
            if v% > 0
               if a% = 0
                  print_locate 5,2 : 2d_fill_color 0,0,0 : font_color grid_memo%+6, 255,255,255
                  print "....... Sélectionnez ........."
                  2d_fill_color 240,240,240 : font_color grid_memo%+6, 0,0,0
               else
                  ' --------------------------
                  ' si il y a modification de ligne, il faut modifier les couleurs
                  if y <> j% and a% = j%       :' on rétabli la ligne précédente
                     2d_fill_color 240,240,240 : font_color grid_memo%+6, 0,0,0
                     print_locate 5,a%*20+2    : print left$(a$,v%-1)
                  end_if
                  if y <> j% and a% = y        :' la ligne du curseur est surlignée
                     2d_fill_color 0,110,255   : font_color grid_memo%+6, 255,255,255
                     print_locate 5,a%*20+2    : print left$(a$,v%-1)
                  end_if
                  ' --------------------------
               end_if
               a$ = right_pos$(a$,v%+1) : a% = a%+1
            end_if
         until v% = 0 or a$ = "" or scancode = 27
         j% = y
      until mouse_left_down(grid_memo%+6) = 1 or scancode = 27:if scancode = 27 then j%=1
      hide grid_memo%+5  :  repeat : pause 100 : until scancode = 0

      select j%+1
         case 2 : hide grid_memo%+5 : ' annulation
         case 3 : show grid_memo%+2 : set_focus grid_memo%+3 :' montrer le panel avec memo ...
         case 4 : hide grid_memo%+2 : ' cacher """""
         case 5 : cde%=2 :            ' écrire
         case 6 :                     ' effacer la cellule
                  memoire$ = "" : 2d_target_is grid_memo%+1
                  if count(grid_memo%+3) > 0
                     for a% = 1 to count(grid_memo%+3)
                        memoire$ = memoire$+item_read$(grid_memo%+3,a%)+separ_texte$
                     next a% :' pour récupération si erreur
                  end_if
                  texte_grid_memo$(colonne%,ligne%)="" : clear grid_memo%+3
                  2d_fill_color r1%,v1%,b1%
                  2d_rectangle (colonne%-1)*col%+marge% , (ligne%-1)*lig% +marge%  ,   (colonne%)*col%-marge% , (ligne%)*lig%-marge%
         case 7 :                     ' annuler efface
                  a$ = memoire$ : 2d_target_is grid_memo%+1  : a% = 1
                  2d_fill_color r3%,v3%,b3%
                  2d_rectangle (colonne%-1)*col%+marge% , (ligne%-1)*lig% +marge%  ,   (colonne%)*col%-marge% , (ligne%)*lig%-marge%
                  repeat
                     v%= instr(a$,separ_texte$)
                     if v% > 0
                        item_add grid_memo%+3,left$(a$,v%-1) : b$ = left$(a$,v%-1)
                        print_locate (colonne%-1)*col%+marge%+2 , (ligne%-1)*lig%+marge% + (a%-1)*17 +3
                        print left$(b$,nb_caract)
                        a$ = right_pos$(a$,v%+1)
                     end_if
                     a% = a%+1
                  until v%=0 or a$ = ""
                  texte_grid_memo$(colonne%,ligne%)= memoire$
         case 8 : ' enregistrer

                  for v% = 9999 to 1 step -1  :  ' créer un objet open_dialog
                     if object_exists(v%) = 0 then open_dialog v% : exit_for
                  next a%
                  filter v%,"Enregistrement|*.g-m"
                  fichier_grid_memo$ =  file_name$(v%)
                  if fichier_grid_memo$ <> ""
                     if file_extract_extension$(fichier_grid_memo$) = "" then fichier_grid_memo$ = fichier_grid_memo$ + "g-m"
                     file_open_write 1, fichier_grid_memo$
                     file_writeln 1,row% : file_writeln 1,column%
                     for a% = 1 to row%
                        for b% = 1 to column%
                           file_writeln 1,texte_grid_memo$(b%,a%)
                        next b%
                     next a%
                     file_close 1
                  end_if
                  delete v%
         case 9 : ' lire                                                      :
                  for v% = 9999 to 1 step -1     :' créer un objet open_dialog
                     if object_exists(v%) = 0 then open_dialog v% : exit_for
                  next a%
                  filter v%,"Lecture|*.g-m"
                  fichier_grid_memo$ =  file_name$(v%)
                  delete v%
                  if fichier_grid_memo$ <> "_"
                     file_open_read 1,fichier_grid_memo$
                     file_readln 1,row% : file_readln 1,column%
                     for a% = 1 to row%
                        for b% = 1 to column%
                           file_readln 1,texte_grid_memo$(b%,a%)
                        next b%
                     next a%
                     file_close 1
                     ' -------------  refaire le grid avec le texte.
                     2d_target_is grid_memo%+1 : print_target_is grid_memo%+1 : 2d_clear : 2d_fill_on
                     for a% = 0 to column% -1
                        for b% = 0 to row%-1
                           2d_fill_color 255,255,255 : 2d_pen_width 1 : 2d_pen_color 220,220,220 :' cellules en entier sans marges
                           2d_rectangle a%*col% , b%*lig%   ,   (a%+1)*col% , (b%+1)*lig%
                           2d_pen_color 0,0,0 :if marge% > 1 then 2d_pen_width 2
                           if trim$(texte_grid_memo$(a%,b%)) = ""
                              2d_fill_color r1%,v1%,b1%
                           else
                              2d_fill_color r3%,v3%,b3%
                           end_if
                           2d_rectangle a%*col%+marge% , b%*lig%+marge% ,   (a%+1)*col%-marge%, (b%+1)*lig% -marge%
                           ' on décompose le texte
                           a$ = texte_grid_memo$(a%,b%) : j% = 1
                           if a$ <> ""
                              repeat
                                 v% = instr(a$,separ_texte$)
                                 if v% > 0
                                    b$ = left$(a$,v%-1)
                                    print_locate (a%-1)*col%+marge%+2 , (b%-1)*lig%+marge% + (j%-1)*17 +3
                                    print left$(b$,nb_caract)
                                    a$ = right_pos$(a$,v%+1)
                                 end_if
                                 j% = j%+1
                              until v% = 0 or a$ = ""
                           end_if
                        next b%
                     next a%
                  end_if
      end_select
      2d_target_is grid_memo%+1 : print_target_is grid_memo%+1
   end_if  :  ' cde% = 1

   ' =================================================================

   if cde% = 2 : ' écrire le contenu du memo

      if texte_grid_memo$(0,0) <> "" then colonne% = val( texte_grid_memo$(0,0))
      if texte_grid_memo$(0,1) <> "" then ligne%   = val( texte_grid_memo$(0,1))

      2d_target_is grid_memo%+1 : print_target_is grid_memo%+1
      ' ......................................................

      IF colonne% > 0 and ligne% > 0
         2d_fill_color r3%,v3%,b3% : 2d_fill_on      :rem "LIGNE SUIVANTE : +10 ET -10
         2d_rectangle (colonne%-1)*col%+marge% , (ligne%-1)*lig% +marge%  ,   (colonne%)*col%-marge% , (ligne%)*lig%-marge%

         if count(grid_memo%+3) > 0
            for a% = count(grid_memo%+3) to 1 step -1  : ' suppression des dernières lignes vides
               a$ = item_read$(grid_memo%+3,a%)
               if a$ = ""
                  item_delete grid_memo%+3,a%:' pour reprendre coloriage cellule vide
               else
                  exit_for
               end_if
            next a%
            
            for a% = 1 to count(grid_memo%+3)
               a$ = item_read$(grid_memo%+3,a%) : b$ = b$ + a$+  separ_texte$
               print_locate (colonne%-1)*col%+marge%+2 , (ligne%-1)*lig%+marge% + (a%-1)*17 +3
               print left$(a$,nb_caract)
            next a%
            texte_grid_memo$(colonne%,ligne%) = b$
         else
            2d_fill_color r1%,v1%,b1% : 2d_pen_width 2 : 2d_pen_color 0,0,0
            2d_rectangle (colonne%-1)*col%+marge% , (ligne%-1)*lig% +marge%  ,   (colonne%)*col%-marge% , (ligne%)*lig%-marge%
         end_if
         cde%=0
      END_IF
   end_if
end_sub

Juste une pensé comme cela à propos des timers. Pensez-vous pas qu'un timer qui est une interruption, devrait rétablir les paramètres, telqu'ils étaient avant l'appel, comme le ferait une vrai interruption. Il y a une commande qui est TIMER_OFF_ALL, ne pouvait-il y avoir une commande qui rétabli ces derniers comme ils étaient avant l'appel de timer_off all. Cela résoudrait l'ajout d'include qui ne connaît pas les timers qui sont actifs, et pour quelle raisons.
Revenir en haut Aller en bas
 
Un pseudo objet: grid_memo
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Pseudo-objet - Générateur de code
» Nouveeu pseudo-objet FRAME utilisable par #INCLUDE
» Nouveau pseudo-objet TAB utilisable par #INCLUDE
» Détermine si oui ou non un objet est PARENT d'un autre objet
» Nouvelle version de mon pseudo-objet GLIST

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