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
» Gestion d'un système client-serveur.
Comment terminer une saisie dans un objet par entrée - Page 2 Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Comment terminer une saisie dans un objet par entrée - Page 2 Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Comment terminer une saisie dans un objet par entrée - Page 2 Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Comment terminer une saisie dans un objet par entrée - Page 2 Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Comment terminer une saisie dans un objet par entrée - Page 2 Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Comment terminer une saisie dans un objet par entrée - Page 2 Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Comment terminer une saisie dans un objet par entrée - Page 2 Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Comment terminer une saisie dans un objet par entrée - Page 2 Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Comment terminer une saisie dans un objet par entrée - Page 2 Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Comment terminer une saisie dans un objet par entrée - Page 2 Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Comment terminer une saisie dans un objet par entrée - Page 2 Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Comment terminer une saisie dans un objet par entrée - Page 2 Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Comment terminer une saisie dans un objet par entrée - Page 2 Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Comment terminer une saisie dans un objet par entrée - Page 2 Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Comment terminer une saisie dans un objet par entrée - Page 2 Emptypar Jack Mar 30 Avr 2024 - 20:40

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 : -39%
Pack Home Cinéma Magnat Monitor : Ampli DENON ...
Voir le deal
1190 €

 

 Comment terminer une saisie dans un objet par entrée

Aller en bas 
5 participants
Aller à la page : Précédent  1, 2, 3  Suivant
AuteurMessage
JL35




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

Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptyJeu 6 Aoû 2009 - 14:15

Dans l'exemple de Jean Claude, le sous-programme Boucle sert uniquement à tester le code 13, il ne gère pas l'acquisition des caractères, faite par l'Edit.
J'ai essayé ceci:
Code:
label Test, FIN

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_change 1,Test
set_focus 1
button 2: top 2,100: left 2,40: width 2,140: height 2,20: caption 2,TERMINER
on_click 2,FIN
end

Test:
If scancode = 13 then goto FIN
return

FIN:
print_locate 20, 60: print "texte= " + text$(1)
wait 1500: rem le temps de lire le texte
TERMINATE
On remarquera que j'ai ajouté le On_Change 1 pour aller dans le sous-programme Test à chaque caractère tapé, dans l'espoir de récupérer le 13, mais il est toujours royalement ignoré dans l'Edit.
Par contre, si je fais Tab puis Entrée, là ça marche, on va vers FIN...?
Je continue à regarder, mais je déplore toujours que l'Edit ne réagisse pas sur la touche Entrée, genre on_enter 1,FIN (ou alors quelque chose m'échappe ?).
Pour ces essais, les Ctrl/Alt/Suppr sont bien utiles...
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptyLun 24 Aoû 2009 - 20:41

A force de persévérence....

J'ai finis par trouver une bonne formule ,qui en fait s'approche du code de Georges. Pour éviter "Accès violation...", il suffit simplement de placer un RETURN après la boucle. Oui, je sais en QB ce RETURN ne passerait pas, Mais avec PANORAMIC il est indispensable car ON_CHANGE ou ON_CLICK sont assimilés a des GOSUB.
L'utilisation de SET_FOCUS permet de ne pas se servir de la souris.
Par contre je n'ais pas réussi à sortir de L'EDIT si a$="". Si a$=" " on peut sortir mais il faut taper l'espace. En fait le ON_CHANGE de l'EDIT commence après avoir taper le premier caractère.
Avec ce systeme le bouton pour terminer la saisie dans l'EDIT n'est plus necéssaire. Celui du code sert uniquement à quitter.

Ce code présente un intérêt certain car on sort de l' EDIT par la touche entrée et on peut placer des controles entre la fin de boucle et le RETURN du label insert. Contoles du style if len'a$)>10 then message...........

Voici le code:

Code:

label insert,finsaisie,quit

dim a$,b$

left 0,223
top 0,182
width 0,550
height 0,492
caption 0,"Form 0"
 
edit 1
left 1,81
top 1,64
on_change 1,insert

button 2
left 2,213
top 2,67
width 2,70
height 2,20
caption 2,"QUITTER"
on_click 2,quit

set_focus 1

end
rem -----------------------

insert:
a$=text$(1)
if scancode=13 then set_focus 2:goto finsaisie
b$=inkey$
goto insert
if a$=" " then goto finsaisie
return

finsaisie:
print_locate 10,10:print a$
return

quit:
terminate

Je suis fier de moi

A+
Revenir en haut Aller en bas
Invité
Invité




Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: saisie de texte sans input   Comment terminer une saisie dans un objet par entrée - Page 2 EmptySam 29 Aoû 2009 - 11:57

J'ai suivi la discution, mais je ne suis pas chez moi.
Les codes proposés sont certainement mieux que ce je présente, mais peut_être utile dans certain programme

le 1er code fait une saisie du texte, en cliquant sur l'objet suivant. Ici pour essai: répondre edit 1, clique sur le second edit. Je suis revenu sur le 1er edit pour continuer, mais s'il-a une quantité de question,celà peut-être une voie. Dans les 2 cas, IL N'Y A PAS D'INPUT, donc de ENTER ou chr$(13)

dim a$
label nom,prenom,fin

width 0,550
height 0,300
alpha 1:caption 1,"nom:" :left 1,170 :top 1,50
alpha 2:caption 2,"prénom:" :left 2,170 :top 2,80
edit 3 : left 3,200:top 3,50 : on_click 3,nom
edit 4 : left 4,200:top 4,80 : on_click 4,prenom
on_click 0,fin
set_focus 3

end

nom:
input_source_is 4:a$=text$(4)
print "2:"+a$ :set_focus 3 :text 4,""
return

prenom:
input_source_is 3:a$=text$(3)
print "1:"+a$ :set_focus 4 :text 3,""
return

fin:
terminate

2ème code:

sur une 2ème forme, je remplis un edit, et en cliquant ici sur la forme 0,
je récupère la donnée. On retrouve la suite du programme

rem celà est une prise de texte sans <return>
dim a$
label ok,continu

form 2:left 2,200:TOP 2,100:WIDTH 2,190 :HEIGHT 2,00 :border_hide 2 :color 2,180,200,60
EDIT 3:LEFT 3,5:TOP 3,5 :WIDTH 3,180 :HEIGHT 3,25 :PARENT 3,2 :HIDE 2

button 5:caption 5,"allez saisir le texte":width 5,100:left 5,250:top 5,70
rem à un moment du programme, on va saisir du texte, le bouton simule ce moment

on_click 5,ok

width 0,500:height 0,300
end

ok:
show 2
text 3,""
on_click 0,continu:rem le focus sur 0 ici, mais celà peut_être un autre objet
input_source_is 3:set_focus 3
return

continu:
a$=text$(3) :rem replacé input par text , vu que la prise d'une
rem phrase avec espace sans guillemets, provoque une erreur
set_focus 0
print a$
hide 2
return

Dois-je avoir honte de ce que je propose?

a +
Revenir en haut Aller en bas
Invité
Invité




Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptySam 29 Aoû 2009 - 11:58

Comment faites-vous pour visualiser le code en blanc?
merci
à +
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptySam 29 Aoû 2009 - 15:54

Salut cosmos70,

J'ai testé tes 2 codes. Si tu as bien lu le sujet, tu n'en a pas tenu compte. Le but recherché au dépard n'etait pas seulement de supprimer le bouton de confirmation, mais était de de pouvoir terminer la saisie dans un EDIT par la touche entée du clavier (j'y suis parvenu avec l'aide de Geoerges et de JL35). L'intérêt etant que l'utilisateur du programme n'est pas besoin de reprendre la souris en main alors qu'il saisi du texte. Crois-moi, dans certaine application l'utilisateur y trouve un intérêt certain.
Par contre ton 2eme code est très interessant car avec un seul EDIT tu entre un nombre illimité de textes auxquels tu peus donner un nom de variable. La bordure de l'EDIT en vert c'est sympa. Le coup du FORM 2, coloré et dimensioné pour recevoir l'EDIT 3, c'est très malin. Tu ne manques pas d'imagination et tu donne des idées.

Pour répondre à ta question pour saisir en blanc (si j'ai bien compri, tu ne veus pas que l'on voit le texte saisi dans l'EDIT), voici un extrait d'un de mes code. l'EDIT 5 sert a entrer un mot de passe, regarde la commande FONT_COLOR, tu vas y trouver ta réponse.


Code:

edit 5:left 5,205:top 5,230
hint 5,"ENTREZ VOTRE MOT DE PASSE"
font_color 5,255,255,255
on_change 5, saisimdp
inactive 5

A+
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptySam 29 Aoû 2009 - 16:04

Excuse moi, c'était mon tour de répondre à coté de la plaque.

Pour visualiser ton code dans le Forum (je pense que c'était çà la question), tu copie ton code (copier,coller) tu clique sur le bouton Code , (juste en dessous du bouton [Gras] dans l'editeur de message) ensuite tu colle et tu reclique sur le bouton code qui a changé comme çà /Code.
J'espère avoir repondu à ta question.
A+
Revenir en haut Aller en bas
Invité
Invité




Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptySam 29 Aoû 2009 - 16:34

merci Jean Claude pour ta réponse, Je n'ai pas éssayé de répondre pour donner une possibilité de saisie avec input, vu que cela été développé, mais de donner d'autre possibilités. Ainsi la 1ère méthode me rappel celle que j'utilisais il ya 20 ans sur un oric, pour remplir une fiche avec de multiples demandes.

En ce qui concerne l'affichage en blanc, j'ai mal formulé ma demande, je vois dans le forum des codes qui sont affiché sur fond blanc, alors que moi, les codes sur sur le même fond que le reste . Je n'était jamais intervenu sur un forum, avant panoramic.
a +
Revenir en haut Aller en bas
Invité
Invité




Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptySam 29 Aoû 2009 - 18:21

oui j'ai compris. J'ai pas été assez regardant. L'age sans doute. On verra la prochaine fois.
merci
A+
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptySam 12 Sep 2009 - 18:03

Cette fois Cosmos70 a fourni la solution,

Code:

repeat:sc%=scancode:until sc%=13

il suffit d'insérer cette ligne pour sortir de L'edit par entrée, donc plus besoin de boutton à coté. Reste tout de même le beep.

Merci Cosmos70
A+
Revenir en haut Aller en bas
JL35




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

Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptySam 12 Sep 2009 - 18:11

Tu peux même supprimer la variable:
Code:
Repeat: Until scancode=13
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptySam 12 Sep 2009 - 18:25

J'ai supprimé la variable et çà pose probleme avec un end provisoire.
???
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptyMer 23 Sep 2009 - 19:54

Enfin un qui marche sans violation reste le beep

Code:
left 0,223:top 0,182:width 0,550:height 0,492
caption 0,"Form 0"

edit 1
left 1,81:top 1,64
on_change 1,insert

button 2
left 2,340:top 2,200:width 2,70:height 2,20
caption 2,"QUITTER"
on_click 2,quit

set_focus 1

end
rem -----------------------

insert:
a$=upper$(text$(1))
b$=inkey$
if scancode<>13 then goto insert
gosub suit
return

suit:
print_locate 100,100:print a$
return

quit:
terminate

Rectification: il y a une violation si on clique sur quitter sans avoir frappé la touche entrée
Revenir en haut Aller en bas
Invité
Invité




Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptyJeu 24 Sep 2009 - 14:00

Je viens en vitesse d'essayer ton code.
Apparemment il y a violation uniquement que lorsque tu tapes un texte sans valider par entrée, ainsi tu modifies ton texte,et la procédure insert appelé par on_change n'est pas arrêté, puisque si on ne tape pas entrée, on se rebranche sur insert. En cliquant pour quitter, tu fais une interruption de ta procédure.
Si tu quittes soit sans rien changé, ou si tu quittes en validant par entrée, tu n'as pas de violation. A mon avis pour éviter d'avoir ce problème, il faudrait invalider le bouton lorsqu'une modification de l'edit ai été effectuée, et le revalidé à la sortie de entrée, pour qu'il soit obligatoire de valider ta donnée.
Ce que je dis semble un peu torchon ou tordu, je me demande si je me fais comprendre.
A+
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptyJeu 24 Sep 2009 - 18:57

Oui, j'ai compris qu'il faiut interdire l'accés au bouton QUITTER tant que que l'on a pas tapé ENTREE. C'est une bonne astuce.
Merci A+
Revenir en haut Aller en bas
Invité
Invité




Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptyJeu 24 Sep 2009 - 19:19

Je vais reprendre ce propos pour poser cette question à Jack:
On a compris que si on clique sur un événement , on sort de la routine en cours, ce qui évidemment provoque une erreur, sur un très vieux basic sur Oric je crois, il y avait une commande qui s'appelait si je ne me trompe pas "resume", et qui avait pour rôle de dépiler l'adresse de repeat until, ou autre (je ne sais plus). Sur un basic à objet (et là je ne suis pas expert), ce serait très certainement difficile de savoir quoi dépiler (si ça marche comme ça dans Panoramic), mais alors, ne pourrait t'on pas avoir une instruction à mettre en début de routine, qui dit qu'on ne doit pas intervenir avec un événement quelconque, tant que cette routine n'est pas accomplie. Il y a bien inactive, et c'est très bien, mais lorsqu'on a une tonne d'objets, cela devient plutôt "ch...".
Pour ma part dans mon programme que je vais bientôt mettre sur le forum, j'avais lors du "débogage" plus de 100 objets. Ainsi: on se branche sur le label, on met l'instruction, celle-ci s'annule au return de la routine. Est-ce de ma part une connerie? Je pose la question.
Merci à +
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptyJeu 24 Sep 2009 - 20:57

bonsoir Cosms70,

Tu touches le coeur du problème, Dans certain programme on a besoin de faire un "Break" pour que l'utilisateur ne fasse pas autre chose que ce que le concepteur du programme souhaite. La plupart du temps parce qu'il doit renseigner une variable qui va servir pour la suite du programme (mais lui, il ne le sait pas). Quand j'écris un programme, j'essai au maximun de ne pas l'écrire pour moi, j'essai de me mettre à la place de l'utilisateur. C'est pourquoi je le dirige d'un EDIT à l'autre ou vers un COMBO et que certains BOUTONS doivent êtres inactifs jusqu'a ce que......
Il faut donc une solution qui permette l'arrêt du programme et sa reprise quand l'utilisateur a fait une action. Certe, on pourrait répondre qu'il suffit de fabriquer des routines pour arriver à çà (ce qui est en grande partie vrai), mais il faut abosulument que PANORAMIC évolue avec une ou plusieurs commandes pour gérer l'arrêt du programme (sans erreurs).

Soyons patients, Jack a bien compris nos besoins et il a indiqué sur ce Forum (Rubrique : Stoper le Programme) qu'il s'attelait à la tâche. Ayons pitié de lui, qui a pleins de demandes et qui a aussi un travail. Ce qui est dommage, c'est que ni toi, ni moi, ne pouvons l'aider car nos connaissances ne le permettent pas. Mais grace à nos demandes, je l'espère, ons fait avancer PANORAMIC. Et pour finir j'ajoute qu'on a pas à se plaindre de la réactivité de Jack, qui meritte un grand coup de chapeau.
A+
Revenir en haut Aller en bas
Jack
Admin
Jack


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

Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptyJeu 24 Sep 2009 - 21:08

@cosmos70:
Je pense que tu fais allusion à l'instruction PULL du basic de l'Oric, qui permet de sortir de boucles REPEAT/UNTIL imbriquées, et aussi à l'instruction POP qui, dans un GOSUB/RETURN permet de sortir d'un niveau de GOSUB imbriqués.

POP permet de revenir au programme principal, plutôt qu'au niveau précédent de sous-programme dans le cas d'appels de sous-programme imbriqués, et PULL permet de "traverser" toutes les boucles REPEAT/UNTIL imbriquées.

Dans PANORAMIC, les adresses de retour des sous-programmes sont empilés aussi (d'ailleurs, je ne vois pas comment faire autrement que d'utiliser une pile).
La preuve: il existe déjà des commandes EXIT_FOR, EXIT_REPEAT, EXIT_WHILE pour forcer la sortie d'une boucle FOR/NEXT, REPEAT/UNTIL ou WHILE/END_WHILE.

Je peux faire des commandes équivalentes à PULL et POP, pour sortir complètement d'une imbrication de boucles, mais, alors, attention aux mises au point des programmes: ce sont des instructions à manier avec précaution et réservées aux programmeurs expérimentés et je doute qu'elles servent beaucoup.

Mais c'est plutôt une bonne idée.
Et hop, dans la TODO list !

PS: je cite le manuel de l'Oric Atmos page 186 sur l'instruction POP:
"A bien des titres, il faut considérer POP comme une solution de dernier recours, puisqu'elle force un programme à sortir d'un sous-programme imbriqué, ce qui ne devrait jamais être nécessaire dans un programme correctement organisé et structuré"

Et page 190 sur l'instruction PULL:
"Pour parler franc, on doit considérer aussi bien POP et PULL comme des instructions de rapiéçage d'un programme mal bâti. Si vous avez organisé et structuré correctement votre programme, vous n'aurez jamais à vous échapper d'une boucle ou d'un sous-programme."

Je n'ai fait que citer le manuel Oric, ne le prend pas pour toi.
Moi, je n'ai pas d'idée sur la question: je suis un fournisseur de langage et ce sont les utilisateurs de ce langage qui décident ce qu'ils en font.
Si les utilisateurs expriment le besoin de sortir d'une imbrication de boucles, pas de problème, il y aura la possibilité de le faire.

Je suis aussi un utilisateur d'Oric, de TRS80, d'Apple 2, de ZX81, etc
J'ai encore des Oric en état de marche, plusieurs manuels ainsi que des ouvrages de programmation sur l'Oric, que je consulte de temps en temps, j'utilise aussi parfois un émulateur d'Oric sur PC: Euphoric.
(J'ai aussi un TRS, des Apple, des Mac, des ZX81, un Dragon, un compatible MSX, etc... et la documentation associée). Mon premier ordinateur était un TRS80 avec 4K de mémoire. C'était en 1979.


Dernière édition par Jack le Jeu 24 Sep 2009 - 21:36, édité 6 fois
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Jean Claude

Jean Claude


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

Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptyJeu 24 Sep 2009 - 21:18

Hé bé, Faudrait quand même que je consulte un peu plus souvent le manuel. Je vais revoir mes soucis, peut être EXIT_REPEAT répondrait.
A+
Revenir en haut Aller en bas
JL35




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

Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptyJeu 24 Sep 2009 - 22:08

Pareil TRS-80 Model 1 L II, 4k, superbe machine, il fallait programmer serré (étendue à 16k au fer à souder par mes soins, le grand confort, mais il y avait de la doc, revues américaines surtout)
Revenir en haut Aller en bas
Invité
Invité




Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptyJeu 24 Sep 2009 - 23:38

Je suis très heureux Jack de ta réaction. En faisant référence à Oric, c'était pour mémoire, pouvoir expliquer ce à quoi je pensais. Je ne me souvient plus de la commande que je faisais allusion, il faut que je retrouve ce manuel. En réalité, ce qu'il faut, ce n'est pas un exit d'un return, mais une interdiction de sortie d'une routine, tant que celle-ci n'est pas fini. Pour m'expliquer, je vais reprendre l'exemple de Jean Claude après modification:
Code:

dim a$,b$
label insert,suit,quit

left 0,223:top 0,182:width 0,550:height 0,492
caption 0,"Form 0"

edit 1
left 1,81:top 1,64
on_change 1,insert

button 2
left 2,340:top 2,200:width 2,70:height 2,20
caption 2,"QUITTER"
on_click 2,quit

set_focus 1

end
rem -----------------------

insert:
inactive  2 ' MODIFICATION
a$=upper$(text$(1))
b$=inkey$
if scancode<>13 then goto insert
gosub suit
active 2    '  prise en compte du bouton
return

suit:
print_locate 100,100:print a$
return

quit:
terminate

En exécutant ce programme, que voit-on: Lorsqu'on met un caractère dans edit, on reste dans la routine, dès qu'on appuie sur <return>, on fini la routine. Dans ce cas il n'y a pas d'erreur. Si on retire >inactive <, en tapant un/des caractère(s), on entre dans la routine insert. Si le retour chariot n'est pas frappé, et qu'on clique sur le bouton, il y a débranchement impératif de la routine insert, et violation. Le problème, c'est que lorsqu'on a plein de routine, et un clic intempestif, on se débranche automatiquement de la routine qui n'a pas été jusqu'au bout, et trouver une erreur à ce moment là, n'est pas facile. Donc ce qu'il faudrait est une instruction comme INACTIVE mais global sur l'ensemble des clics (là où il y a branchement comme ON_CLICK, ON_CHANGE, les COMBOs, tout ce qui inter faire) pour terminer chaque routine. J'ai passer des heures et des heures pour trouver des erreurs, là où il n'en avaient pas, tout simplement par ce que je ne savais pas que toute routine pouvait être interrompu. Lorsqu'on n'a qu'un bouton, mettre une instruction INACTIVE, ce n'est pas sorcier, mais si comme moi, j'ai énormément d'objets, une instruction particulière serait la bien venu, à mettre dès le début de la routine. Je ne pense pas qu'il soit nécessaire d'en trouver une pour la fin, le simple fait de mettre RETURN, annulerait cette commande. Peut-être dire au programme qu'il ne soit interrompu avant de terminer (pourquoi pas). Le constat est que sur windows tous les clics que l'on fait, il y a attente que la main soit redonnée pour continuer. Ainsi avec Justbasic en exemple, si je clique sur un bouton quelconque, tant que la routine en cours n'est pas fini, j'attends que le clic prenne effet, et en panoramic ce n'est pas le cas. Je ne dis pas que cela ne présente pas des avantages, je ne sais pas, mais lorsqu'on ne le sait pas c'est déroutant. Ne t'amuse pas à vouloir une instruction similaire à Oric, c'était de la programmation spaghetti, avec mémoire très limitée. Ton basic permet de faire de la programmation très structuré, reste sur ce principe.
Je reprends le texte que j'ai publié hier soir
Je me demandais pourquoi tu pensais que je demandais une instruction de débranchement. En faite je ne pensais pas au créateur de programme, mais à Panoramic, qui lui débranche, et devrait se dire puisque je débranche, je retire de la pile le return (ou même until ou autre instruction qui boucle) qui suit. Mais je ne pense que cette solution soit la bonne. Pourquoi? Parce que si par exemple je fais un programme de comptabilité, avec des calculs, et que si je suis débranché de ma routine par un clic, touts les calculs qui suivent, non pas étés effectués. Et le programmeur ne peut pas le savoir, lors de la conception du programme. Au faites, est-ce qu'une routine est interrompue, est-elle reprise ensuite lorsque la routine qui la débranchée, est fini? Si d'autres sur le forum pensent que je suis dans l'erreur, interviennent. Je donne mon idée, mais j'ai parfois tord.

Merci
A+
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptyVen 25 Sep 2009 - 8:32

On tournent en rond sur ce sujet depuis un moment. J'ai compris maintenant que le problème est que l'on sort d'une boucle sans l'avoir accomplie (en gros c'est çà).
Ce qui me rappelle que j'avais proposé pour EDIT une commande complémentaire de ON_CHANGE du style ON_ENTER. Cette commande aurait pour but de gérer la sortie de l'EDIT par la touche entrée. Je ne connait pas la faisabilité d'une telle commande, j'attend la réponse de Jack.
Egalement, j'avais parlé d'un EDIT spécial pour les chiffres (monétaire) avec affichage à droite (ou une commande le permettant).
En attendant la solution de Cosmos d'interdire la sortie de l'EDIT sans avoir terminé la boucle est la moins mauvaise.
A+
Revenir en haut Aller en bas
Invité
Invité




Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptyVen 25 Sep 2009 - 9:19

Je sais que l'on tourne en rond. Tu parles de EDIT, mais ça ne concerne pas que ça. Toute la programmation est concernée à mon avis. Toute boucle comme REPEAT WHILE FOR peut-être interrompu. Toute routine peut--être interrompu et ne pas aller à son terme. Je pris l'exemple d'une série de calcul, si tu ne vas pas jusqu'au bout de ta routine de calcul, il sert à quoi ton programme? On ne vois les erreurs que lorsqu'il y a extraction d'une boucle en cour, parce que Panoramic interpelle par un message d'erreur: du genre y a pas de until à repeat, ou trouve un return parce qu'il a été dérouté entre temps, à la place d'un until, qu'il aurait du voir si la boucle n'avait pas été interrompu. De mon côté, j'ai été obligé d'inactiver tous les objets qui pouvait poser problème, dans toutes les routines pour enfin n'apparaissent plus des erreurs incompréhensibles. Heureusement que c'est moi, et que je trouve des solutions. Beaucoup aurait dit que Panoramic ne vaut rien à ma place, alors qu'une fois finalisé ce sera un basic formidable, et qui je pense dépasse d'autre langage qui nécessite des tonnes de ressources pour fonctionner. Je me lançais dans la programmation PYTHON, mais mon EEEPC est trop limité pour que je l'installe dessus. Et Python est surtout un interpréteur et seulement les anciennes versions sont compilables, quand à la version 3, il faut corriger les programmes précédents parce qu'il y a modification de certaine commande. Panoramic est très rapide, seul une partie de la gestion fichier, à ma connaissance ralenti le programme. Pour cette parti, je préfaire me servir de DLIST pour charger un fichier, travailler dessus. En me servant de la mémoire vive, la rapidité n'est pas la même. Je pense que j'ai été jusqu'au bout de mon idée, et que je peux "lâcher du mou" en quelque sorte. J'ai passé beaucoup de temps pour réagir depuis hier, alors que j'avais prévu de mettre sur le forum mon programme (il faudra que je fasse des essais avant, pour savoir comment faire avec les images, c'est ce qui me fait reporter de jour en jour cela).
Là je montre mon incompétence à m'exprimer, il m'a fallu beaucoup de lignes pour dire peut de choses, et je ne suis pas sur d'avoir été compris. J'espère que pour moi le sujet est clos, pour passer à autre chose.
Merci
A+
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptyVen 25 Sep 2009 - 9:49

Citation :
Là je montre mon incompétence à m'exprimer

Je suis pas d'accord, j'ai très bien compris tes besoins. Il se trouve simplement que nous n'avons pas tout à fait les mêmes, donc mes messages ne correspondent pas forcément a ce que tu exprimes. Il ne s'agit pas d'incompétence, simplement comme pour tout le monde ce n'est pas facile d'expliquer oû on veut en venir.


Citation :
Tu parles de EDIT, mais ça ne concerne pas que ça

Oui tu as raison, mais je me dit que justement, comme on est pas des pros de la programmation (en ce qui me concerne, c'est sur), on s'embrouillerait (peut être) avec une commande plus généraliste.
Attendons de voir ce que le magien va sortir de son chapeau.
J'ai également hate de voir ce que toi tu vas nous sortir.
A+
Revenir en haut Aller en bas
Invité
Invité




Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptyVen 25 Sep 2009 - 18:10

Le magicien que je ne suis pas viens de trouver une erreur et un manque dans son programme, et devra retarder de montrer ses horreurs. Tu me surestimes, je ne suis que peux de chose comme tu vois.
A+
Revenir en haut Aller en bas
JL35




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

Comment terminer une saisie dans un objet par entrée - Page 2 Empty
MessageSujet: Re: Comment terminer une saisie dans un objet par entrée   Comment terminer une saisie dans un objet par entrée - Page 2 EmptyVen 25 Sep 2009 - 18:53

Oh ! un programmeur qui fait une erreur dans un programme, c'est inadmissible !
Revenir en haut Aller en bas
Contenu sponsorisé





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

Revenir en haut Aller en bas
 
Comment terminer une saisie dans un objet par entrée
Revenir en haut 
Page 2 sur 3Aller à la page : Précédent  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: