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.
Comment terminer une saisie dans un objet par entrée Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Comment terminer une saisie dans un objet par entrée Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Comment terminer une saisie dans un objet par entrée Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Comment terminer une saisie dans un objet par entrée Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Comment terminer une saisie dans un objet par entrée Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Comment terminer une saisie dans un objet par entrée Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Comment terminer une saisie dans un objet par entrée Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Comment terminer une saisie dans un objet par entrée Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Comment terminer une saisie dans un objet par entrée Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Comment terminer une saisie dans un objet par entrée Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Comment terminer une saisie dans un objet par entrée Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Comment terminer une saisie dans un objet par entrée Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Comment terminer une saisie dans un objet par entrée Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Comment terminer une saisie dans un objet par entrée Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Comment terminer une saisie dans un objet par entrée 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 :
LEGO Icons 10331 – Le martin-pêcheur
Voir le deal
35 €

 

 Comment terminer une saisie dans un objet par entrée

Aller en bas 
5 participants
Aller à la page : 1, 2, 3  Suivant
AuteurMessage
Jean Claude

Jean Claude


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

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée EmptyDim 31 Mai 2009 - 19:29

Bonsoir,

J'essai de terminer une saisie dans un objet EDIT par la touche entrée du clavier. J'ai essayé scancode, inkey$, input.....

a$=inkey$
nt = asc(a$)
if nt = 13 then ....

ou

nt=scancode
if nt=13 then ....

Rien n'y fait, je suis obligé d'avoir un BUTTON pour terminer la saisie dans l'EDIT (ce que je voudrais justement éviter)

Quelqu'un peut-il me donner un tuyau

Merci et A+
Revenir en haut Aller en bas
Georges

Georges


Nombre de messages : 290
Age : 55
Localisation : Martinique
Date d'inscription : 29/05/2009

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: saisie EDIT par Entrer   Comment terminer une saisie dans un objet par entrée EmptyMar 16 Juin 2009 - 16:08

Salut J-C

Voici une piste que je te propose de suivre pour la validation d'un EDIT par entrer

Code:

label boucle,suite,quit,retour
dim a,a$,t$,te$
width 0,250 : height 0,280
edit 1
top 1,20 : left 1,50 : width 1,80 : height 1,30
on_click 1,retour
button 2
top 2,20 : left 2,150 : width 2,60 : height 2,30
caption 2,"Afficher"
on_click 2,suite
button 3
top 3,60 : left 3,150 : width 3,60 : height 3,30
caption 3,"Terminer"
on_click 3,quit
retour:
t$=""
boucle:
a$ = inkey$
t$ = t$ + a$
text 1,""
text 1,t$
if a$ = chr$(13) then goto suite
goto boucle
end
suite:
hide 2
a = len (t$)
a = a-1
te$ = mid$ (t$,1,a)
print_locate 100,100
print te$
goto retour
quit:
terminate


Il y a un ou deux bug mais ça marche. Le bouton afficher est la aussi pour valider l'edit mais il est facultatif

georges
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

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: RE:terminer une saisie dans un edit par entrée   Comment terminer une saisie dans un objet par entrée EmptyMar 16 Juin 2009 - 21:06

Merci Georges de t'être attaqué au problème.

Mais désolé chez moi ça marche pas.

Le label Quit entraine un message d'erreur (Violation....)
Dans l'édit on ne voit pas la saisie se dérouler.

Et surtout
a = len (t$)
a = a-1
te$ = mid$ (t$,1,a)

Cette partie BUG
a est trop petit.

Je comprends bien ta tentative
boucle:
a$ = inkey$
t$ = t$ + a$
text 1,""
text 1,t$
if a$ = chr$(13) then goto suite
Mais si a$="", on fait quoi ?

Je suis un peu surpris par la position de end
Mais bon, cela ne marche pas

Merci néanmoins d'avoir essayé.

Avis au PRO, Je pense que le problème n'est pas simple.
Que le meilleur d'entre vous trouve la solution, il aura droit à mes félicitations. Pour le Champagne, pas facile par internet. (La bonne excuse!)
Je vais moi-même retenter, en m'inspirant du code de georges, et si je trouve, j'aurais droit à vos félictations.

A+

Allez au boulot!
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

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: RE:   Comment terminer une saisie dans un objet par entrée EmptyMar 16 Juin 2009 - 21:15

Pour PANORAMIC:

et pouquoi pas ceci:

LABEL findesaisie
EDIT 1 rem avec ses dimensions
ON_RETURN 1, findesaisie
END
findesaisie:
la on fait ce qu'on veut
RETURN

Mais peut-être j'abuse.

A+
Revenir en haut Aller en bas
Georges

Georges


Nombre de messages : 290
Age : 55
Localisation : Martinique
Date d'inscription : 29/05/2009

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: entrer dans l'EDIT   Comment terminer une saisie dans un objet par entrée EmptyMar 16 Juin 2009 - 21:43

Salut Jean-Claude

Mais un rem devant la ligne a=a-1

Cela devrait fonctionner. J'ai mis cette ligne parce que quand j'exécute ce code à l'affichage j'ai un caractère pour le CHR$(13).
Si tu as un bug sur le a c'est que ta machine ne tiens pas compte du code d'entrer pour l'affichage.

Je tacherai d'améliorer ce code.

P.S. : je n'ai pris que moins de dix minutes pour sortir ce code. Avec un peu plus de temps la dessus je pense pouvoir sortir quelque chose de mieux.

Soit dit en passant l'entrer dans l'edit bloque tout autre commande d'entrer. Mon idée est de donner l'illusion de l'edit. Je sortirais un code dans cette optique.

georges
Revenir en haut Aller en bas
Georges

Georges


Nombre de messages : 290
Age : 55
Localisation : Martinique
Date d'inscription : 29/05/2009

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: complement de réponse   Comment terminer une saisie dans un objet par entrée EmptyMer 17 Juin 2009 - 0:04

Salut Jean-Claude

si a$="" , la bouche continue et attends une entrée

la position de end est un peu normale, elle permet de dissocier la présentation du programme du reste.C'est un automatisme que je préfère garder avec le code panoramic.

elle permet aussi d'empécher des plantages intempestifs.
les programmes sont bizarres des fois.

georges
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

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: RE: terminer une saisie dans un edit par entrée   Comment terminer une saisie dans un objet par entrée EmptyMar 23 Juin 2009 - 21:30

Bonsoir,

Je suis désolé Georges, mais même avec le rem devant a=a-1, cela ne marche pas. J'ai un message d'erreur à la ligne suivante: te$ = mid$ (t$,1,a). Il semble que "a" soit égal à zéro. De plus rien ne s'affiche dans l'EDIT.

POUR PANORMIC:
une petite rectification concernant ON_RETURN 1,findesaisie. Jaurais dû dire plûtot: ON_ENTER 1,findesaisie
Soit:
Code:

LABEL findesaisie

EDIT 1 rem avec ses dimensions
ON_CHANGE 1, insert
ON_ENTER 1, findesaisie

END

rem--------------------------------

insert:
a$=UPPER$(TEXT$(1))
RETURN

findesaisie:
la on fait ce qu'on veut
RETURN

Le but de la manoeuvre est d'avoir une commande qui, quand on tape sur la touche [Entrée] , branche sur un LABEL.
Je sais bien que comme ça sur le papier, c'est facile. Est-ce possible ?

Bonne soirée,
A+
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

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: RE: terminer une saisie dans un edit par entrée   Comment terminer une saisie dans un objet par entrée EmptySam 4 Juil 2009 - 14:43

Bonjour,

Je n'ai pas réussi à programmer une fin de saisie par Entrée dans un EDIT.
Le but étant que comme la saisie dans l'édit se fait à partir du clavier, je souhaitais donner la possibilité à l'utilisateur de taper [Entrée] pour lui éviter de reprendre la souris en main. Eh! Oui pour moi le programmeur doit être au service de l'utilisateur.
Donc, pour le moment, je continues de d'affubler mon EDIT d'un BUTTON "OK" de petite taille à sa droite.
Mais, pour ceux que çà intéresse, j'ai découvert par hasard la "combine" suivante: à la fin de la saisie, je presse la touche [TAB] qui m'envoie direct sur le boutton "OK" et la je tape [Entrée], donc tout çà à parir du clavier. Et RE [TAB] pour aller à la saisie (EDIT) suivante et ainsi de suite.

A+
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

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée EmptyDim 2 Aoû 2009 - 10:17

J'ajoute une nouvelle découverte sur ce sujet. Il s'ait de SET_FOCUS qui permet au programme de positionner le pointeur directement dans l'EDIT, ce qui permet que l'utilisateur n'a pas besoin de cliquer dans cet EDIT pour commencer sa saisie.

A+
Revenir en haut Aller en bas
JL35




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

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée EmptyDim 2 Aoû 2009 - 23:25

Si je reprends le code de Georges légèrement modifié, ça marche très bien:
Code:
label boucle,suite,quit,retour
dim a,a$,t$,te$
width 0,250 : height 0,280
edit 1
top 1,20 : left 1,50 : width 1,80 : height 1,30
on_click 1, retour
button 2
top 2,20 : left 2,150 : width 2,60 : height 2,30
caption 2,"Afficher"
on_click 2,suite
button 3
top 3,60 : left 3,150 : width 3,60 : height 3,30
caption 3,"Terminer"
on_click 3,quit

retour:
t$=""
boucle:
a$ = inkey$: if a$ = "" then goto boucle
if a$ = chr$(13) then goto suite
t$ = t$ + a$
text 1,""
text 1,t$
goto boucle
end

suite:
hide 2
print_locate 100,100
print t$
goto retour
quit:
terminate
j'ai simplement mis le test de a$ vide juste après le inkey$, suivi du test de 13 (entrée), ce qui est logique, ce caractère n'a pas à être ajouté à t$ !
Je n'ai pas bien compris non plus l'utilité de faire:
te$ = mid$(t$, 1, len(t$))
qui est strictement équivalent à:
te$ = t$

Par contre, j'ai une erreur sur le Terminate:
Access violation at address 00000017 etc...
peut-être une ressource non libérée, mais je n'ai pas approfondi.

PS le code de saisie ci-dessus 'boucle' est un peu rustique, il faudrait au moins analyser également le caractère backspace (08) pour pouvoir effacer le dernier caractère entré (correction). Par exemple:
Code:
if a$ = chr$(13) then goto suite
if a$ = chr$(8) and len(t$)>0
    t$ = left$(t$, len(t$)-1)
else
    t$ = t$ + a$
end_if
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

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée EmptyLun 3 Aoû 2009 - 20:44

Effectivement çà marche (sauf afficher). J'ai le même problème de violation avec terminate. Ce qui est curieux c'est que si tu mets un end ou autre chose après ou avant terminate, la validation par entrée ne fonctionne plus.

On s'approche du but.
A+
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée EmptyMar 4 Aoû 2009 - 10:40

Cette discussion est très intéressante. Je ne suis pas intervenu car je suis curieux de voir comment elle va évoluer.

J'interviens seulement pour vous dire que ma préoccupation est de sortir la version complète V 0.9.13 puis je m'attaquerai à ce problème de TERMINATE qui plante ou qui "beep".
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Jean Claude

Jean Claude


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

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée EmptyMar 4 Aoû 2009 - 20:23

Impatient de la nouvelle version, le reste peut attendre. Je vois que tu nous a toujours à l'oeil.

Merci et A+
Revenir en haut Aller en bas
JL35




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

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée EmptyMar 4 Aoû 2009 - 23:07

Je suis un peu perplexe... J'en suis arrivé au code ci-dessous, simplifié pour les tests:
Code:
label SAISIE, BOUCLE, FIN
dim a$, t$

top 0, 20: left 0, 20: width 0, 250: height 0, 150
edit 1: top 1, 20: left 1, 20: width 1, 200: height 1, 30
on_click 1, SAISIE
end

SAISIE:
t$=""
BOUCLE:
If Scancode = 13 then goto FIN
a$ = inkey$: If a$ = "" then goto BOUCLE
if a$ = chr$(8) and len(t$)>0
    t$ = left$(t$, len(t$)-1)
else
    t$ = t$ + a$
end_if
text 1, "": text 1, t$
goto BOUCLE

FIN:
print_locate 20, 60: print t$: wait 1500
TERMINATE
Finalement, le test du scancode semble plus sûr, inkey$ ne semblant pas renvoyer le code de la touche Entrée (qui semble ignorée).
Donc on va bien à l'étiquette FIN par appui sur Entrée, et le programme se termine, mais le print final ne se fait pas, là il y a quelque chose qui m'échappe...
Revenir en haut Aller en bas
Georges

Georges


Nombre de messages : 290
Age : 55
Localisation : Martinique
Date d'inscription : 29/05/2009

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: Re: comment terminer une saisie dans un edit par entrée   Comment terminer une saisie dans un objet par entrée EmptyMer 5 Aoû 2009 - 14:36

Salut Jean-Claude , JL35

Suite au code de JL35, je vous propose trois codes source qui résolvent le problème posé par Jean-Claude

Le premier est inspiré de celui de JL35 surtout sur l'utilisation de SCANCODE. En effet dans cette structure chr$(13) ne fonctionne pas.

source1:
_____________________________________________
label BOUCLE,affich
dim a$
top 0, 20: left 0, 20: width 0, 250: height 0, 200
edit 1: top 1, 20: left 1, 20: width 1, 200: height 1, 30
on_click 1,BOUCLE
end

BOUCLE:
If Scancode = 13 then goto affich
a$ = inkey$
goto BOUCLE

affich:
print_locate 20, 60
print "texte= " + text$(1)
wait 3000
TERMINATE

__________________________________________

l'utilisation de a$=inkey$ est indispensable, sinon le programme se court-circuite ou se plante. Il permet aussi à scancode de faire le test sur l'entrée d'une touche.
L'édit étant toujours actif, il n'est pas nécessaire de faire de la concaténation. D'ailleurs si l'affichage ne se fait pas sur le code de JL35, c'est que la concaténation ne se construit pas (pourquoi?, ché pa!)
Une fois l'édit testé sur le scancode 13, on utilise les fonctions standard de récupération des données dans un édit - à savoir text$(1)

le code par construction devient plus simple et plus concit. C'est la routine BOUCLE qui s'occupe de faire cette tache.

-----------------------

Dans le deuxième code, j'ai inséré le SET_FOCUS souhaité par Jean-Claude. Ainsi dès le RUN du programme le curseur se place directement dans l'édit.
la ligne on_click 1, etc devient inutile - on rapproche le test BOUCLE avant le END

source2:
________________________________________________
label BOUCLE, FIN
dim a$
top 0, 20: left 0, 20: width 0, 250: height 0, 200
edit 1: top 1, 20: left 1, 20: width 1, 200: height 1, 30
set_focus 1

BOUCLE:
If Scancode = 13 then goto FIN
a$ = inkey$
goto BOUCLE
end

FIN:
print_locate 20, 60
print "texte= " + text$(1)
wait 3000

TERMINATE

____________________________________________

----------------------

Le troixième code est une amélioration du source1.
En insérant un bouton terminer, on peut choisir de quitter le programme sans l'exécuter. Cette option peut évidemment être mis dans le source2

source3:
_________________________________________
label BOUCLE,affich,fin
dim a$
top 0, 20: left 0, 20: width 0, 250: height 0, 200
edit 1: top 1, 20: left 1, 20: width 1, 200: height 1, 30
button 2: top 2,100: left 2,40: width 2,140: height 2,20: caption 2,TERMINER
on_click 1,BOUCLE
on_click 2,fin
end

BOUCLE:
If Scancode = 13 then goto affich
a$ = inkey$
goto BOUCLE

affich:
print_locate 20, 60
print "texte= " + text$(1)
wait 3000
fin:

TERMINATE

_______________________________________________

Voila, je pense que nous avons tous progressés dans la compréhension du code grace au problème posé para Jean-Claude et aux pistes de JL35.

J'ai essayé ces trois codes sur mon poste, ils fonctionnent impec.

@+
Revenir en haut Aller en bas
Georges

Georges


Nombre de messages : 290
Age : 55
Localisation : Martinique
Date d'inscription : 29/05/2009

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: Re: comment terminer ...............   Comment terminer une saisie dans un objet par entrée EmptyMer 5 Aoû 2009 - 14:44

Salut JC et JL35

petit oubli dans le message précédent.

Il y a à mon avis un dernier petit problème sur ces codes.
Sur les essais que j'ai fait , j'obtient un bip du même son que la commande BEEP.
Personnellement, je pense qu'il y a un bug, car cela ne devait pas.

Il reste à le résoudre

@+
Revenir en haut Aller en bas
JL35




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

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée EmptyMer 5 Aoû 2009 - 14:59

Là mon cher Georges, je crois que tu as fait un grand pas pour l'humanité. En effet, je ne connaissais pas la fonction text$() qui est bien pratique et qui gère toute l'édition de la saisie à lui tout seul.
En plus on ne plante même plus sur le Terminate.
Juste une petite remarque, si je rajoute le set_focus sur ton dernier code je ne reconnais plus l'Enter, mais bon je ne le mets peut-être pas où il faut.

Edit tiens, pas de bip pour moi..., je regarde

Exact, il y a un bip sur la touche Entrée... je ne l'avais pas entendu car je ne mets jamais le son, sauf nécessité.
Ca c'est un petit problème pour Panoramic...
Revenir en haut Aller en bas
Georges

Georges


Nombre de messages : 290
Age : 55
Localisation : Martinique
Date d'inscription : 29/05/2009

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: re: comment .........   Comment terminer une saisie dans un objet par entrée EmptyMer 5 Aoû 2009 - 15:34

Salut JL35

le SET_FOCUS sur le dernier code tel qu'il est provoque une erreur sur le terminate, mais à part ça ça marche.
je l'ai essayer rapidement, ça c'est un nouveau problème à résoudre.

Ce n'est pas élégant de sortir d'un programme (même s'il à bien fonctionné) avec un message d'erreur.
Je vais voir si je trouve une solution sur ce cas (ou bien quelqu'un d'autres).

@+
Revenir en haut Aller en bas
JL35




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

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée EmptyMer 5 Aoû 2009 - 16:13

Voilà ce que je ferais moi, et qui semble marcher (mais il y a sûrement plus élégant):
Code:
label Reb, S1, Fin
dim a$, t$
Edit 1

t$ = "": print_target_is 1
Reb:
rem if scancode = 13 then goto Fin
if a$ = chr$(13) then goto Fin
a$ = inkey$: if a$ = "" then goto Reb
if a$ = chr$(8)
  if t$ <> "" then t$ = left$(t$, len(t$) - 1): goto S1
  goto Reb
end_if
t$ = t$ + a$
S1:
print t$: goto Reb

Fin:
print_target_is 0
print_locate 10, 30: print "Texte= " + t$: wait 2000
terminate
le test sur le scancode et sur le chr$(13) semblent marcher tous les deux.

Deux remarques pour Panoramic:
- Le bip sonore remarqué par Georges semble se produire dans Text$() quand on appuie sur la touche Entrée, la touche Esc et peut-être d'autres. D'ailleurs je ne sais pas comment on sort proprement de cette fonction.
- Dans mon code ci-dessus, en cas d'effacement du dernier caractère entré (touche backspace = 08), la fonction Left$(t$, n) ne marche pas (erreur 52) s'il ne reste qu'un caractère (n = 0), ce qui rendrait une chaîne vide mais qui n'est pas anormal après tout (en tout cas en Basic ça marche). Je ne l'ai pas corrigé ci-dessus pour ne pas alourdir avec un test supplémentaire.
Revenir en haut Aller en bas
Georges

Georges


Nombre de messages : 290
Age : 55
Localisation : Martinique
Date d'inscription : 29/05/2009

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: re: comment ..........   Comment terminer une saisie dans un objet par entrée EmptyMer 5 Aoû 2009 - 20:52

Salut JL35

Le problème avec ton dernier code, c'est que une fois que tu click dans l'édit avec la souris, tu ne peux plus valider tes données par entrée.
A mon avis, ta solution de l'on_click sur l'édit permet les deux :
-valider par entrée
-valider par button si boutton il y a

georges
@+
Revenir en haut Aller en bas
JL35




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

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée EmptyMer 5 Aoû 2009 - 22:33

Finalement Jean Claude a raison, la fonction EDIT est toute indiquée pour ce qu'il veut faire, mais à mon avis elle ne fonctionne pas comme elle devrait.
Si on prend l'exemple du manuel:
DIM a$
EDIT 1
TEXT 1, "Entrer votre nom:"
a$ = TEXT$(1)
PRINT a$
on ne sort pas de l'Edit et on ne vient jamais dans le print, parce qu'il n'y a pas à ma connaissance de touche pour terminer l'édition, en tout cas pas Entrée, ce qui serait logique, comme dans toute saisie de ligne de texte.
Ou alors il faut fabriquer un bouton exprès à cliquer, mais ça ne devrait pas être obligatoire.

A ce propos, dans le Manuel Utilisateur paragraphe 4, rubrique 4.2, les commandes CLEAR, FONT_NAMES_ADD et _LOAD ne semblent pas s'apliquer à un objet EDIT, contrairement à ce qui est écrit.
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

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée EmptyJeu 6 Aoû 2009 - 8:33

Bravo à vous deux,

On a beaucoup avancé grace à vous. Personnellement (et même si les derniers codes trouvés sont courts) je préfèrerais avoir la possibilité de sortir de l'EDIT par un autre commande que on_click ou on_change du style ON_ENTER

En tout cas ,au passage, j'ai apris pas mal sur vos méthodes de programmation.

Encore Bravo et A+
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

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée EmptyJeu 6 Aoû 2009 - 10:06

En regardant de plus près les codes de Georges, je me suis dit que la position du END çà collait pas.
Alors voila ce que j'ai fait:
1) je supprime le WAIT dans le label FIN
2) J'ajoute un label fin2 avant TERMINATE
3) Je fais touner la boucle par un GOSUB avant le END
4) Dans le Label boucle je remplace GOTO par GOSUB et j'ajoute un RETURN

Et cette fois ci çà marche "impec", plus de violation. Par contre il y a toujours le BEEP

Voici le code terminé


Code:

label BOUCLE, FIN ,fin2

dim a$

top 0, 20: left 0, 20: width 0, 250: height 0, 200
edit 1: top 1, 20: left 1, 20: width 1, 200: height 1, 30
set_focus 1

button 2: top 2,100: left 2,40: width 2,140: height 2,20: caption 2,TERMINER
on_click 2,fin2

gosub boucle

end

rem -------------
BOUCLE:
If Scancode = 13 then gosub FIN:return
a$ = inkey$
goto BOUCLE

FIN:
print_locate 20, 60
print "texte= " + text$(1)
return

fin2:
TERMINATE

A+
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée EmptyJeu 6 Aoû 2009 - 11:55

Bravo, c'est pas mal !

Quand tu ne tapes aucun texte dans l'édit et que tu cliques seulement sur le bouton tu as quand même le "access violation ..."

Promis, je m'en occupe après la sortie de la version complète.

Par contre, ce qui m'interpelle, c'est le:
Code:
caption 2,TERMINER
qui devrait être rejeté et qui pourtant fonctionne !!!, la syntaxe correcte étant:
Code:
caption 2,"TERMINER"
Mais on en avait déjà fait mention sur le forum...
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Georges

Georges


Nombre de messages : 290
Age : 55
Localisation : Martinique
Date d'inscription : 29/05/2009

Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: re:   Comment terminer une saisie dans un objet par entrée EmptyJeu 6 Aoû 2009 - 13:41

salut Panoramic!

Je l'avais signalé dans un message précedent - le "caption"

@+
Revenir en haut Aller en bas
Contenu sponsorisé





Comment terminer une saisie dans un objet par entrée Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée Empty

Revenir en haut Aller en bas
 
Comment terminer une saisie dans un objet par entrée
Revenir en haut 
Page 1 sur 3Aller à la page : 1, 2, 3  Suivant
 Sujets similaires
-
» Comment recuperer le n° d'objet d un sub_menu ?
» comment contrôler la saisie d'un EDIT ?
» Objet EDIT avec saisie filtrée
» BEEP suite a Entrée dans un EDIT
» Comment repositionner un objet 3D

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: