Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| réflexion sur return dans un memo | |
| | Auteur | Message |
---|
Invité Invité
| Sujet: réflexion sur return dans un memo Sam 2 Oct 2010 - 1:03 | |
| Mettre un titre n'est pas toujours évident. Voilà dans un memo, je le rempli d'une liste de choses. Je contrôle la liste avec on_key_down. Je me suis rendu compte que la lecture de la liste après un return, n'était pas égal à ce qu'elle contient. Il faut un clic pour valider le contenu. On_key_down n'est-il pas une instruction évènementielle? - Code:
-
width 0,700:height 0,900 memo 1:width 1,200:height 1,850:font_size 1,12:color 1,255,247,173 memo 2:width 2,200:left 2,300:height 2,850:font_size 2,12:print_target_is 2 hint 2,"cliquez ici pour réécrir la liste dim a%,b%,a$ :label clic,clic1 for a%=1 to 25:read a$:item_add 1,a$ :next a% on_key_down 1,clic:on_click 2,clic1 message "cliquez à la fin d'un nombre sur return pour rajouter une ligne, et vérifiez ensuite à côté" end ' ---------------- data "un",deux,trois,quatre,cinq,six,sept,huit,neuf,dix,onze,douze,treize,quatorze,quinze,seize,"dix-sept" data "dix-huit","dix_neuf",vingt data "vingt-et-un","vingt-deux","vingt-trois","ving-quatre","vingt-cinq","ving-six","vingt-sept","vingt-huit" data "ving-neuf","trente","trente-et-un","trente-deux","trente-trois","trente-quatre","trente-cinq","trente-six" data "trente-sept","trente-huit","trente-neuf" ' ----- clic: if scancode=13 clic1: for a%=1 to 25:print a%," ",item_read$(1,a%):next a%:print "-------------" end_if return Vous choisissez une ligne (par exemple dix, et tapez return. On voit dans le memo de droite que celui-ci n'est pas validé! Il faut un deuxième return ou un clic sur un memo pour voir la modification. |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: réflexion sur return dans un memo Sam 2 Oct 2010 - 1:20 | |
| Oui,
il semblerai que l'évènement soit exécuté avant le rafraichissement du mémo lui-meme... c'est valable quelque soit le caractère (pas uniquement 'return')
| |
| | | Invité Invité
| Sujet: Re: réflexion sur return dans un memo Sam 2 Oct 2010 - 8:34 | |
| J'ai trouvé la solution. Il faut rajouter la ligne: - Code:
-
repeat:until key_up_code=0 ce qui donne: - Code:
-
width 0,700:height 0,900 memo 1:width 1,200:height 1,850:font_size 1,12:color 1,255,247,173 memo 2:width 2,200:left 2,300:height 2,850:font_size 2,12:print_target_is 2 hint 2,"cliquez ici pour réécrir la liste dim a%,b%,a$ :label clic,clic1 for a%=1 to 25:read a$:item_add 1,a$ :next a% on_key_down 1,clic:on_click 2,clic1 message "cliquez à la fin d'un nombre sur return pour rajouter une ligne, et vérifiez ensuite à côté" end ' ---------------- data "un",deux,trois,quatre,cinq,six,sept,huit,neuf,dix,onze,douze,treize,quatorze,quinze,seize,"dix-sept" data "dix-huit","dix_neuf",vingt data "vingt-et-un","vingt-deux","vingt-trois","ving-quatre","vingt-cinq","ving-six","vingt-sept","vingt-huit" data "ving-neuf","trente","trente-et-un","trente-deux","trente-trois","trente-quatre","trente-cinq","trente-six" data "trente-sept","trente-huit","trente-neuf" ' ----- clic: if scancode=13 repeat:until key_up_code =0 clic1: for a%=1 to 25:print a%," ",item_read$(1,a%):next a%:print "-------------" end_if return |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: réflexion sur return dans un memo Sam 2 Oct 2010 - 9:01 | |
| bien vu ! une autre solution, tu remplaces: - Code:
-
repeat:until key_up_code=0 par - Code:
-
wait 10 et cela fonctionne aussi... | |
| | | Invité Invité
| Sujet: Re: réflexion sur return dans un memo Sam 2 Oct 2010 - 9:19 | |
| Merci. C'est loin d'être gagné. Le memo fait ce qu'il veut. Voici un objet qui normalement devrait être simple à gérer, mais tout est compliqué. Comme on ne connait pas l'emplacement du curseur, il faut normalement suivre ce qu'on fait pour incrémenter ou décrémenter normalement des pointeurs ligne et colonne. Mais voilà! lorsqu'on clique sur return après avoir placé le curseur, celui-ci la première fois se retrouve en bas. Il faut revenir sur la ligne, et là la position de la ligne est reconnu. Un nouvel appuie sur return, laisse le curseur à la bonne position.
Voila un memo qui devrait être simple à gérer, mais comme Jack ne donne pas d'instruction pour placer le curseur, ou donner les positions de celui-ci, j'ai plus qu'à repartir sur un picture. MEMO est trop compliqué à gérer, dès qu'on doit exploiter les lignes. Un comble. Dommage! On ne peut même pas placer le curseur en haut du picture. Désolé Jack mais même pour les choses simples, ce n'est plus de la programmation du dimanche. |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: réflexion sur return dans un memo Sam 2 Oct 2010 - 9:50 | |
| Meme chose pour un list : Un exemple il n'est pas encore fonctionel a 100% pour le -bmp tu prend une image de 850*640 ou plus mais pas necessaire. - Code:
-
Label Sub_Fenetre_Variable_Annul Label Sub_Modifcation_Text_Objets Label Sub_Fenetre_Variable_Ouvrir Label Sub_Fenetre_Variable_Inser Label Boucle_blanc Label Sub_Monter_Libelle Label Sub_Descendre_Libelle Label Sub_entre_Return Label SUB_Bouton_Effacer_Libelle Label Sub_Bouton_Modifier_Libelle Label Sub_Bouton_Ajouter_Libelle Label Sub_Init_FLag Label Sub_Actualiser Label Calcul_Indice Label Sub_Init_FLag_Valeur Label Sub_Init_FLag_Pas Label Sub_Edition_Valeur Label Sub_Edition_Pas
Dim a%,b%,a$,l%,i%,j%,B$,K%,Chaine$,Nom_variable$,Nom_Valeur$,ChaineG$,ChaineD$ Dim flag_item_index%,Indice_Item%,Objet_Valeur%,Objet_Pas%,valeur$,Pas$ Dim Flag_Objet% Dim Flag_Valeur% Dim Flag_Pas%
Dim Fenetre_Numerotation_Objets% Dim List_Fenetre_Numerotation_Objets% Dim List_Valeur_Objets% Dim List_Pas_Objets% Dim Bouton_Fenetre_Numerotation_Objets_Actualise% Dim Bouton_Fenetre_Numerotation_Objets_Ok% Dim Bouton_Fenetre_Numerotation_Objets_Annul% Dim Bouton_Fenetre_Numerotation_Objets_Ouvrir% Dim Bouton_Fenetre_Numerotation_Objets_Inser% Dim Bouton_Ajouter_Libelle% Dim Bouton_Monter_Libelle% Dim Bouton_Descendre_Libelle% Dim Bouton_Effacer_Libelle% Dim Bouton_Modifier_Libelle% Dim Picture_Fenetre_Numerotation_Objets% Dim Tbl_Objets$(200) Dim Tbl_Objets_valeur%(200) Dim Tbl_Objets_Pas%(200)
Dim Zone_edition_Libelle% Dim Zone_edition_Valeur% Dim Zone_edition_Pas% Dim Zone_edition_Increment% Dim Valeur% Dim Pas% Dim Valeur_indice$ Fenetre_Numerotation_Objets% = 2004
List_Fenetre_Numerotation_Objets% = 2063 Bouton_Fenetre_Numerotation_Objets_Actualise% = 2064 Bouton_Fenetre_Numerotation_Objets_Ok% = 2065 Bouton_Fenetre_Numerotation_Objets_Annul% = 2066 Picture_Fenetre_Numerotation_Objets% = 2067 Zone_edition_Libelle% = 2068 Zone_edition_Valeur% = 2070 Zone_edition_Pas% = 2071 Zone_edition_Increment% = 2072 Bouton_Fenetre_Numerotation_Objets_Ouvrir% = 2073 Bouton_Fenetre_Numerotation_Objets_Inser% = 2074 Bouton_Ajouter_Libelle% = 2075 Bouton_Monter_Libelle% = 2076 Bouton_Descendre_Libelle% = 2077 Bouton_Effacer_Libelle% = 2078 Bouton_Modifier_Libelle% = 2079 List_Valeur_Objets% = 2080 List_Pas_Objets% = 2081
Form Fenetre_Numerotation_Objets% Width Fenetre_Numerotation_Objets% , 850 Height Fenetre_Numerotation_Objets% , 640 Left Fenetre_Numerotation_Objets% , 200 Top Fenetre_Numerotation_Objets% , 50 Caption Fenetre_Numerotation_Objets% , " Numerotation des objets..." Border_small Fenetre_Numerotation_Objets%
Command_target_is Fenetre_Numerotation_Objets% Font_Size Fenetre_Numerotation_Objets% , 12 Font_Name Fenetre_Numerotation_Objets%,"Lucida Console"
List List_Fenetre_Numerotation_Objets% Width List_Fenetre_Numerotation_Objets% , 570 Height List_Fenetre_Numerotation_Objets% , 400 Left List_Fenetre_Numerotation_Objets% , 30 top List_Fenetre_Numerotation_Objets% , 80 color List_Fenetre_Numerotation_Objets% , 195, 196, 198 Hint List_Fenetre_Numerotation_Objets% , "Liste des variables objets" On_Click List_Fenetre_Numerotation_Objets% , Sub_Init_FLag set_focus List_Fenetre_Numerotation_Objets%
List List_Valeur_Objets% Width List_Valeur_Objets% , 60 Height List_Valeur_Objets% , 400 Left List_Valeur_Objets% , 610 top List_Valeur_Objets% , 80 color List_Valeur_Objets% , 195, 196, 198 Hint List_Valeur_Objets% , "Liste des variables objets" On_Click List_Valeur_Objets% , Sub_Init_FLag_Valeur
List List_Pas_Objets% Width List_Pas_Objets% , 50 Height List_Pas_Objets% , 400 Left List_Pas_Objets% , 680 top List_Pas_Objets% , 80 color List_Pas_Objets% , 195, 196, 198 Hint List_Pas_Objets% , "Liste des variables objets" On_Click List_Pas_Objets% , Sub_Init_FLag_Pas
Picture Picture_Fenetre_Numerotation_Objets% Width Picture_Fenetre_Numerotation_Objets% , 674 Height Picture_Fenetre_Numerotation_Objets% , 700 Left Picture_Fenetre_Numerotation_Objets% , 0 top Picture_Fenetre_Numerotation_Objets% , 40 File_load Picture_Fenetre_Numerotation_Objets% , "Marbre.bmp" Full_Space Picture_Fenetre_Numerotation_Objets%
Edit Zone_edition_Libelle% Width Zone_edition_Libelle% , 570 Height Zone_edition_Libelle% , 25 Left Zone_edition_Libelle% , 30 top Zone_edition_Libelle% , 50 On_Key_UP Zone_edition_Libelle% , Sub_Entre_Return Hint Zone_edition_Libelle% , "Entrer le nom de la variable"
Edit Zone_edition_Valeur% Width Zone_edition_Valeur% , 60 Height Zone_edition_Valeur% , 25 Left Zone_edition_Valeur% , 610 top Zone_edition_Valeur% , 50 On_Key_UP Zone_edition_Valeur% , Sub_Edition_Valeur Hint Zone_edition_Valeur% , "Entrer le numero de depart de l'objet"
Edit Zone_edition_Pas% Width Zone_edition_Pas% , 50 Height Zone_edition_Pas% , 25 Left Zone_edition_Pas% , 680 top Zone_edition_Pas% , 50 On_Key_UP Zone_edition_Pas% , Sub_Edition_Pas Hint Zone_edition_Pas% , "Entrer le pas d'incrementation"
Button Bouton_Fenetre_Numerotation_Objets_Ok% Width Bouton_Fenetre_Numerotation_Objets_Ok% , 100 Height Bouton_Fenetre_Numerotation_Objets_Ok% , 25 top Bouton_Fenetre_Numerotation_Objets_Ok% , 550 Left Bouton_Fenetre_Numerotation_Objets_Ok% , 92 Hint Bouton_Fenetre_Numerotation_Objets_Ok% , "Valide ,enregistre le fichier,et , sort du programme" Caption Bouton_Fenetre_Numerotation_Objets_Ok% , "Ok"
Button Bouton_Fenetre_Numerotation_Objets_Actualise% Width Bouton_Fenetre_Numerotation_Objets_Actualise% , 120 Height Bouton_Fenetre_Numerotation_Objets_Actualise% , 25 top Bouton_Fenetre_Numerotation_Objets_Actualise% , 20 Left Bouton_Fenetre_Numerotation_Objets_Actualise% , 430 Hint Bouton_Fenetre_Numerotation_Objets_Actualise% , "Actualiser la numerotation des variables objets" Caption Bouton_Fenetre_Numerotation_Objets_Actualise% , "Actualiser" On_click Bouton_Fenetre_Numerotation_Objets_Actualise% ,Sub_Actualiser
Button Bouton_Fenetre_Numerotation_Objets_Annul% Width Bouton_Fenetre_Numerotation_Objets_Annul% , 100 Height Bouton_Fenetre_Numerotation_Objets_Annul% , 25 top Bouton_Fenetre_Numerotation_Objets_Annul% , 550 Left Bouton_Fenetre_Numerotation_Objets_Annul% , 400 Hint Bouton_Fenetre_Numerotation_Objets_Annul% , "Sort du programme sans rien changer Caption Bouton_Fenetre_Numerotation_Objets_Annul% , "Annul" On_click Bouton_Fenetre_Numerotation_Objets_Annul% ,Sub_Fenetre_Variable_Annul
Button Bouton_Fenetre_Numerotation_Objets_Ouvrir% Width Bouton_Fenetre_Numerotation_Objets_Ouvrir% , 100 Height Bouton_Fenetre_Numerotation_Objets_Ouvrir% , 25 top Bouton_Fenetre_Numerotation_Objets_Ouvrir% , 20 Left Bouton_Fenetre_Numerotation_Objets_Ouvrir% , 30 Hint Bouton_Fenetre_Numerotation_Objets_Ouvrir% , "Sort du programme sans rien changer Caption Bouton_Fenetre_Numerotation_Objets_Ouvrir% , "Ouvrir" On_click Bouton_Fenetre_Numerotation_Objets_Ouvrir% ,Sub_Fenetre_Variable_Ouvrir
Button Bouton_Fenetre_Numerotation_Objets_Inser% Width Bouton_Fenetre_Numerotation_Objets_Inser% , 100 Height Bouton_Fenetre_Numerotation_Objets_Inser% , 25 top Bouton_Fenetre_Numerotation_Objets_Inser% , 20 Left Bouton_Fenetre_Numerotation_Objets_Inser% , 130 Hint Bouton_Fenetre_Numerotation_Objets_Inser% , "Sort du programme sans rien changer Caption Bouton_Fenetre_Numerotation_Objets_Inser% , "Inserer" On_click Bouton_Fenetre_Numerotation_Objets_Inser% ,Sub_Fenetre_Variable_Inser
Button Bouton_Monter_Libelle% Width Bouton_Monter_Libelle% , 50 Height Bouton_Monter_Libelle% , 25 top Bouton_Monter_Libelle% , 270 Left Bouton_Monter_Libelle% , 770 Hint Bouton_Monter_Libelle% , "Sort du programme sans rien changer Caption Bouton_Monter_Libelle% , "Haut" On_click Bouton_Monter_Libelle% ,Sub_Monter_Libelle
Button Bouton_Descendre_Libelle% Width Bouton_Descendre_Libelle% , 50 Height Bouton_Descendre_Libelle% , 25 top Bouton_Descendre_Libelle% , 300 Left Bouton_Descendre_Libelle% , 770 Hint Bouton_Descendre_Libelle% , "Sort du programme sans rien changer Caption Bouton_Descendre_Libelle% , "Bas" On_click Bouton_Descendre_Libelle% ,Sub_Descendre_Libelle Hide Bouton_Fenetre_Numerotation_Objets_Inser%
Button Bouton_Effacer_Libelle% Width Bouton_Effacer_Libelle% , 100 Height Bouton_Effacer_Libelle% , 25 top Bouton_Effacer_Libelle% , 20 Left Bouton_Effacer_Libelle% , 230 Hint Bouton_Effacer_Libelle% , "Sort du programme sans rien changer Caption Bouton_Effacer_Libelle% , "Effacer" On_click Bouton_Effacer_Libelle% ,Sub_Bouton_Effacer_Libelle
Button Bouton_Modifier_Libelle% Width Bouton_Modifier_Libelle% , 100 Height Bouton_Modifier_Libelle% , 25 top Bouton_Modifier_Libelle% , 20 Left Bouton_Modifier_Libelle% , 330 Hint Bouton_Modifier_Libelle% , "Sort du programme sans rien changer Caption Bouton_Modifier_Libelle% , "Editer" On_click Bouton_Modifier_Libelle% ,Sub_Bouton_Modifier_Libelle
Button Bouton_Ajouter_Libelle% Width Bouton_Ajouter_Libelle% , 100 Height Bouton_Ajouter_Libelle% , 25 top Bouton_Ajouter_Libelle% , 20 Left Bouton_Ajouter_Libelle% , 30 Hint Bouton_Ajouter_Libelle% , "Sort du programme sans rien changer Caption Bouton_Ajouter_Libelle% , "Ajouter" On_click Bouton_Ajouter_Libelle% , Sub_Bouton_Ajouter_Libelle
Hide Zone_edition_Libelle% Hide Zone_edition_Valeur% hide Zone_edition_Pas% Hide Bouton_Fenetre_Numerotation_Objets_Inser% Hide Bouton_Effacer_Libelle% Hide Bouton_Modifier_Libelle% Hide Bouton_Fenetre_Numerotation_Objets_Actualise% Hide Bouton_Ajouter_Libelle%
' Text Zone_edition_Valeur%,"2000" ' Text Zone_edition_Pas%,"1" set_focus List_Fenetre_Numerotation_Objets%
end
' ========================================================= ' Sous-programmes ' =========================================================
Sub_Fenetre_Variable_Annul: Hide Fenetre_Numerotation_Objets% Return
Sub_Modifcation_Text_Objets:
Show Zone_edition_Libelle% show Zone_edition_Valeur% show Zone_edition_Pas% Show Bouton_Effacer_Libelle% Show Bouton_Modifier_Libelle% Show Bouton_Fenetre_Numerotation_Objets_Actualise% Show Bouton_Ajouter_Libelle%
i%=Item_index(List_Fenetre_Numerotation_Objets%) Chaine$=item_read$( List_Fenetre_Numerotation_Objets%,i%) Text Zone_edition_Libelle%,Chaine$ return
Sub_Fenetre_Variable_Ouvrir:
Hide Bouton_Fenetre_Numerotation_Objets_Ouvrir% Show Bouton_Fenetre_Numerotation_Objets_Inser% Show Bouton_Ajouter_Libelle% Show Zone_edition_Libelle% show Zone_edition_Valeur% show Zone_edition_Pas% Show Bouton_Effacer_Libelle% Show Bouton_Modifier_Libelle% Show Bouton_Fenetre_Numerotation_Objets_Actualise%
set_focus Zone_edition_Libelle%
Return
' ----------------------------------------------------------------------- ' Actions liées aux boutons ' Sous-Programme pour ajouter une ligne dans la liste Objet ' -----------------------------------------------------------------------
Sub_Bouton_Ajouter_Libelle:
If Flag_Objet%=1
Chaine$=text$(Zone_edition_Libelle%)
if Chaine$="" then return
gosub Boucle_blanc
Gosub Calcul_Indice
item_add List_Fenetre_Numerotation_Objets%,Chaine$ item_add List_Valeur_Objets%," " item_add List_Pas_Objets%," " Text Zone_edition_Libelle%,"" set_focus Zone_edition_Libelle% Indice_Item%=0 end_if
return
' ----------------------------------------------------------------------- ' Actions liées aux boutons ' Sous-Programme pour inserer une ligne dans la liste Objet ' -----------------------------------------------------------------------
Sub_Fenetre_Variable_Inser:
If Flag_Objet%=1
Chaine$=text$(Zone_edition_Libelle%)
if Chaine$="" then return
If Indice_Item%>1 gosub Boucle_blanc
Gosub Calcul_Indice i%=Item_index(List_Fenetre_Numerotation_Objets%) item_Insert List_Fenetre_Numerotation_Objets%,I%,Chaine$ item_add List_Valeur_Objets%," " item_add List_Pas_Objets%," " Text Zone_edition_Libelle%,""
return end_if
gosub Boucle_blanc
Gosub Calcul_Indice
item_add List_Fenetre_Numerotation_Objets%,Chaine$ item_add List_Valeur_Objets%," " item_add List_Pas_Objets%," " Text Zone_edition_Libelle%,"" set_focus Zone_edition_Libelle% Indice_Item%=0 end_if
If Flag_Valeur%=1 Chaine$=text$(Zone_Edition_Valeur%) item_add List_Valeur_Objets%,Chaine$ end_if ' ----------------------------------------------------------------------- ' Actions liées aux boutons ' Sous-Programme pour Monter le libelle d'un cran ' ----------------------------------------------------------------------- Sub_Monter_Libelle:
' if flag_item_index%=0 then return if Flag_Objet%=1 i%=Item_index(List_Fenetre_Numerotation_Objets%) if i%=1 then return Chaine$=item_read$( List_Fenetre_Numerotation_Objets%,i%) item_delete List_Fenetre_Numerotation_Objets%,i% Item_Insert List_Fenetre_Numerotation_Objets%,i%-1,Chaine$
Chaine$=item_read$( List_Valeur_Objets%,i%) item_delete List_Valeur_Objets%,i% Item_Insert List_Valeur_Objets%,i%-1,Chaine$ Chaine$=item_read$( List_Pas_Objets%,i%) item_delete List_Pas_Objets%,i% Item_Insert List_Pas_Objets%,i%-1,Chaine$ flag_item_index%=0 return end_if If Flag_Valeur%=1 i%=Item_index(List_Valeur_Objets%) if i%=1 then return Chaine$=item_read$( List_Valeur_Objets%,i%) item_delete List_Valeur_Objets%,i% Item_Insert List_Valeur_Objets%,i%-1,Chaine$ return end_if If Flag_Pas%=1 i%=Item_index(List_Pas_Objets%) if i%=1 then return Chaine$=item_read$( List_Pas_Objets%,i%) item_delete List_Pas_Objets%,i% Item_Insert List_Pas_Objets%,i%-1,Chaine$ return end_if
Return
' ----------------------------------------------------------------------- ' Actions liées aux boutons ' Sous-Programme pour Descendre le libelle d'un cran ' ----------------------------------------------------------------------- Sub_Descendre_Libelle:
i%=Item_index(List_Fenetre_Numerotation_Objets%) ' if flag_item_index%=0 then return if Flag_Objet%=1 if i%=count(List_Fenetre_Numerotation_Objets%) then return Chaine$=item_read$( List_Fenetre_Numerotation_Objets%,i%) item_delete List_Fenetre_Numerotation_Objets%,i% Item_Insert List_Fenetre_Numerotation_Objets%,i%+1,Chaine$
Chaine$=item_read$( List_Valeur_Objets%,i%) item_delete List_Valeur_Objets%,i% Item_Insert List_Valeur_Objets%,i%+1,Chaine$ Chaine$=item_read$( List_Pas_Objets%,i%) item_delete List_Pas_Objets%,i% Item_Insert List_Pas_Objets%,i%+1,Chaine$ flag_item_index%=0 return
end_if
If Flag_Valeur%=1 i%=Item_index(List_Valeur_Objets%) if i%=1 then return Chaine$=item_read$( List_Valeur_Objets%,i%) item_delete List_Valeur_Objets%,i% Item_Insert List_Valeur_Objets%,i%+1,Chaine$ return end_if If Flag_Pas%=1 i%=Item_index(List_Pas_Objets%) if i%=1 then return Chaine$=item_read$( List_Pas_Objets%,i%) item_delete List_Pas_Objets%,i% Item_Insert List_Pas_Objets%,i%+1,Chaine$ return end_if
Return
' ----------------------------------------------------------------------- ' Actions liées Effacer ' Sous-Programme pour Effacer un libelle ' -----------------------------------------------------------------------
SUB_Bouton_Effacer_Libelle: If Flag_Objet%=1 Indice_Item%=Item_index(List_Fenetre_Numerotation_Objets%) item_delete List_Fenetre_Numerotation_Objets%,Indice_Item% item_delete List_Valeur_Objets%,Indice_Item% item_delete List_Pas_Objets%,Indice_Item% end_if
If Flag_Valeur%=1 Indice_Item%=Item_index(List_Valeur_Objets%) item_delete List_Valeur_Objets%,Indice_Item% Item_Insert List_Valeur_Objets%,Indice_Item%,"" end_if
If Flag_Pas%=1 Indice_Item%=Item_index(List_Pas_Objets%) item_delete List_Pas_Objets%,Indice_Item% Item_Insert List_Pas_Objets%,Indice_Item%,"" end_if
return
' ----------------------------------------------------------------------- ' Actions liées aux boutons ' Sous-Programme pour modifier un libelle ' ----------------------------------------------------------------------- Sub_Bouton_Modifier_Libelle:
If Flag_Objet%=1 i%=Item_index(List_Fenetre_Numerotation_Objets%) Chaine$=item_read$( List_Fenetre_Numerotation_Objets%,i%) item_delete List_Fenetre_Numerotation_Objets%,i% Text Zone_edition_Libelle%,Chaine$ Indice_Item%=i% End_if
If Flag_Valeur%=1 i%=Item_index(List_Valeur_Objets%) Chaine$=item_read$( List_Valeur_Objets%,i%) item_delete List_Valeur_Objets%,i% Item_Insert List_Valeur_Objets%,Indice_Item%,"" Text Zone_edition_Valeur%,Chaine$ Indice_Item%=i% End_if
If Flag_Pas%=1 i%=Item_index(List_Pas_Objets%) Chaine$=item_read$( List_Pas_Objets%,i%) item_delete List_Pas_Objets%,i% Item_Insert List_Pas_Objets%,Indice_Item%,"" Text Zone_edition_Pas%,Chaine$ Indice_Item%=i% End_if Return
' ------------------------------------------------------------------------ ' Action liées au Clavier edit Libelle ' Sous-Programme pour entrer un libelle avec la touche Retun ' ------------------------------------------------------------------------
Sub_Entre_Return:
Chaine$=text$(Zone_edition_Libelle%)
if Chaine$="" then return
if Key_up_code=13 Gosub Boucle_Blanc
if Indice_Item%>1 Gosub Calcul_Indice Item_Insert List_Fenetre_Numerotation_Objets%,Indice_Item%,Chaine$ Text Zone_edition_Libelle%,"" return end_if Gosub Boucle_Blanc Gosub Calcul_Indice
item_add List_Fenetre_Numerotation_Objets%,Chaine$ Text Zone_edition_Libelle%,"" item_add List_Valeur_Objets%," " item_add List_Pas_Objets%," " end_if return ' ------------------------------------------------------------------------ ' Action liées au Clavier edit valeur ' Sous-Programme pour entrer une valeur avec la touche Retun ' ------------------------------------------------------------------------ Sub_Edition_Valeur: Chaine$=text$(Zone_Edition_Valeur%)
if Chaine$="" then return
if Key_up_code=13 Indice_Item%=Item_index(List_Valeur_Objets%)
item_delete List_Valeur_Objets%,Indice_Item% Item_Insert List_Valeur_Objets%,Indice_Item%,Chaine$
Text Zone_Edition_Valeur%," "
end_if return
' ------------------------------------------------------------------------ ' Action liées au Clavier edit Pas ' Sous-Programme pour entrer un pas avec la touche Retun ' ------------------------------------------------------------------------ Sub_Edition_Pas: Chaine$=text$(Zone_Edition_Pas%)
if Chaine$="" then return
if Key_up_code=13 Indice_Item%=Item_index(List_Pas_Objets%)
item_delete List_Pas_Objets%,Indice_Item% Item_Insert List_Pas_Objets%,Indice_Item%,Chaine$ Text Zone_Edition_Pas%," "
end_if return ' ------------------------------------------------------------------------ ' Action liées a List ' Sous-Programme pour controller la monté du libelle ' ------------------------------------------------------------------------
Sub_Init_FLag:
flag_item_index%=1 Indice_Item%=Item_index(List_Fenetre_Numerotation_Objets%) print Indice_Item% Flag_Objet%=1 Flag_Valeur%=0 Flag_Pas%=0
return ' ------------------------------------------------------------------------ ' Action liées a List valeur ' Sous-Programme pour calculer la numero de l'objet ' ------------------------------------------------------------------------
Sub_Actualiser:
return
' ------------------------------------------------------------------------ ' Action liées a Chaine$ ' Sous-Programme pour remplacer le blanc par _ dans chaine$ ' ------------------------------------------------------------------------ Boucle_blanc: L%=Len(chaine$) If Instr(Chaine$,Chr$(32))=0 then Return if Left$(Chaine$,1)="'" then Return chaine$=Trim$(chaine$) ChaineG$=Left$(Chaine$,Instr(Chaine$,Chr$(32))-1) ChaineD$=Right$(Chaine$, L% - (Instr(Chaine$,Chr$(32)))) Chaine$=ChaineG$+"_"+ ChaineD$ goto Boucle_blanc return ' ------------------------------------------------------------------------ ' Action liées a Chaine$ ' Sous-Programme pour remplacer le blanc par _ dans chaine$ ' ------------------------------------------------------------------------ Calcul_Indice:
' Valeur%=val(Text$(Zone_edition_Valeur%)) ' Pas%=val(Text$(Zone_edition_Pas%))
Valeur_indice$= str$ (Valeur%+Pas%)
Return
Sub_Init_FLag_Valeur:
Flag_Objet%=0 Flag_Valeur%=1 Flag_Pas%=0 return
Sub_Init_FLag_Pas:
Flag_Objet%=0 Flag_Valeur%=0 Flag_Pas%=1
return
Le Memo se gère comme un list.Sauf que tu ne peu pas entrer directement des valeurs dans le LIST. | |
| | | Invité Invité
| Sujet: Re: réflexion sur return dans un memo Sam 2 Oct 2010 - 10:46 | |
| Je viens de regarder ton programme à toute vitesse. Il faudra attendre pour voir une fois fini. Les problèmes sont pas facile à gérer.
Étant très critique sur ce que je viens de mettre, j'ai effacé, je crois que cela ne changera rien. Dommage, mais c'est toujours moi qui joue le mauvais rôle. |
| | | Invité Invité
| Sujet: Re: réflexion sur return dans un memo Sam 2 Oct 2010 - 12:01 | |
| Je crois que je vais me servir de Crimson Editor pour mon programme. Il va me servir d'éditeur, et comme on peut lancer un programme Panoramic avec par les macros, je pourrai ainsi diriger le contrôle de l'éditeur par Panoramic. C'est une situation provisoire qui pourra surement être revu ensuite. Il suffit de refaire une page pour un autre langage, avec un programme Panoramic. Seul le lien est à revoir. |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: réflexion sur return dans un memo Sam 2 Oct 2010 - 14:19 | |
| @Cosmos j'ai pas bien compris la.... - Citation :
Il suffit de refaire une page pour un autre langage, avec un programme Panoramic. Seul le lien est à revoir.
| |
| | | Invité Invité
| Sujet: Re: réflexion sur return dans un memo Sam 2 Oct 2010 - 14:46 | |
| En fait je l'ai revu depuis. Lorsque je parlais de langage, c'était pour lui donné un autre nom avec une autre entrée et un autre raccourcis. Le but est de me servir de Crismon pour servir en quelque sorte de mémo, et de traité avec Panoramic le contenu. J'ai pas le temps pour l'instant de concevoir un truc qui me convienne. Je suis sur une autre idée, et c'est là que je veux développer, et non perdre mon temps pour obtenir ce que je veux. C'est toujours à complication. En faite sur le programme chain de récupération que j'avais publié, je l'ai repris en partie, pour qu'il puisse être traité par un autre programme, le texte de l'éditeur Crismon étant dans le presse-papier. Celà sera à revoir par la suite.
De toute façon le traitement du memo je le reprendrais par la suite. Peut-être que d'ici là Jack acceptera de rajouter des commandes. On peut toujours rêver. |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: réflexion sur return dans un memo Sam 2 Oct 2010 - 15:35 | |
| | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: réflexion sur return dans un memo Sam 2 Oct 2010 - 17:43 | |
| Oui c'est une forme de programmation (ladder,grafcet...) surtout utilisé sur les automates programmables. Genre Allen-bradley avec le logiciel de Rockwell...on l'utilise dans ma boite... Labview propose aussi pour leurs chaines d'acquisition un logiciel qui représente les fonctions de manière graphique. (bluffant d'ailleurs le truc! j'ai un collègue au boulot qui s'éclate comme un fou avec..)
| |
| | | Contenu sponsorisé
| Sujet: Re: réflexion sur return dans un memo | |
| |
| | | | réflexion sur return dans un memo | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |