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.
AX² + BX + C = 0 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
AX² + BX + C = 0 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
AX² + BX + C = 0 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
AX² + BX + C = 0 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
AX² + BX + C = 0 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
AX² + BX + C = 0 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
AX² + BX + C = 0 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
AX² + BX + C = 0 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
AX² + BX + C = 0 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
AX² + BX + C = 0 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
AX² + BX + C = 0 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
AX² + BX + C = 0 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
AX² + BX + C = 0 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
AX² + BX + C = 0 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
AX² + BX + C = 0 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
Le Deal du moment :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G ...
Voir le deal
599 €

 

 AX² + BX + C = 0

Aller en bas 
+2
Jicehel
papydall
6 participants
AuteurMessage
papydall

papydall


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

AX² + BX + C = 0 Empty
MessageSujet: AX² + BX + C = 0   AX² + BX + C = 0 EmptyLun 10 Déc 2012 - 1:59

Salut tout le monde.

Voici un petit code très documenté : les lignes en REM sont beaucoup plus nombreuses que celle portant une instruction !
Ce code est principalement destiné aux nouveaux et qui veulent s’initier au langage PANORAMIC.

AX² + BX + C = 0 A_hit

Il s’agit d’un programme de résolution de l’équation du second degré :
AX² + BX + C = 0.
C’est en fait, ça entre dans la catégorie ’ Mathématiques’
Code:
' ******************************************************************************

'     2DEGRE.BAS par Papydall

' Résolution de l'équation du second dégré ax² + bx + c = 0

' ******************************************************************************

' D'après le théorème fondamental de l'algèbre des polynômes : tout polynôme de
' dégré N admet exactement N solutions (on dit aussi racines ou zéros). Ces
' racines sont réelles ou complexes, simples ou multiples et si elles sont
' complexes, elles sont conjuguées deux-à-deux.
' Ce programme permet de résoudre un polynôme du second dégré

' Le trinôme du second dégré admet donc deux racines : soit réelles simples ou
' double , soit complexes conjuguées.

' RAPPEL : un nombre complexe s'écrit sous forme z = x + i*y , avec x et y réels
' et i nombre imaginaire dont le carré vaut -1 (i² = -1).
' x s'appelle partie réelle du nombre complexe z ; y s'appelle partie imaginaire
' du nombre complexe z.
' Si y = 0 , le nombre est réel. Si x = 0 , le nombre est imaginaire pur.
' Deux nombres complexes conjugués sont deux nombres complexes dont leurs
' parties imaginaires sont de signes contraires.

' ******************************************************************************

init()     : ' appel de la procédure d'initialisation
demarrer() : ' appel de la procédure de demarrage
end  : ' Cette instruction est INDISPENSABLE ici pour que le programme puisse s'arrêter
       ' et ne tente pas d'exécuter la ligne suivante qui provoquerait une erreur
' ******************************************************************************

' Déclaration des étiquettes "label" , des variables globales, des objets etc..
SUB init()
    label suite    : ' sous-programme pour faire un autre calcul
    label quit     : ' sous-programme pour quitter l'application
    dim a,b,c      : ' les coefficients du trinôme
    dim x1,x2      : ' les racines réelles
    dim re,im      : ' Les racines complexes
    dim complexe%  : ' flag pour indiquer si les racines sont complexes (=1) ou réelles (=0)
    color 0,0,0,0  : font_color 0,0,255,0 : ' fond noir, texte vert
    font_size 0,12 : font_bold 0 : ' Taille de la fonte 12, écriture en gras
    caption 0,"Résolution de l'équation du second dégré : AX² + BX + C = 0"
    ' création de 2 boutons : l'un pour poursuivre, l'autre pour quitter
    button 1 : top 1,250 : left 1,50  : width 1, 100
    on_click 1,suite : ' si on clique sur ce bouton, on se branche sur le sous-programme suite
    button 2 : top 2,250 : left 2,300 : width 2, 80
    on_click 2,quit : ' si on clique sur ce bouton, on se branche sur le sous-programme quit
    caption 1,"Autre calcul" : caption 2,"Quitter" : ' textes des 2 boutons
END_SUB
' ******************************************************************************
' Procédure de saisie des coefficients a,b,c
SUB saisie()
    DIM_LOCAL r$ : ' texte de la saisie
    ' Saisie du coefficient A
    ' Cette saisie se fait par 2 boucles REPEAT :
    repeat       : ' Cette boucle assure que le coefficient soit différent de 0
         repeat  : ' Cette boucle assure que le coefficient soit numérique
              r$ = message_input$("Entrer le paramètre A (différent de zéro)","A = ","")
         until numeric(r$) = 1 : ' Si on est ici, c'est qu'on a saisie bien une valeur numérique
    until val(r$) <> 0 : ' Si on est ici, c'est que la valeur saisie est bien différente de 0
    A = val(r$)  : ' On récupère la valeur saisie dans la variable A
    ' Saisie du coefficient B
    ' Cette fois, il n'est pas nécessaire que la valeur soit différente de 0
    ' mais seulement qu'elle soit numérique
    repeat
      r$ = message_input$("Entrer le paramètre B","B = ","")
    until numeric(r$) = 1
    B = val(r$)
    ' Saisie du coefficient C
    ' identique à la saisie du coefficient B
    repeat
      r$ = message_input$("Entrer le paramètre C","C = ","")
    until numeric(r$) = 1
    c = val(r$)
END_SUB
' ******************************************************************************
' Procédure de calcul de la solution
SUB resol_2degre(AX2,BX,C)
    DIM_LOCAL p,q,delta : ' variables locales utilisées pour le calcul
       p = BX/AX2 : q = C/AX2 : delta = (p/2)*(p/2)-q
       if delta < 0           : ' les racines sont complexes conjuguées
          complexe% = 1       : ' on met le flag à 1
          delta = abs(delta)  : ' On prend la valeur absolue pour le calcul
          re = 0-(p/2) : im = sqr(delta) : ' parties réelle et imaginaire de la solution
       else                   : ' les racine sont réelles
          complexe% = 0
          x1 = 0-(p/2) + sqr(delta) : x2 = 0-(p/2) - sqr(delta) : ' calcul des 2 racines
       end_if
END_SUB
' ******************************************************************************
' Cette procédure fait appel à la procédure de saisie et à celle de calcul
SUB demarrer()
    dim_local a$,b$,c$ : ' Pour un affichage correct
    cls  : ' pour travailler sur un écran propre
    hide 1 : hide 2 : ' avant le calcul, on cache les 2 boutons
    saisie() : ' Appel de la procédure de saisie des coefficients A,B,C
    resol_2degre(a,b,c) : ' Appel de la procédure de la recherche de la solution
    ' On affiche le resultat de notre effort !!!
    if a = 1  then a$ = "x² " : else : a$ = str$(a)+"x² " : ' Pour ne pas afficher 1x²
    if a = -1 then a$ = "-x²" : ' pour ne pas afficher -1x²
    if b = 1  then b$ = "+x " : else : b$ = str$(b)+"x " : ' Pour ne pas afficher 1x
    if b = -1 then b$ = "-x " : ' pour ne pas afficher -1x
    if b > 1  then b$ = "+"+str$(b)+"x "
    if b = 0  then b$ = ""
    if c = 0  then c$ = " = 0" : else : c$ = str$(c)+" = 0 :"
    if c > 0  then c$ = "+"+c$
    print_locate 50,20  : ' on positionne le curseur pour l'affichage
    print "La solution de : "; a$+b$+c$
    if complexe% = 0   : ' Les racines sont-elles réelles ?
       ' oui, les racines sont réelles
       print_locate 50,50
       if x1 = x2      : ' est-ce une racine double ?
          print "Une racine réelle double :"
          print_locate 50,80 : print "X1 = X2 = " ;x1
       else : ' les racines sont distinctes
          print "Deux racines réelles distinctes :"
          print_locate 50,80 : print "X1 = " ;x1
          print_locate 50,100 : print "X2 = " ;x2
       end_if
    else  : ' les racines sont belles et bien complexes
       print_locate 50,50 : print "Deux racines complexes conjuguées :"
       print_locate 50,80 : print "X1 = "; re;" + ";im; "i"
       print_locate 50,100 : print "X2 = "; re;" -  ";im; "i"
    end_if
    show 1 : show 2 : ' on montre les 2 boutons
END_SUB
' ******************************************************************************
' sous-programme pour un autre calcul
suite:
   ' l'utilisateur a cliqué sur le bouton 'Autre calcul'
   demarrer()
return
' ******************************************************************************
' sous-programme pour quitter l'application
quit:
   ' l'utilisateur a cliqué sur le bouton 'quitter'
   ' on veut s'assurer par une confirmation de quitter, sinon on ne fait rien
   if message_confirmation_yes_no("Vous voulez vraiment quitter ?") = 1 then terminate
return
' ************************** FIN ***********************************************

Bien sûr, les moins nouveaux, les anciens et même les plus anciens peuvent eux aussi utiliser ce programme !

AX² + BX + C = 0 B_shake


Dernière édition par papydall le Mar 24 Oct 2017 - 23:51, édité 1 fois
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Invité
Invité




AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyLun 10 Déc 2012 - 2:40

L'informatique est un monde où on se casse beaucoup la tête. Le temps chez moi est beaucoup plus long à me casser la tête, et entrer dans le programme des autres, alors que je bloque sur ce que je fais, est que je n'ai pas le temps d'entrer dans vos programmes, malgré l'envie d'essayer. Un monde fou! Mais tu as un titre très expressif qui peut me permettre d'aller voir un jour ou l'autre.
Sleep
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyLun 10 Déc 2012 - 7:57

1/ Marche nickel
2/ En effet superbement commenté et pouvant être directement intégré dans les tutos rubrique mathématiques Wink
Revenir en haut Aller en bas
papydall

papydall


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

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyLun 10 Déc 2012 - 16:25

Cosmos 70 et Jicehel merci pour vos interventions.

Mais, Cosmos 70, avoue aussi que l’informatique est aussi un monde où l'on prend beaucoup de plaisirs, justement en se cassant la tête !

AX² + BX + C = 0 Cassetete
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyLun 10 Déc 2012 - 18:43

Plus qu'à te trouver un nouvel objectif Papydall.
Je me demande sur quoi tu vas te lancer maintenant...
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyLun 10 Déc 2012 - 19:59

Papydall a écrit:
Mais, Cosmos 70, avoue aussi que l’informatique est aussi un monde où l'on prend beaucoup de plaisirs, justement en se cassant la tête !

Je crois qu'on en est tous là Very Happy . C'est du masochisme intellectuel. cherry
Revenir en haut Aller en bas
papydall

papydall


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

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyLun 10 Déc 2012 - 22:32

Jicehel a écrit:
Plus qu'à te trouver un nouvel objectif Papydall.
Je me demande sur quoi tu vas te lancer maintenant...
Peut-être je vais rester dans les maths! AX² + BX + C = 0 Rire-20060614

@Jean Claude
JE CONFIRME ! affraid
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
maelilou




Nombre de messages : 180
Age : 76
Localisation : Ardennes françaises
Date d'inscription : 02/05/2012

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyMer 12 Déc 2012 - 10:41

Merci Papydall.

Je vais regarder le programme.
Ce n'est pas tant les lignes de programmation de calcul qui m'ennuie, mais ces histoires de Form , Combo, Edit etc.

Dont je n'ai toujours pas compris exactement leur rôle.

Actuellement les quelques essais que j'ai fait sont dans Form 0 qui pourtant d’après ce que j'ai compris n'est que le 1er "récipient" ?

En fait il faudrait que je m'y attelle une semaine d'affilée...
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyMer 12 Déc 2012 - 11:10

Un conseil: fais, un par un, les tutos que Jack a mis en ligne !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyMer 12 Déc 2012 - 12:28

Je confirme, les tutos sont très bien fait sur le site. Je te remets le lien:
http://panoramic-language.pagesperso-orange.fr/French/TUTORIELS.htm
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyMer 12 Déc 2012 - 12:48

Je crois que le problème que rencontre maelilou c'est les termes employés pour définir un interface graphique sous windows.
un FORM, un bouton, un EDIT, un CONTAINER etc... comment tout cela s'agence...

Revenir en haut Aller en bas
http://nardo26.lescigales.org
maelilou




Nombre de messages : 180
Age : 76
Localisation : Ardennes françaises
Date d'inscription : 02/05/2012

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyMer 12 Déc 2012 - 13:11

Exact Nardo

J'ai programmé pendant des années dans une seule fenêtre... (1971 à 93)
Et pas sous Windows.

D'où mon embarras.

Mais je le redis, c'est surtout de moi que cela vient , car je ne m'y tiens pas suffisamment.

Mais ça va venir !

Et là Klaus attention !!!

Non je rigole...
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyMer 12 Déc 2012 - 13:45

Non, non, tu as raison et je te souhaite un jour d'avoir autant de bonnes idées et de programme que Klaus. C'est un bel objectif Wink
Revenir en haut Aller en bas
papydall

papydall


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

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyMer 12 Déc 2012 - 13:49

Salut maelilou.

J’étais dans la même situation que toi.
Je n’ai découvert PANORAMIC qu’en début de cette même année 2012.
Je me suis inscrit sur ce Forum le 3 Mars 2012.
A cette époque, je ne savais programmer que sous DOS (d’ailleurs, durant plusieurs années avant, j’ai cessé tout contact avec l’informatique).
Maintenant je me débrouille tant bien que mal et ce grâce à l’excellente communauté panoramicienne que je salue tous les membres.

Quand on a appris à conduire une deux-chevaux, on peut passer à une 4X4 sans trop de dégâts, n’est-ce pas ?


Dernière édition par papydall le Lun 31 Déc 2012 - 21:55, édité 1 fois
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyMer 12 Déc 2012 - 13:51

Eh bien, commence par regarder ce petit programme que j'ai fait pour toi. Il montre fenêtre de base avec quelques objets. Parmi eux, il y a un bouton "Saisie" qui permet d'ouvrir une deuxième fenêtre, dans laquelle on peut saisir une ligne de texte. Lorsqu'on valide cette fenêtre, ce texte sera ajouté à un mémo dans la fenêtre de base, mais ce mémo ne peut pas être modifié par la fenêtre de base.

Il y a des commentaires clairs, qui devraient te permettre de voir l'usage des form, des objets et des évènements.

Voici le source:
Code:
' demo_form_objets.bas

' voici un programme qui montre une fenêtre avec deux zones en saisie,
' un bouton qui lance une fenêtre de saisie, et un
' memo "fixe" dans lequel on va coller ce qui est saisi dans
' la fenêtre de saisie. La fenêtre de saisie contient une zone
' de saisie, un bouton d'annulation et un bouton de validation.
'
' Une FORM est une fenêtre Windows. Elle peut contenir un ou
' plusieurs objets Panoramic (EDIT, MEMO, BUTTON, ...).
' Un programme Panoramic peut être composé d'une seule form ou
' en avoir plusieurs.

' ============== déclarations
' === les labels pour les routines évènement
label ouvre_saisie, autoriser, annuler, valider
' === variables

' ============== code d'initialisation du programme
' === définir les objets de la fenêtre principale
caption 0,"Démo de forms et d'objets"
edit 1 : top 1,10 : left 1,10
check 2 : top 2,40 : left 2,10 : width 2,200
  caption 2,"Autoriser le bouton de saisie"
  on_click 2,autoriser
memo 3 : top 3,10 : left 3,250 : width 3,200 : height 3,400
  inactive 3
button 4 : top 4,100 : left 4,10 : caption 4,"Saisie"
  inactive 4 : on_click 4,ouvre_saisie

' === définir la fenêtre de saisie
form 100 : ' on crée une fenêtre
hide 100 : ' on la cache aussitôt
top 100,200 : left 100,300  : ' sa position lorsqu'elle sera visible
command_target_is 100  : ' les objets suivants seront créés dans cette fenêtre
edit 101 : top 101,30 : left 101,10 : width 101,200
button 102 : top 102,80 : left 102,30 : caption 102,"Annuler"
  on_click 102,annuler
button 103 : top 103,80 : left 103,230 : caption 103,"Valider"
  on_click 103,valider

end

' ================== routines évènement des objets
' === cette routine autorise ou interdit la saisie
autoriser:
  if checked(2)=1
    active 4
  else
    inactive 4
  end_if
  return
 
' === cette routine ouvre la fenêtre de saisie
ouvre_saisie:
  inactive 0  : ' ne plus accepter des saisies dans la fenêtre principale
  show 100    : ' montrer la fenêtre de saisie
  return

' === annuler la saisie par la form 100
annuler:
  text 101,""  : ' effacer le texte éventuellement saisi
  hide 100    : ' cacher la fenêtre de saisie
  active 0    : ' et réactiver la fenêtre principale
  to_foreground 0 : ' remettre la fenêtre principale en avant-plan
  return
 
' === valider la saisie par la form 100
valider:
  if trim$(text$(101))=""  : ' est-ce que rien n'a été saisie ?
    message "Il faut saisir quelque chose !"
    return
  end_if
  item_add 3,text$(101)  : ' mémoriser le texte saisi
  text 101,""  : ' effacer le texte éventuellement saisi
  hide 100    : ' cacher la fenêtre de saisie
  active 0    : ' et réactiver la fenêtre principale
  to_foreground 0 : ' remettre la fenêtre principale en avant-plan
  return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


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

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyMer 12 Déc 2012 - 14:13

Maître Klaus, bravo!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
maelilou




Nombre de messages : 180
Age : 76
Localisation : Ardennes françaises
Date d'inscription : 02/05/2012

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyMer 12 Déc 2012 - 14:38

Merci pour cette attention. c'est vraiment sympa.

Je vais regarder cela.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyMer 12 Déc 2012 - 22:14

Je ne sais pas vous, mais j'avais un petit problème d'affichage en avant plan de la fenêtre 0, j'ai donc modifié un peu la procédure valider. Mais bon, j'étais peut être le seul à avoir ce petit problème.

Code modifié
Code:
' demo_form_objets.bas

' voici un programme qui montre une fenêtre avec deux zones en saisie,
' un bouton qui lance une fenêtre de saisie, et un
' memo "fixe" dans lequel on va coller ce qui est saisi dans
' la fenêtre de saisie. La fenêtre de saisie contient une zone
' de saisie, un bouton d'annulation et un bouton de validation.
'
' Une FORM est une fenêtre Windows. Elle peut contenir un ou
' plusieurs objets Panoramic (EDIT, MEMO, BUTTON, ...).
' Un programme Panoramic peut être composé d'une seule form ou
' en avoir plusieurs.

' ============== déclarations
' === les labels pour les routines évènement
label ouvre_saisie, autoriser, annuler, valider
' === variables

' ============== code d'initialisation du programme
' === définir les objets de la fenêtre principale
caption 0,"Démo de forms et d'objets"
edit 1 : top 1,10 : left 1,10
check 2 : top 2,40 : left 2,10 : width 2,200
  caption 2,"Autoriser le bouton de saisie"
  on_click 2,autoriser
memo 3 : top 3,10 : left 3,250 : width 3,200 : height 3,400
  inactive 3
button 4 : top 4,100 : left 4,10 : caption 4,"Saisie"
  inactive 4 : on_click 4,ouvre_saisie

' === définir la fenêtre de saisie
form 100 : ' on crée une fenêtre
hide 100 : ' on la cache aussitôt
top 100,200 : left 100,300  : ' sa position lorsqu'elle sera visible
command_target_is 100  : ' les objets suivants seront créés dans cette fenêtre
edit 101 : top 101,30 : left 101,10 : width 101,200
button 102 : top 102,80 : left 102,30 : caption 102,"Annuler"
  on_click 102,annuler
button 103 : top 103,80 : left 103,230 : caption 103,"Valider"
  on_click 103,valider

end

' ================== routines évènement des objets
' === cette routine autorise ou interdit la saisie
autoriser:
  if checked(2)=1
    active 4
  else
    inactive 4
  end_if
  return

' === cette routine ouvre la fenêtre de saisie
ouvre_saisie:
  inactive 0  : ' ne plus accepter des saisies dans la fenêtre principale
  show 100    : ' montrer la fenêtre de saisie
  return

' === annuler la saisie par la form 100
annuler:
  text 101,""    : ' effacer le texte éventuellement saisi
  hide 100        : ' cacher la fenêtre de saisie
  active 0        : ' et réactiver la fenêtre principale
  to_foreground 0 : ' remettre la fenêtre principale en avant-plan
  return

' === valider la saisie par la form 100
valider:
  if trim$(text$(101))=""  : ' est-ce que rien n'a été saisie ?
    message "Il faut saisir quelque chose !"
    return
  end_if
  item_add 3,text$(101)  : ' mémoriser le texte saisi
  text 101,""    : ' effacer le texte éventuellement saisie
  to_foreground 0 : ' remettre la fenêtre principale en avant-plan
  hide 100        : ' cacher la fenêtre de saisie
  active 0        : ' et réactiver la fenêtre principale
  return
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyMer 12 Déc 2012 - 22:17

??????????????????

Ca marchait très bien, pourtant ! Je ne vois pas l'intérêt de mettre to_foreground AVANT de réactiver la form 0...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyMer 12 Déc 2012 - 22:21

En fait chez moi quand on valide, ce n'est pas la form 0 qui repasse devant mais la fenêtre de Panoramic Editor. En modifiant l'ordre, ça se passe bien.
Après, si le problème ne se pose que chez moi, ne pas tenir compte de cette modif. je partage juste si le problème à lieu aussi chez d'autres Wink
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 EmptyMer 12 Déc 2012 - 22:33

Bizarre. J'ai retesté la version originale - je n'arrive pas à produire ce que tu décris. Mais soit - si ta version marche, tant mieux.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





AX² + BX + C = 0 Empty
MessageSujet: Re: AX² + BX + C = 0   AX² + BX + C = 0 Empty

Revenir en haut Aller en bas
 
AX² + BX + C = 0
Revenir en haut 
Page 1 sur 1

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: