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
Programmation par Objet avec des Faux_Forms Emptypar papydall Aujourd'hui à 2:21

» Gestion d'un système client-serveur.
Programmation par Objet avec des Faux_Forms Emptypar Klaus Hier à 23:59

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Programmation par Objet avec des Faux_Forms Emptypar Marc Hier à 12:14

» @Jack
Programmation par Objet avec des Faux_Forms Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Programmation par Objet avec des Faux_Forms Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Programmation par Objet avec des Faux_Forms Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Programmation par Objet avec des Faux_Forms Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Programmation par Objet avec des Faux_Forms Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Programmation par Objet avec des Faux_Forms Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Programmation par Objet avec des Faux_Forms Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Programmation par Objet avec des Faux_Forms Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Programmation par Objet avec des Faux_Forms Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Programmation par Objet avec des Faux_Forms Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
Programmation par Objet avec des Faux_Forms Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Programmation par Objet avec des Faux_Forms 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
-50%
Le deal à ne pas rater :
-50% Baskets Nike Air Huarache Runner
69.99 € 139.99 €
Voir le deal

 

 Programmation par Objet avec des Faux_Forms

Aller en bas 
2 participants
AuteurMessage
Jean Claude

Jean Claude


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

Programmation par Objet avec des Faux_Forms Empty
MessageSujet: Programmation par Objet avec des Faux_Forms   Programmation par Objet avec des Faux_Forms EmptyVen 11 Déc 2009 - 18:18

Bonjour à tous,
Je vous livre un code qui sert de base à la programmation par objets avec des Faux_Forms.
Un conseil mettez le dans l'EDITOR PANORAMIC pour bien visualiser les REM

Voici le code et ensuite un petit tuto que vous pouvez copier



Code:

' Faux Forms

' dim pour faux form (réservés)
dim widthnf(9000),heightnf(9000)
dim x,y:x=screen_x:y=screen_y
dim nf,topnf,leftnf,no,topno,leftno,widthno,heightno
dim n,r,v,b,epc,lbq,hbq
dim capnf$,txtnf$,form$,fontname$,alpha$,capno$,combo$,edit$,button$,list$

' vos dim à vous
dim a$,b$

' ------------------------------------------------------------------------------
' label pour faux form et création d'objets (réservés)
label form$,alpha$,combo$,edit$,button$,list$
label form_nf,quit

rem ' vos label à vous
label init,debut1,debut2,suit1,suit2,label1,label2,label3,label4,clear1,clear2,fin1,fin2

' ==============================================================================
' FORM 0 vous pouvez changer le nom, la couleur, la police
nf=0:r=200:v=250:b=255:fontname$="Courier New"
full_space 0:color nf,r,v,b::caption nf,"NOM DU PROGRAMME"
' ==============================================================================
' LE MENU
main_menu 9000
sub_menu 9001 :caption 9001,"      Accès      " : parent 9001,9000: ' Accès
sub_menu 9002 :caption 9002,"    Les Programmes    " : parent 9002,9000:hide 9002

' OPTIONS DU MENU ACCES
sub_menu 9101 : caption 9101," ENTRER  " : parent 9101,9001:on_click 9101,init
sub_menu 9102 : caption 9102," QUITTER " : parent 9102,9001:on_click 9102,quit

' OPTIONS DU MENU PROGRAMME
sub_menu 9201 : caption 9201," FORM 100  " : parent 9201,9002:on_click 9201,debut1
sub_menu 9202 : caption 9202," FORM 200  " : parent 9202,9002:on_click 9202,debut2

' ===========================================================================100
' CREATION DU FAUX FORM 100
nf=100:no=nf:widthnf(nf)=700:heightnf(nf)=700:capnf$=" FORM 100":fontname$="Fixedsys"
r=100:v=240:b=255:epc=15:lbq=18:hbq=18:gosub form$:hide nf
no=no+1:r=255:v=200:b=200:fontname$="Fixedsys":txtnf$=caption$(nf)
heightno=hbq:widthno=widthnf(nf)-(lbq*4):leftno=widthnf(nf)-widthno-(lbq*3):topno=hbq
gosub list$:item_add no,txtnf$:font_name no,fontname$
no=no+1:heightno=hbq:widthno=lbq:leftno=(widthnf(nf)-(lbq*2)):topno=hbq:capno$="X":gosub button$
no=no+1:topno=heightnf(nf)-40:leftno=15:widthno=75:heightno=25:fontname$="System":capno$="CLEAR":gosub button$
on_click nf+2,fin1:on_click nf+3,clear1

' Création de vos objets du faux form 100
no=no+1:topno=60:leftno=20:widthno=100:heightno=25:capno$="boutton A":gosub button$:hide no
no=no+1:topno=100:leftno=20:widthno=100:heightno=25:capno$="boutton B":gosub button$:hide no

' ===========================================================================200
' CREATION D'UN FAUX FORM 200 [j'ai copier de 41 à 48 et changer les valeur de widthnf(nf) et heightnf(nf)]
nf=200:no=nf:widthnf(nf)=900:heightnf(nf)=500:capnf$=" FORM 200":fontname$="Fixedsys"
r=100:v=240:b=255:epc=15:lbq=18:hbq=18:gosub form$:hide nf
no=no+1:r=255:v=200:b=200:fontname$="Fixedsys":txtnf$=caption$(nf)
heightno=hbq:widthno=widthnf(nf)-(lbq*4):leftno=widthnf(nf)-widthno-(lbq*3):topno=hbq
gosub list$:item_add no,txtnf$:font_name no,fontname$
no=no+1:heightno=hbq:widthno=lbq:leftno=(widthnf(nf)-(lbq*2)):topno=hbq:capno$="X":gosub button$
no=no+1:topno=heightnf(nf)-40:leftno=15:widthno=75:heightno=25:fontname$="System":capno$="CLEAR":gosub button$
on_click nf+2,fin2:on_click nf+3,clear2

' Création de vos objets du faux form 200
no=no+1:topno=60:leftno=20:widthno=100:heightno=25:capno$="boutton 1":gosub button$:hide no
no=no+1:topno=100:leftno=20:widthno=100:heightno=25:capno$="boutton 2":gosub button$:hide no

' ==============================================================================
end
' ==========================================================================INIT
init:
' gestion du menu
show 9002
return
' ===========================================================================100
' code correspondant a l'option debut du menu et au form 100
debut1:
hide 0:rem ' ici vous pouvez aussi chosir inactive
rem ' ne pas oublié de déclarer le N° du Faux Form (nf=Multiple de 100 . MAXI 8900)
nf=100:show nf:gosub form_nf
rem ' à partir d'ici votre code pour form 100
suit1:
show nf+4:on_click nf+4,label1
show nf+5:on_click nf+5,label2
return

label1:
a$=" AAAAAAAAAAAAAAAAAAAAAAAA "
print_locate 20,200:print a$
return

label2:
b$= " BBBBBBBBBBBBBBBBBBBBBBB "
print_locate 20,220:print b$
return

rem                  ' les Labels qui sont indispensables
clear1:
a$="":b$=""
for n=4 to 5:hide nf+n:next n
goto debut1
return

fin1:
gosub clear1
hide nf:show 0:rem ' ou active
return
' fin du code correspondant a l'option debut du menu debut1 et au form 100
' ===========================================================================200
' code correspondant a l'option debut du menu debut2 et au form 200
debut2:
hide 0:rem ' ici vous pouvez aussi chosir inactive
nf=200:show nf:gosub form_nf:rem ' ne pas oublié de déclarer le N° fu Faux Form (Multiple de 100)
' à partir d'ici votre code pour form 200
suit2:
show nf+4:on_click nf+4,label3
show nf+5:on_click nf+5,label4

return

label3:
a$=" 111111111111111111 "
print_locate 20,200:print a$
return

label4:
b$= " 222222222222222222 "
print_locate 20,220:print b$
return

rem                ' ne pas oublier de changer clear1 par clear2
clear2:
a$="":b$=""
for n=4 to 5:hide nf+n:next n
goto debut2
return

rem                ' ne pas oublier de changer fin1 par fin2
fin2:
gosub clear2
hide nf:show 0:rem ' ou active
return
rem ' vous pouvez faire une sortie du form sans faire le clear (à faire)

' fin du code correspondant a l'option debut du menu debut2 et au form 200

' ===========================================================================300
'ICI votre nouvean code correspondant a l'option ???? du menu et au form 300
' avec copier/coller créer le form 300 et les label debut3,suit3,clear3,fin3
' fin du code

' ==============================================================================
' création des objets (vous pouvez en faire d'autres sur le même principe)
button$:
button no:top no,topno:left no,leftno:width no,widthno:height no,heightno
font_color no,r,v,b:font_name no,fontname$:caption no,capno$
return

list$:
list no:top no,topno:left no,leftno:width no,widthno:height no,heightno
color no,r,v,b
return

edit$:
edit no:top no,topno:left no,leftno:width no,widthno:height no,heightno
color no,r,v,b
return

combo$:
combo no:top no,topno:left no,leftno:width no,widthno:height no,heightno
color no,r,v,b
return

alpha$:
alpha no:top no,topno:left no,leftno:width no,widthno:height no,heightno
font_color no,r,v,b:font_name no,fontname$:caption no,capno$
return
' ==============================================================================
' Ne rien changer sous cette ligne (sauf font, color, pen_width.. si vous le souhaitez)
' ==============================================================================
' création automatique du faux form
form$:
topnf=(y-heightnf(nf))/2:leftnf=(x-widthnf(nf))/2:rem ' centrage automatique du faux form
form nf:top nf,topnf:left nf,leftnf:width nf,widthnf(nf):height nf,heightnf(nf)
color nf,r,v,b:font_name no,fontname$:caption nf,capnf$
command_target_is nf:print_target_is nf
return

form_nf:
command_target_is nf:print_target_is nf
border_hide nf:2d_target_is nf
2d_pen_color 0,0,255:2d_pen_width epc: ' couleur et epaisseur du cadre du form
2d_rectangle 1,1,widthnf(nf),heightnf(nf)
heightno=hbq:widthno=widthnf(nf)-(lbq*4):leftno=widthnf(nf)-widthno-(lbq*3):topno=hbq
2d_pen_color 0,50,255:2d_pen_width 4:' couleur et epaisseur du cadre du titre du form
2d_rectangle leftno-2,topno-2,leftno+widthno+3,topno+heightno+4
heightno=hbq:widthno=widthnf(nf)-(lbq*4):leftno=widthnf(nf)-widthno-(lbq*3):topno=hbq
2d_pen_color 255,0,0:2d_pen_width 3:' couleur et epaisseur du cadre du bouton de fermeture du form
2d_rectangle leftno+widthno+(lbq*2)+2,topno-2,leftno+widthno+lbq-2,topno+heightno+2
command_target_is nf:print_target_is nf
return

quit:
terminate

Le tuto
Code:

Faux Form sous PANORAMIC (Jean-Claude)

Pourquoi un faux Form:
    - pour pouvoir coder avec beaucoup de copier coller
    - gérer la sortie du faux form
    - avoir un form pour chaque option de Main_Menu

conditions:
    - vous devez numéroter les Sub_Menu comme dans le programme
    - les numéro d'objet de form 0 vont de 1 à 99
    - les Faux Form doivent être numéroter de 100 en 100 (200,300,400,..)
    - vous avez droit à 89 faux form
    - il reste disponible 96 objets par form
    - ne pas utiliser les variables réservés


liste des variables du Faux Form,
de ses objets et utilisation

taille de l'écran x et y 
----------------------------
variables [nf]:

nf              = N° du faux form
widthnf(nf) = largeur du faux form
heightnf(nf)= hauteur du faux form
topnf        = top du faux form
leftnf        = left du faux form
capnf$      = Caption d faux_form
lbq            = largeur du boutton de fermeture
hbq          = hauteur du boutton de fermeture et du titre
------------------------------------
les variables [no]:
no          = N° de l'ojet du faux form
topnp      = top de l'ojet du faux form
leftno      = left de l'ojet du faux form
widthno  = width de l'ojet du faux form
height    = height de l'ojet du faux form
capno$    = caption de l'ojet (si nécéssaire)
------------------------------
variables communes objets et faux_form
r          = rouge
v          = vert
b          = bleu
fontname$ = font_name du faux_form ou de l'objet
---------------------------

pour créer un faux_form copier/coller le précédent
et gérer les variables [nf]

pour créer un ojet copier/coller une ligne correspondant
au type d'objet souhaité et gérer les variables [no]

Vous disposez d'un nombre important de rem
pour les explication dans le code-source

Bonne programmation

A+
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Programmation par Objet avec des Faux_Forms Empty
MessageSujet: Re: Programmation par Objet avec des Faux_Forms   Programmation par Objet avec des Faux_Forms EmptyVen 11 Déc 2009 - 18:33

Je viens de modifier le tuto, il manquait des variables.
Revenir en haut Aller en bas
jjn4

jjn4


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

Programmation par Objet avec des Faux_Forms Empty
MessageSujet: ???   Programmation par Objet avec des Faux_Forms EmptyVen 11 Déc 2009 - 22:58

Désolé, mais malgré ton tutoriel, je n'ai pas compris pourquoi tu inventes des faux-form alors qu'on peut en faire des vrais, apparemment avec les même avantages (???)
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Invité
Invité




Programmation par Objet avec des Faux_Forms Empty
MessageSujet: Re: Programmation par Objet avec des Faux_Forms   Programmation par Objet avec des Faux_Forms EmptyVen 11 Déc 2009 - 23:26

Ouais ! Je suis d'accord avec jjn4
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Programmation par Objet avec des Faux_Forms Empty
MessageSujet: Re: Programmation par Objet avec des Faux_Forms   Programmation par Objet avec des Faux_Forms EmptySam 12 Déc 2009 - 9:45

à JJN4 et Nicolas, et tous

Mon souci part d'une chose simple. Avec FORM tu ne controle pas le boutton de fermeture (en haut à droite) donc l'utilisateur peut sortir du programme par ce biais. Et c'est là, que, dans ce que je construis actuellement, le bas blesse car le programme n'a pas gérer la sortie et du coup certains fichiers n'ont pas été tenus à jour. Et quand l'utilisateur retourne dans le programme çà ne marche plus.
Tu vas me dire BORDER_HIDE et un bouton de sortie, c'est vrai, c'est une solution plus simple. Mais le FORM n'est pas beau.
L'aute avantage que j'y trouve c'est que quand tu code des morceau qui se ressemble, tu peux utiliser le copier/coller.

S'il y avait une possibilité de controler si l'utilisateur sort par la croix rouge en haut à droite, çà arrangerait tout. A ce jour, je n'en connais pas. Si quelqu'un a une combine, je suis preneur.

A+
Revenir en haut Aller en bas
jjn4

jjn4


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

Programmation par Objet avec des Faux_Forms Empty
MessageSujet: Ah   Programmation par Objet avec des Faux_Forms EmptySam 12 Déc 2009 - 12:15

Ah, cette fois, j'ai compris.
Effectivement, c'est un problème que j'avais remarqué.
Si on donne un programme à un utilisateur novice
(vous savez, le genre qui cherche pendant une heure
où se trouve la touche A sur le clavier)
il peut sortir du form par la croix rouge (l'abruti !)
au lieu d'utiliser le bouton réservé à cet usage
si bien que, avec le form 0 qu'on avait caché (hide)
le programme part en sucette
ou alors ça n'enregistre pas le travail effectué
et après, on est taxé de programmateur d'opérette ! (un comble !)
Alors, c'est vrai que c'est un problème que tes faux form peuvent régler.
Ceci dit, si les border_hide ne sont pas jolis,
tes faux form ne sont pas très jojos non plus.
Mais je ne vois pas d'autre solution.
Peut-être que Jack, quand il en sera à réformer les form
pourra en profiter pour créer des border sans bouton exit
ou alors où on puisse contrôler les 3 boutons en haut à droite.
(Mais rien ne presse, bien sûr) chi va piano va sano...
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Jean Claude

Jean Claude


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

Programmation par Objet avec des Faux_Forms Empty
MessageSujet: Re: Programmation par Objet avec des Faux_Forms   Programmation par Objet avec des Faux_Forms EmptySam 12 Déc 2009 - 12:37

Citation :
tes faux form ne sont pas très jojos non plus

Pour le code ci-dessus, c'est vrai. Mais rien n'empeche de de les modifier.

Quand à des commandes pour gérer les sorties de Form, tu as raison rien ne presse, Jack a d'autres chats à fouetter...

A+
Revenir en haut Aller en bas
Contenu sponsorisé





Programmation par Objet avec des Faux_Forms Empty
MessageSujet: Re: Programmation par Objet avec des Faux_Forms   Programmation par Objet avec des Faux_Forms Empty

Revenir en haut Aller en bas
 
Programmation par Objet avec des Faux_Forms
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Problème avec l'objet WB.
» Problème avec l'objet WB.
» Problème avec l'objet DTP.
» Problème avec l'objet WB ou non.
» Bug avec grans numéros d'objet

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: