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
» PANORAMIC V 1
Aide à la programmation Emptypar papydall Aujourd'hui à 2:21

» Gestion d'un système client-serveur.
Aide à la programmation Emptypar Klaus Hier à 23:59

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Aide à la programmation Emptypar Marc Hier à 12:14

» @Jack
Aide à la programmation Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Aide à la programmation Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Aide à la programmation Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Aide à la programmation Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Aide à la programmation Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Aide à la programmation Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Aide à la programmation Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Aide à la programmation Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Aide à la programmation Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Aide à la programmation Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
Aide à la programmation Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Aide à la programmation Emptypar leclode Mer 17 Avr 2024 - 11:07

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 : -20%
Ecran PC GIGABYTE 28″ LED M28U 4K ( IPS, 1 ms, ...
Voir le deal
399 €

 

 Aide à la programmation

Aller en bas 
4 participants
AuteurMessage
JL35




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

Aide à la programmation Empty
MessageSujet: Aide à la programmation   Aide à la programmation EmptySam 25 Oct 2014 - 17:56

Peut-être plus gadget qu'autre chose, une aide à la définition des objets dans un programme Panoramic:
On clique sur un objet dans la grille supérieure, et sa définition minimum est générée plus bas, avec une variable comme numéro d'objet et les paramètres minimum (position, taille), prêts à être garnis.
Chaque objet est défini par une variable, avec génération de la commande DIM correspondante.

Deux champs sont garnis:
- en haut, la ou les lignes de DIM, pour la définition des noms d'objets
- en bas, successivement, les lignes de définition des objets, avec progression de l'index.

Quand c'est terminé, il ne reste ensuite qu'à copier et coller successivement ces deux champs dans le programme en préparation dans l'éditeur, puis ajuster les valeurs:
- garnir les données [#) avec les bonnes valeurs
- ajouter les champs manquants et/ou supprimer les champs inutiles
- supprimer (éventuellement) les étiquettes non utilisées, dans la définition de l'objet et dans le DIM correspondant.

Je ne sis pas sûr que ce soit très utile, c'est à voir, en tout cas ce n'est pas très long, et ça peut donner des idées:
Code:
' Aide à la programmation: définition des objets pour un nouveau programme
' ==============================================================================
' PRINCIPE: cliquer successivement les objets à définir, qui seront générés dans
' la fenêtre du bas, avec attribution de variables 'étiquettes', lesquelles seront
' regroupées dans des lignes de DIM dans la fenêtre du haut.
' Puis 'Copier' successivement ces deux fenêtre pour les 'Coller' dans le
' programme en cours d'élaboration.
' Dans le programme, mettre en forme ces lignes de définitions, en mettant
' notamment les valeurs adéquates dans les zones prévues (caractères '#'),
' dimensions et autres paramètres.
' ==============================================================================
LABEL Clk, Copier,Remplace
DIM gr%,nr%,nc%,w%,h%,w1%,Obj$(20,10),no%(20),i%,j%,k%,a$,b$,c$,x%,y%,c%,r%,nob
DIM lso$(50),prf$(50),vpr%(50),car$(50),dm$,xd%,h3,s1$,s2$,ch$,ch1$,ch2$

DATA "Classiques:","ALPHA","BUTTON","FORM","GRID","MEMO","SPIN","F"
DATA "Listes:","COMBO","DLIST","EDIT","LIST","F"
DATA "Scènes:","SCENE2D","SCENE3D","F"
DATA "Multimédia:","HVIEWER","IMAGE","MOVIE","PICTURE","SOUND","F"
DATA "Choix:","OPTION","CHECK","F"
DATA "Menus:","MAIN_MENU","SUB_MENU","F"
DATA "Barres:","PROGRESS_BAR","SCROLL_BAR","TRACK_BAR","F"
DATA "Dialogue:","OPEN_DIALOG","SAVE_DIALOG","F"
DATA "Horloge:","TIMER","F"
DATA "Conteneurs:","CONTAINER","CONTAINER_OPTION","PANEL","F"

DATA "lsobj": ' liste des objets, classés par numéro
DATA "SCENE3D","BUTTON","EDIT","MEMO","COMBO","ALPHA","FORM","LIST","PICTURE"
DATA "CHECK","OPTION","MAIN_MENU","SUB_MENU","SOUND","MOVIE","TRACK_BAR"
DATA "OPEN_DIALOG","SAVE_DIALOG","SCROLL_BAR","PROGRESS_BAR","SPIN","GRID"
DATA "CONTAINER","","","DLIST","SCENE2D","TIMER","PANEL","","","CONTAINER_OPTION"
DATA "","","","HVIEWER","","","","","IMAGE","F"
' préfixe des étiquettes d'objets générées
DATA "s3d","btn","edi","mem","cmb","alf","frm","lst","pic","chk","opt","mme","sme"
DATA "snd","mov","tba","odi","sdi","sba","pba","spn","grd","cnt","","","dls","s2d"
DATA "tim","pan","","","cno","","","","hvw","","","","","img"
' caractéristiques minimum implicites: T(top), L(left), W(largeur), H(hauteur), P(parent)
DATA "TLWH","TL","TLW","TLWH","TLWH","TL","TLWH","TLWH","TLWH","TL","TLP","","P"
DATA "","TLWH","TLW","","","TLW","TLW","TLW","TLWH","TLWH","","","","TLWH",""
DATA "TLWH","","","TLWH","","","","TLWH","","","","",""

WIDTH 0,800: HEIGHT 0,SCREEN_Y-50: BORDER_SMALL 0
COLOR 0,180,255,255: FONT_BOLD 0
nr% = 11: nc% = 8
gr% = 1
w% = 114: h% = 15

GRID gr%: TOP gr%,0: LEFT gr%,0
WIDTH gr%,(nc%-1)*w%-16: HEIGHT gr%,(nr%-1)*h%+1+nr%+3
GRID_COLUMN gr%,nc%: GRID_ROW gr%,nr%
GRID_COLUMN_WIDTH gr%,w%: GRID_ROW_HEIGHT gr%,h%
GRID_ONE_COLUMN_WIDTH gr%,1,1: GRID_ONE_ROW_HEIGHT gr%,1,1
GRID_ONE_COLUMN_WIDTH gr%,2,83
FONT_NAME gr%,"Consolas": FONT_SIZE gr%,10: FONT_BOLD gr%: FONT_COLOR gr%,0,0,128
ON_CLICK gr%,Clk
c% = 1
FOR r% = 2 TO nr%
    READ a$
    WHILE a$<>"F"
        c%=c%+1: Obj$(r%,c%)=a$
        i%=w%: IF c%=2 THEN i% = 0
        Wcel(gr%,a$,r%,c%,i%)
    READ a$
    END_WHILE
    no%(r%) = c%: c% = 1
NEXT r%
READ a$: WHILE a$<>"lsobj": READ a$: END_WHILE: nob = 0
READ a$: WHILE a$<>"F": nob=nob+1: lso$(nob) = a$: READ a$: END_WHILE
FOR i% = 1 TO nob: READ a$: prf$(i%) = a$: NEXT i%
FOR i% = 1 TO nob: READ a$: car$(i%) = a$: NEXT i%

LIST 2:top 2,height(1)+5: width 2,width(0)-100:height 2,60
COLOR 2,255,255,164
FONT_NAME 2,"Consolas": FONT_SIZE 2,10

MEMO 3: TOP 3,TOP(2)+HEIGHT(2)+5: WIDTH 3,WIDTH(2)
h3 = HEIGHT(0)-HEIGHT(1)-HEIGHT(2)-70: HEIGHT 3,h3
FONT_NAME 3,"Consolas": FONT_SIZE 3,10
COLOR 3,255,255,164
BUTTON 6: TOP 6,TOP(2): LEFT 6,LEFT(2)+WIDTH(2): CAPTION 6,"COPIER": ON_CLICK 6,Copier
BUTTON 7: TOP 7,TOP(3): LEFT 7,LEFT(3)+WIDTH(3): CAPTION 7,"COPIER": ON_CLICK 7,Copier
ALPHA 10: TOP 10,TOP(3)+h3+4: LEFT 10,50: COLOR 10,255,255,0
CAPTION 10," Dans la sélection, remplacer:"
EDIT 11: TOP 11,TOP(10)-4: LEFT 11,LEFT(10)+170: WIDTH 11,80
FONT_NAME 11,"Consolas": FONT_SIZE 11,11
ALPHA 12: TOP 12,TOP(10): LEFT 12,LEFT(11)+WIDTH(11)+5: COLOR 12,255,255,0
CAPTION 12," par:"
EDIT 13: TOP 13,TOP(11): LEFT 13,LEFT(12)+30: WIDTH 13,80
FONT_NAME 13,"Consolas": FONT_SIZE 13,11
ALPHA 14: TOP 14,TOP(10): LEFT 14,LEFT(13)+WIDTH(13)+5: COLOR 14,255,255,0
CAPTION 14,"Sélectionner, puis:"
BUTTON 15: TOP 15,TOP(13)-1: LEFT 15,LEFT(14)+120: CAPTION 15,"OK"
ON_CLICK 15,Remplace
dm$ = "": xd% = 1
END
' ==============================================================================
Clk:
x% = MOUSE_X_LEFT_DOWN(gr%): y% = MOUSE_Y_LEFT_DOWN(gr%)
c% = GRID_X_TO_COLUMN(gr%,x%)
r% = GRID_Y_TO_ROW(gr%,y%)
IF c% < 3 THEN RETURN
a$ = Obj$(r%,c%): IF a$ = "" THEN RETURN: ' case vide
FOR i% = 1 TO nob
    IF a$ = lso$(i%) THEN EXIT_FOR
NEXT i%
c$ = car$(i%)
a$ = "i%=i%+1: "+a$+" i%"
IF INSTR(c$,"P")>0 THEN a$ = a$ + ": PARENT i%,#p"
IF INSTR(c$,"T")>0 THEN a$ = a$ + ": TOP i%,#t"
IF INSTR(c$,"L")>0 THEN a$ = a$ + ": LEFT i%,#g"
IF INSTR(c$,"W")>0 THEN a$ = a$ + ": WIDTH i%,#w"
IF INSTR(c$,"H")>0 THEN a$ = a$ + ": HEIGHT i%,#h"
j% = vpr%(i%)+1: vpr%(i%) = j%: b$ = prf$(i%)+STR$(j%)
a$ = a$ + ": "+b$+"=i%"
ITEM_ADD 3,a$
IF COUNT(2) = 0
    ITEM_ADD 2,"DIM i%,"+b$
ELSE
    dm$ = ITEM_READ$(2,xd%)
    IF LEN(dm$) >= 78
        xd% = xd%+1: ITEM_ADD 2,"DIM "+b$
    ELSE
        dm$ = dm$ + ","+b$
        ITEM_DELETE 2,xd%: ITEM_INSERT 2,xd%,dm$
    END_IF
END_IF
RETURN
' ==============================================================================
Copier:
' copier une des zones dans le clipboard
i% = NUMBER_CLICK
IF i% = 6
    j% = 2
ELSE
    j% = 3
END_IF
a$ = ""
FOR i% = 1 TO COUNT(j%)
    a$ = a$ + ITEM_READ$(j%,i%)+CHR$(13)+CHR$(10)
NEXT i%
CLIPBOARD_STRING_COPY a$
RETURN
' ==============================================================================
Remplace:
s1$ = TEXT$(11): s2$ = TEXT$(13)
IF s1$ = "" THEN RETURN
a$ = SELECT_READ$(3): ' zone sélectionnée
ch$ = ""
FOR i% = 1 TO COUNT(3)
    ch$ = ch$+ITEM_READ$(3,i%): IF i%<COUNT(3) THEN ch$=ch$+CHR$(13)+CHR$(10)
NEXT i%
k% = INSTR(ch$,a$): ch1$=LEFT$(ch$,k%-1): ch2$=RIGHT_POS$(ch$,k%+LEN(a$))
k% = INSTR(a$,s1$)
WHILE k%>0
    a$=LEFT$(a$,k%-1)+s2$+RIGHT_POS$(a$,k%+LEN(s1$))
    k% = INSTR_POS(a$,s1$,k%+LEN(s2$))
END_WHILE
ch$ = ch1$ + a$ + ch2$
CLEAR 3: ITEM_ADD 3,ch$
RETURN
' ==============================================================================
SUB Wcel(gr%,a$,r%,c%,wc%)
' Écriture de a$ dans la cellule r%,c% de la grille gr%
' centrage horizontal si wc% <> 0 (= largeur cellule)
IF wc% > 0
    WHILE TEXT_WIDTH(a$,gr%) < wc%: a$ = " " + a$ + " ": END_WHILE
    a$ = RTRIM$(MID$(a$,2,100))
END_IF
GRID_WRITE gr%,r%,c%,a$
END_SUB
' ==============================================================================
Edit 22h petites modifs et erreurs...
23h10 possibilité de faire des remplacements par série


Dernière édition par JL35 le Sam 25 Oct 2014 - 23:09, édité 2 fois
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6998
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Aide à la programmation Empty
MessageSujet: Re: Aide à la programmation   Aide à la programmation EmptySam 25 Oct 2014 - 19:06

JL35 a écrit:
Je ne sis pas sûr que ce soit très utile, c'est à voir, en tout cas ce n'est pas très long, et ça peut donner des idées:

Détrompe-toi JL35.
Même si tu ne sis pas sûr que ce soit très utile, c’est sûr, ça peut donner des idées.

Et merci d’avoir partagé.
Le savoir est la seule chose qui augmente quand on la partage.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




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

Aide à la programmation Empty
MessageSujet: Re: Aide à la programmation   Aide à la programmation EmptySam 25 Oct 2014 - 19:49

En tout cas papydall ce dont je sis sûr c'est que tu as l'oeil bien affûté !
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Aide à la programmation Empty
MessageSujet: Re: Aide à la programmation   Aide à la programmation EmptySam 25 Oct 2014 - 22:06

Pratique ce petit outil !

Je le rajoute a mes utilitaires. Merci JL35

Méfie-toi, un papydall peut en cacher un autre ! drunken drunken
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
JL35




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

Aide à la programmation Empty
MessageSujet: Re: Aide à la programmation   Aide à la programmation EmptySam 25 Oct 2014 - 23:08

Merci Minibug, mais c'est pas fini !

J'ai rajouté une fonction: remplacer une séquence par une autre dans les lignes fabriquées.
Tu as par exemple (c'est n'importe quoi, pour l'exemple):

Aide à la programmation Im410
~~~~~~
~~~~~~
Aide à la programmation Im211
tu peux remplacer dans les 4 options PARENT i%,#p par PARENT i%,cno1 qui est la vraie valeur
(sélectionner les 4 lignes concernées)
ou bien mettre la même valeur pour une série (consécutive) de TOP ou LEFT, ou n'importe quoi d'autre
(voir la fonction en bas).
Il faut d'abord entrer les valeurs dans les deux EDIT du bas, puis sélectionner la zone à la souris, puis 'OK'
(Si on sélectionne d'abord, on perd la sélection en entrant les valeurs).
On peut remplacer une série de paramètres par rien: ne rien mettre dans le 2ème Edit du bas.
(je modifie le programme ci-dessus).


Dernière édition par JL35 le Dim 26 Oct 2014 - 21:57, édité 4 fois
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6998
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Aide à la programmation Empty
MessageSujet: Re: Aide à la programmation   Aide à la programmation EmptySam 25 Oct 2014 - 23:50

Merci JL35.
Vraiment merci.
Ce que tu fais est très instructif pour celui qui veut … s’instruire !
A+
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




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

Aide à la programmation Empty
MessageSujet: Re: Aide à la programmation   Aide à la programmation EmptyDim 26 Oct 2014 - 14:02

Et merci à toi papydall, ça fait plaisir Very Happy
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2691
Date d'inscription : 13/09/2009

Aide à la programmation Empty
MessageSujet: +++   Aide à la programmation EmptyDim 26 Oct 2014 - 18:21

Sacré JL35, toujours de très beaux outils !
D'ailleurs, j'ai jeté un œil sur ce qui
a été fait pendant mon absence,
et parmi les belles choses,
de magnifiques signées JL35
(un scan, un redimensionnement d'images,
un affichage des numéros des objets-système...)
Ouahhh, super ! Encore bravo, JL35 !!!
L'esprit toujours plus vif que jamais !
cheers flower alien flower cheers (pas du tout Sleep )
Laughing
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




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

Aide à la programmation Empty
MessageSujet: Re: Aide à la programmation   Aide à la programmation EmptyDim 26 Oct 2014 - 21:26

N'en jetez plus, la cour est pleine ! arrête les fleurs jjn4, je ne sais plus où les mettre !
Cela dit je vais me reposer un peu en attendant ta production qui ne saurait tarder après une petite phase de remise en train Very Happy
J'ai fait les outils, tu n'as plus qu'à faire les programmes ! Very Happy
Citation :
Sacré JL35, toujours de très beaux outils !
(rassurez-vous, je ne prends ça que pour ma programmation)
Revenir en haut Aller en bas
Contenu sponsorisé





Aide à la programmation Empty
MessageSujet: Re: Aide à la programmation   Aide à la programmation Empty

Revenir en haut Aller en bas
 
Aide à la programmation
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [AIDE] Génération de l'aide Panoramic en format html
» programmation modulaire
» Commentaire de la programmation
» Site sur la programmation sympa
» Port série COM RS232

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Présentation et bavardage-
Sauter vers: