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
» Logiciel de planétarium.
Grille d'Edit Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Grille d'Edit Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Grille d'Edit Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Grille d'Edit Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Grille d'Edit Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Grille d'Edit Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Grille d'Edit Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Grille d'Edit Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Grille d'Edit Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Grille d'Edit Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Grille d'Edit Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Grille d'Edit Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Grille d'Edit Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Grille d'Edit Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Grille d'Edit Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-38%
Le deal à ne pas rater :
Ecran PC gaming 23,8″ – ACER KG241Y P3bip à 99,99€
99.99 € 159.99 €
Voir le deal

 

 Grille d'Edit

Aller en bas 
AuteurMessage
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Grille d'Edit Empty
MessageSujet: Grille d'Edit   Grille d'Edit EmptySam 28 Mar 2020 - 20:20

Je ne sais pas si ça a déjà été fait ici, mais si on a besoin d'une grille avec des caractéristiques individuelles pour les cellules (polices différentes avec enrichissements divers, couleur de fond, etc.), on peut utiliser des EDIT, chaque cellule étant indépendante des autres.
Une ébauche de solution:
Code:
' Création d'une pseudo grille avec des EDIT
DIM x%,y%,nc%,nr%,wc%,hr%,p1%,i%,fs$
fs$ = "C:\TEMP\Grille.txt"
x% = 20: y% = 20
nc% = 9: nr% = 11: ' colonnes, rangées
wc% = 52: hr% = 30: ' largeur colonnes, hauteur rangées
p1% = 100: ' 1er objet Edit (de p1% à p1%+nc%*nr%-1)
GridEdit(p1%,x%,y%,nc%,nr%,wc%,hr%)
FOR i% = p1% TO p1%+nc%*nr%-1: TEXT i%,STR$(i%): NEXT i%
COLOR 125,255,255,0: FONT_SIZE 125,12
GridEditW(p1%,3,5,"Salut !")
GridEditS(p1%,nc%,nr%,"Z:\Grille.txt")
pause 1000
GridEditD(p1%,"C",4,60)
GridEditD(p1%,"R",8,40)
pause 1000
for i% = p1% to p1%+nc%*nr%-1: delete i%: next i%
pause 1000
p1% = 150: x% = 50: y% = 40
GridEditL(p1%,x%,y%,fs$)
pause 1000
GridEditD(p1%,"C",1,80)
pause 1000
GridEditD(p1%,"R",1,40)
pause 1000
GridEditP(p1%,3,5,"Arial",10,"G",255,16776960)
END
' ==============================================================================
SUB GridEdit(p1%,x%,y%,nc%,nr%,wc%,hr%)
  ' Création d'une pseudo grille avec des Edit individuels en x%,y%
  ' nc% colonnes, nr% rangées de dimensions wc%,hr%
  ' p1% = 1er objet EDIT (objets de p1% à p1%+nc%*nr%-1)
  DIM_LOCAL p%,x1%,y1%,c%,r%
  p% = p1%-1: y1% = y%
  FOR r% = 1 TO nr%
      x1% = x%
      FOR c% = 1 TO nc%
          p% = p%+1: EDIT p%: TOP p%,y1%: LEFT p%,x1%: WIDTH p%,wc%: HEIGHT p%,hr%
          x1% = x1%+wc%-2
      NEXT c%
      y1% = y1%+hr%-2
  NEXT r%
END_SUB
' ==============================================================================
SUB GridEditR(p1%,c%,r%)
  ' Lire le contenu de la cellule c%,r% du GridEdit p1% -> presse-papier
  DIM_LOCAL p%
  p% = p1%+(r%-1)*nc%+c%-1
  CLIPBOARD_STRING_COPY TEXT$(p%)
END_SUB
' ==============================================================================
SUB GridEditW(p1%,c%,r%,txt$)
  ' Ecrire le texte txt$ dans la cellule c%,r% du GridEdit p1%
  DIM_LOCAL p%
  p% = p1%+(r%-1)*nc%+c%-1
  TEXT p%,txt$
END_SUB
' ==============================================================================
SUB GridEditS(p1%,nc%,nr%,fs$)
  ' Sauvegarder le contenu du GridEdit p1% nc% colonnes nr% rangées dans fs$ (.txt)
  DIM_LOCAL x,y,a$,p%,x1%,y1%
  FILE_OPEN_WRITE 1,fs$
      FILE_WRITELN 1,STR$(nc%)+";"+STR$(nr%)+";"+STR$(WIDTH(p1%))+";"+STR$(HEIGHT(p1%))
      p% = p1%-1
      FOR y = 1 TO nr%
          a$ = "": FOR x = 1 TO nc%: p% = p%+1: a$ = a$+TEXT$(p%)+";": NEXT x
          FILE_WRITELN 1,LEFT$(a$,LEN(a$)-1)
      NEXT y
  FILE_CLOSE 1
END_SUB
' ==============================================================================
SUB GridEditL(p1%,x%,y%,fs$)
  ' Restore en x%,y% de la grille GridEdit sauvegardée dans fs$
  DIM_LOCAL nc%,nr%,wc%,hr%,c%,r%,x1%,y1%,a$,i%,k%,p%
  FILE_OPEN_READ 1,fs$
      FILE_READLN 1,a$
      k% = INSTR(a$,";"): nc% = VAL(LEFT$(a$,k%-1)): a$ = RIGHT_POS$(a$,k%+1)
      k% = INSTR(a$,";"): nr% = VAL(LEFT$(a$,k%-1)): a$ = RIGHT_POS$(a$,k%+1)
      k% = INSTR(a$,";"): wc% = VAL(LEFT$(a$,k%-1)): a$ = RIGHT_POS$(a$,k%+1)     
      hr% = VAL(a$)
      p% = p1%-1: y1% = y%: ' création de la grille
      FOR r% = 1 TO nr%
          x1% = x%
          FOR c% = 1 TO nc%
              p% = p%+1: EDIT p%: TOP p%,y1%: LEFT p%,x1%: WIDTH p%,wc%: HEIGHT p%,hr%
              x1% = x1%+wc%-2
          NEXT c%
          y1% = y1%+hr%-2
      NEXT r%
      p% = p1%-1: ' lecture des données
      FOR i% = 1 TO nr%
          FILE_READLN 1,a$
          k% = INSTR(a$,";")
          WHILE k% > 0
              p% = p%+1: TEXT p%,LEFT$(a$,k%-1): a$ = RIGHT_POS$(a$,k%+1)
              k% = INSTR(a$,";")
          END_WHILE
          p% = p%+1: TEXT p%,a$
      NEXT i%
  FILE_CLOSE 1
END_SUB
' ==============================================================================
SUB GridEditD(p1%,Typ$,n%,val%)
  ' Dans la GridEdit p1%, redimensionner Typ$ ="C" (colonne) ou "R" (rangée) de rang n%
  ' à val% pixels (largeur pour colonne ou hauteur pour rangée)
  DIM_LOCAL p%,c%,r%
  IF UPPER$(Typ$) = "C": ' nouvelle largeur de colonne
      FOR r% = 1 TO nr%
          p% = p1%+(r%-1)*nc%+(n%-1): WIDTH p%,val%
          IF n% < nc%
              FOR c% = n%+1 TO nc%
                  p% = p1%+(r%-1)*nc%+(c%-1): LEFT p%,LEFT(p%)+(val%-wc%)
              NEXT c%
          END_IF
      NEXT r%
  ELSE: ' nouvelle hauteur de rangée
      FOR c% = 1 TO nc%
          p% = p1%+(n%-1)*nc%+(c%-1): HEIGHT p%,val%
          IF n% < nr%
              FOR r% = n%+1 TO nr%
                  p%= p1%+(r%-1)*nc%+(c%-1): TOP p%,TOP(p%)+(val%-hr%)
              NEXT r%
          END_IF
      NEXT c% 
  END_IF
END_SUB
' ==============================================================================
SUB GridEditP(p1%,c%,r%,fnt$,sz%,enr$,ct%,cf%)
  ' Caractéristiques du contenu de la cellule GridEdit colonne c%, rangée r%:
  ' police, taille, enrichissements("GIS" ou "BIU"), couleur texte, couleur fond.
  ' couleurs de la forme: R*256*256 + G*256 + B
  DIM_LOCAL p%,rr%,gg%,bb%
  p% = p1%+(r%-1)*nc%+c%-1: ' Edit correspondant à la cellule c%,r%
  IF fnt$<>"" THEN FONT_NAME p%,fnt$
  IF sz% <> 0 THEN FONT_SIZE p%,sz%
  enr$ = UPPER$(enr$)
  IF enr$ <> ""
      IF INSTR(enr$,"G")>0 OR INSTR(enr$,"B")>0 THEN FONT_BOLD p%
      IF INSTR(enr$,"I")>0 THEN FONT_ITALIC p%
      IF INSTR(enr$,"S")>0 OR INSTR(enr$,"U")>0 THEN FONT_UNDERLINE p%
  END_IF
  IF cf% >= 0 AND cf% < 16777216
      rr%=INT(cf%/65536): gg%=BIN_AND(cf%,65280)/256: bb%=BIN_AND(cf%,255)
      COLOR p%,rr%,gg%,bb%: ' couleur de fond
  END_IF
  IF ct% >= 0 AND ct% < 16777216
      rr%=INT(ct%/65536): gg%=BIN_AND(ct%,65280)/256: bb%=BIN_AND(ct%,255)
      FONT_COLOR p%,rr%,gg%,bb%: ' couleur texte
  END_IF
END_SUB
' ==============================================================================
Chaque cellule est représentée par un 'Edit' particulier.
Il est facile de l'adresser en fonction des numéros de colonne et de rangée.
On peut envisager également la sauvegarde et le restore du contenu de la grille (avec des enrichissements particuliers, ça complique un peu mais ce n'est pas insurmontable).

PS 29/03
J'ai ajouté quelques subs d'exploitation de la grille/Edit, redimensionnement des cellules, garnissage, couleurs de texte et de fond d'une cellule donnée, etc. rien de révolutionnaire mais bon...
Revenir en haut Aller en bas
 
Grille d'Edit
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» grille 3D
» Tracer une grille n'importe où sur l'écran
» Grille sur le bureau
» Une grille en caractères graphiques
» Une grille d'un nouveau (?) genre

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: