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
» 2D_fill_color
Programmation par Objet avec des Faux_Forms Emptypar leclode Aujourd'hui à 8:44

» Consommation gaz électricité
Programmation par Objet avec des Faux_Forms Emptypar leclode Mer 17 Avr 2024 - 11:07

» trop de fichiers en cours
Programmation par Objet avec des Faux_Forms Emptypar lepetitmarocain Mer 17 Avr 2024 - 10:19

» on_key_down (résolu)
Programmation par Objet avec des Faux_Forms Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Programmation par Objet avec des Faux_Forms Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

» Bataille-navale
Programmation par Objet avec des Faux_Forms Emptypar jjn4 Mer 3 Avr 2024 - 14:08

» Minimiser une fenêtre Panoramic.
Programmation par Objet avec des Faux_Forms Emptypar Pedro Mar 2 Avr 2024 - 13:50

» Récapitulatif ludothèque panoramic jjn4
Programmation par Objet avec des Faux_Forms Emptypar jjn4 Lun 1 Avr 2024 - 18:04

» demande explication KGF pour imprimer en mm
Programmation par Objet avec des Faux_Forms Emptypar JL35 Jeu 28 Mar 2024 - 17:28

» Petit passage furtif
Programmation par Objet avec des Faux_Forms Emptypar Froggy One Mer 27 Mar 2024 - 14:26

» SPIN et aide langage (résolu)
Programmation par Objet avec des Faux_Forms Emptypar leclode Sam 23 Mar 2024 - 15:20

» Aide-mémoire des mots-clés Panoramic
Programmation par Objet avec des Faux_Forms Emptypar papydall Mer 20 Mar 2024 - 21:23

» Je ne comprend pas pourquoi la largeur de la scene 3d change
Programmation par Objet avec des Faux_Forms Emptypar Marc Mar 12 Mar 2024 - 20:06

» Comment télécharger panoramic?
Programmation par Objet avec des Faux_Forms Emptypar lepetitmarocain Sam 9 Mar 2024 - 13:31

» @lepetitmarocain <==> KGFGrid
Programmation par Objet avec des Faux_Forms Emptypar Klaus Dim 3 Mar 2024 - 9:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le Deal du moment : -17%
Casque de réalité virtuelle Meta Quest 2 ...
Voir le deal
249.99 €

 

 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 : 2684
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 : 2684
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.
» Problème avec l'objet Mediaplayer.

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: