Mai 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 | 31 | | | Calendrier |
|
| | À TAB !!! | |
| | Auteur | Message |
---|
Froggy One
Nombre de messages : 586 Date d'inscription : 06/01/2012
| Sujet: À TAB !!! Dim 5 Mai 2019 - 7:24 | |
| Désolé pour le mauvais jeu de mot du titre de ce post, je n'ai pas encore petit déjeuné Je recommence tout doucettement à coder sur PANORAMIC, et je découvre enfin l'utilisation des onglets TAB... Or je n'ai pas tout compris : peut-on, ou pas, y afficher quelque chose ? Un petit code vaut mieux qu'un grand discours, et voilà: - Code:
-
label action caption 0,"Calcul d'heures" container_tab 10 tab 11 : parent 11,10 : caption 11,"Infos" tab 12 : parent 12,10 : caption 12,"New" on_mouse_down 12,action end action: message "OK" return Quand je clique sur "New", il ne se passe rien ! quelle angoisse Qu'est-ce que je n'ai pas compris ? Merci et bon dimanche... | |
| | | Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: À TAB !!! Dim 5 Mai 2019 - 9:32 | |
| Bonjour Froggy One, Essais ce code: - Code:
-
label action1,action2 caption 0,"Calcul d'heures" container_tab 10 tab 11 : parent 11,10 : caption 11,"Infos" tab 12 : parent 12,10 : caption 12,"New" on_mouse_down 11,action1 on_mouse_down 12,action2
END
action1: message "Onglet Infos" return
action2: message "Onglet New" return
A+ | |
| | | Marc
Nombre de messages : 2389 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: À TAB !!! Dim 5 Mai 2019 - 12:15 | |
| Bonjour à tous ! Salut Froggy One ! Une fois tes TAB créés, il faut les équiper d'un objet du style MEMO, MEMO_RICH ou SYNEDIT. Voici une petite démo où j'ai équipé le TAB 11 d'un objet MEMO. - Code:
-
label action caption 0,"Calcul d'heures" container_tab 10 tab 11 : parent 11,10 : caption 11,"Infos" tab 12 : parent 12,10 : caption 12,"New"
MEMO 20 PARENT 20,11 FULL_SPACE 20
on_mouse_down 20,action end action: message "OK"
ITEM_ADD 20,"Bonjour Froggy One !" ITEM_ADD 20,"" ITEM_ADD 20,"Bonne programmation en Panoramic !" ITEM_ADD 20,"" ITEM_ADD 20,"A bientôt !" return Bon appétit ! | |
| | | Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: À TAB !!! Dim 5 Mai 2019 - 13:36 | |
| Bravo Marc pour la démonstration. En relisant le sujet, je réalise que Froggy One a posté un code qui fonctionne parfaitement. - Froggy One a écrit:
- Quand je clique sur "New", il ne se passe rien ! quelle angoisse
Qu'est-ce que je n'ai pas compris ? Merci et bon dimanche... Le clic sur "New" met l'objet TAB en avant et il faut ensuite re-cliquez dans le corps du TAB pour obtenir le résultat demandé. Ton code initial fonctionne bien comme prévu. A+ | |
| | | Marc
Nombre de messages : 2389 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: À TAB !!! Dim 5 Mai 2019 - 14:41 | |
| Bonjour et merci Jean-Claude ! - Froggy One a écrit:
- ...peut-on, ou pas, y afficher quelque chose ?
J'ai compris que notre ami Froggy One souhaitait écrire quelque chose dans le corps du TAB. Or, l'instruction MESSAGE qu'il a employé ne fait qu'ouvrir une boite de dialogue extérieure... Dans la démo, j'ai laissé son instruction MESSAGE qui, lors de sa validation, inscrit un texte dans le MEMO qui est dans le TAB. Pour ce faire, l'événement ON_CLICK est assigné à l'objet qui est dans le TAB : le MEMO qui a le numéro 20 dans mon exemple. - Citation :
- ligne 11 : on_mouse_down 20,action
En espérant que ma démonstration soit appropriée. Bonne programmation ! | |
| | | Froggy One
Nombre de messages : 586 Date d'inscription : 06/01/2012
| Sujet: Re Dim 5 Mai 2019 - 17:56 | |
| Vous avez raison tous les deux ! ce que je n'ai pas compris, c'est qu'il faut recliquer sur la "fiche" du deuxième onglet après l'avoir sélectionné en cliquant sur l'onglet proprement dit (le petit bout qui dépasse avec du texte dessus ) ET je voulais effectivement afficher du texte dans l'onglet, ce qui est désormais possible. Double merci !! | |
| | | Jean Claude
Nombre de messages : 5948 Age : 69 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: À TAB !!! Dim 5 Mai 2019 - 20:16 | |
| Bonsoir FroggyOne, - Citation :
- je voulais effectivement afficher du texte dans l'onglet, ce qui est désormais possible
Attention: Ne confonds pas l'Onglet et le "Corps" d'un objet TAB. Dans l'exemple de la Doc, Jack parle de page à qui on donne un titre. Comme tu l'as très bien fait dans ton programme, tu peux donner un texte à l'onglet en utilisant CAPTION onglet1%,"Onglet n°1", mais pour entrer du texte sur la page d'un objet TAB, tu devras utiliser un MEMO ou bien un ALPHA en donnant à l'un ou l'autre le numéro du TAB correspondant comme PARENT. Sur la page du TAB tu peux mettre plein d'objets (BUTTON, EDIT,...) comme pour un FORM. Bonne soirée, A+ | |
| | | Froggy One
Nombre de messages : 586 Date d'inscription : 06/01/2012
| Sujet: Re Dim 5 Mai 2019 - 20:31 | |
| En effet, j'ai utilisé un ALPHA sur le premier onglet, le suivant aura droit à un MEMO. Je doute que le programme intéresse grand-monde (il s'agira de renseigner un nombre d'heures effectuées sur divers projets à l'année) mais en tous cas ça évolue : - Code:
-
caption 0,"Calcul d'heures" ' dim da$,t$ ' ' da$ : date du dernier accès au programme ' label informer,dater ' ' informer : donner da$ ' dater : créer fichier contenant da$ (heurinfo.txt) ' on_close 0,dater:' renseigne da$ à chaque fermeture ' container_tab 10 tab 11 : parent 11,10 : caption 11,"Infos" tab 12 : parent 12,10 : caption 12,"New" alpha 20:parent 20,11:full_space 20 on_mouse_down 20,informer
END
informer:
if file_exists("heurinfo.txt")=0 caption 20,"Quitter SVP" end end_if da$="" file_open_read 1,"heurinfo.txt" file_read 1,da$ file_close 1 t$=chr$(13)+"Bonjour Froggy One !"+chr$(13)+"Dernier accès :"+chr$(13)+da$ caption 20,t$ return
dater: da$=date$ file_open_write 1,"heurinfo.txt" file_write 1,da$ file_close 1 return Je ne ferme pas encore le post, au cas où... merci de ton intérêt ! | |
| | | Froggy One
Nombre de messages : 586 Date d'inscription : 06/01/2012
| Sujet: Re Mer 8 Mai 2019 - 9:14 | |
| Là, j'ai quasiment fini... je peux saisir des plages horaires et faire des calculs ; je sauvegarde la dernière saisie et les rubriques, mais pas le tout donc, je vais le réécrire. Je peux donc fermer ce post, c'est juste que je ne sais plus comment faire... - Code:
-
caption 0,"Calcul d'heures" ' dim a$,aj$,da$,ti$,i%,ni%,nlig%,cal%,tot%,flag ' ' a$ : (variable texte tout usage) ' da$ : date du dernier accès au programme ' ti$ : texte reprenant da$ ' aj$ : dernier ajout ' tr$ : les rubriques des interventions ' flag: test logique ' ni% : nombre d'items (rubriques) ' nlig% nombre de lignes du fichier des rubriques ' cal%: calcul sur la dernière saisie ' tot%: total horaire effectué ' ' Lire le fichier des rubriques, sinon lire (DATA) 3 rubriques if file_exists("rub_hor.txt")=1 file_open_read 1,"rub_hor.txt" file_readln 1,a$ ni%=val(a$) dim tr$(ni%) for i%=1 to ni% file_readln 1,tr$(i%) next i% file_close 1 else ni%=3 dim tr$(ni%) data "maths", "sorties","JO" for i%=1 to ni% read tr$(i%) next i% end_if ' label informer,dater,lister,ante,post,couic,encore,ecr,enr,eft ' ' informer : donner da$ ' dater : créer fichier contenant da$ (heurinfo.txt) ' lister : afficher (LIST) les rubriques ' ante : affiche la précédente ' post : affiche la suivante ' couic : supprime une rubrique ' encore : en ajoute une ' ecr : affiche un GRID et saisit du contenu ' eft : efface le fichier des saisies (type, date, durée, pondération) ' on_close 0,dater:' renseigne da$ et aj$ à chaque fermeture ' ' Création de l'interface container_tab 10 tab 11 : parent 11,10 : caption 11,"Infos" tab 12 : parent 12,10 : caption 12,"Ajout" alpha 21:parent 21,11:full_space 21 list 22 :parent 22,12:full_space 22
on_mouse_down 21,informer on_mouse_down 22,lister
button 31:left 31,135:top 31,215:caption 31,"précdt" button 32:left 32,215:top 32,215:caption 32,"suivant" hide 31:hide 32 on_click 31,ante on_click 32,post
button 33:left 33,135:top 33,245:caption 33,"supprime" button 34:left 34,215:top 34,245:caption 34,"ajoute" hide 33 :hide 34 on_click 33,couic on_click 34,encore
button 35:left 35,0:top 35,245:caption 35,"SAISIE":hide 35 on_click 35,ecr button 36:left 36,0:top 36,270:caption 36,"EFF TOUT":hide 36 on_click 36,eft
grid 40:grid_column 40,4:left 40,300:height 40,193:hide 40
alpha 51:left 51,300:top 51,280:color 51,255,255,255:hide 51 alpha 52:left 52,300:top 52,310:color 52,255,255,255:caption 52,"Date(JJ/mm/AA)":hide 52 edit 53:left 53,421:top 53,310:color 53,210,220,130:hide 53 alpha 54:left 54,300:top 54,340:color 54,255,255,255:caption 54,"Durée (HH:Mn)":hide 54 edit 55:left 55,421:top 55,340:color 55,210,220,130:hide 55 alpha 56:left 56,300:top 56,370:color 56,255,255,255:caption 56,"POND (O/N)":hide 56 edit 57:left 57,421:top 57,370:color 57,210,220,130:hide 57
button 58:left 58,500:top 58,400:caption 58,"OK":hide 58 on_click 58,enr
END
' sous-programmes ' informer (1er onglet) de la dernière saisie informer: hide 31:hide 32:hide 33:hide 34 if (file_exists("heurinfo.txt")=0 or file_exists("last_saisie.txt")=0) caption 21,"Quitter SVP" end end_if da$="":aj$="" file_open_read 1,"heurinfo.txt":file_open_read 2,"last_saisie.txt" file_read 1,da$ while file_eof(2)=0 file_readln 2,aj$ end_while file_close 1:file_close 2 ti$=chr$(13)+"Bonjour Froggy One !"+chr$(13)+"Dernier accès :"+chr$(13)+da$ ti$=ti$+chr$(13)+"Dernier ajout : "+chr$(13)+aj$ caption 21,ti$ return ' écrit da$ et aj$ dans deux fichiers à chaque fermeture dater: da$=date$ if aj$="" then aj$="Aucune saisie à cette date" file_open_write 1,"heurinfo.txt" if file_exists("last_saisie.txt")=0 file_open_write 2,"last_saisie.txt":file_close 2 end_if :file_open_append 2,"last_saisie.txt" file_write 1,da$:file_writeln 2,aj$ file_close 1:file_close 2 return ' affichage des rubriques lister: show 31:show 32:show 33:show 34:show 35:show 36 clear 22 if ni%>0 for i%=1 to ni% item_add 22,tr$(i%) next i% end_if return ' rubrique précédente ante: if item_index(22)>1 item_select 22,item_index(22)-1 end_if return ' rubrique suivante post: if item_index(22)< ni% item_select 22,item_index(22)+1 end_if return ' suppression d'une rubrique couic: item_delete 22,count(22) free ni%:dim ni%:ni%=count(22) free tr$ :dim tr$(ni%) for i%=1 to ni% tr$(i%)=item_read$(22,i%) next i% ' ne pas oublier de sauvegarder ces rubriques dans un FICHIER ! ' je sais, je vais me répéter, ce n'est pas très tructuré. Plus tard ! if file_exists("rub_hor.txt")=1 then file_delete "rub_hor.txt" file_open_write 1,"rub_hor.txt" file_writeln 1,str$(count(22)) for i%=1 to count(22) file_writeln 1,tr$(i%) next i% file_close 1 return ' ajout d'une rubrique encore: a$=message_input$("Nouvelle action", "descriptif","Non précisé") flag=0 ' On vérifie qu'on n'entre pas une rubrique déjà saisie for i%=1 to ni% if item_read$(22,i%)=a$ then flag=flag+1 next i% ' Si ce n'est pas le cas, on ajoute cette rubrique if flag=0 item_add 22,a$ free ni% :dim ni%:ni%=count(22) free tr$ :dim tr$(ni%) for i%=1 to ni% tr$(i%)=item_read$(22,i%) next i% ' ne pas oublier de sauvegarder ces rubriques dans un FICHIER ! if file_exists("rub_hor.txt")=1 then file_delete "rub_hor.txt" file_open_write 1,"rub_hor.txt" file_writeln 1,str$(count(22)) for i%=1 to count(22) file_writeln 1,tr$(i%) next i% file_close 1 end_if return ' affichage du GRID ecr: show 40 grid_write 40,1,2,"Date" grid_write 40,1,3,"Durée" grid_write 40,1,4,"Pond"
for i%=1 to ni% grid_write 40,1+i%,1,item_read$(22,i%) next i% if item_index(22)>0 show 51 caption 51,item_read$(22,item_index(22)) show 52:show 53:show 54:show 55:show 56:show 57:show 58 end_if return ' enregistrement d'une saisie enr: flag=0 if numeric(left$(text$(53),2))=0 then flag=1 if numeric(right$(text$(53),2))=0 then flag=1 if numeric(mid$(text$(53),4,2))=0 then flag=1 if not (mid$(text$(53),3,1)="/") then flag=1 if not (mid$(text$(53),6,1)="/") then flag=1
if not (mid$(text$(55),3,1)=":") then flag=1 if numeric(left$(text$(55),2))=0 then flag=1 if numeric(right$(text$(55),2))=0 then flag=1 if (val(left$(text$(55),2))>24) then flag=1 if (val(right$(text$(55),2))>60) then flag=1
if not((lower$(text$(57))="o") or (lower$(text$(57))="n")) then flag=1 ' Si la saisie est bonne, on écrit dans le tableau if flag=0 grid_write 40,1+item_index(22),2,text$(53) grid_write 40,1+item_index(22),3,text$(55) grid_write 40,1+item_index(22),4,upper$(text$(57)) ' On met à jour la variable "dernier ajout" aj$=item_read$(22,item_index(22))+" "+text$(53)+ " "+text$(55)+" "+upper$(text$(57)) ' On indique brièvement ce que ça représente en temps travaillé cal%=val(left$(text$(55),2))*60 cal%=cal% +val(right$(text$(55),2)) ' on tient compte de la pondération éventuelle if lower$(text$(57))="o" then cal%=int(cal%*1.5) message str$(cal%)+" mn ajoutées" ' Et là on devrait sauver tout le GRID... ' ... et on s'aperçoit que ça pourrait être plus fonctionnel ' et donc, on va le refaire !!! end_if return ' ' effacement de toutes les saisies eft: file_delete "last_saisie.txt":file_open_write 1,"last_saisie.txt":file_close 1 return
En tous cas, je me suis bien amusé. À mon petit niveau, j'ai plaisir à retrouver PANORAMIC !!! bonne journée à tous les panoramiciens ! | |
| | | papydall
Nombre de messages : 7002 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: À TAB !!! Mer 8 Mai 2019 - 19:23 | |
| Salut Tout le monde. Salut Froggy One - Froggy One a écrit:
- Désolé pour le mauvais jeu de mot du titre de ce post, je n'ai pas encore petit déjeuné
Tu nous invites à nous mettre à TABle et puis tu t’en excuses ! Humour pour humour : On ne se met pas à TABle pour déguster le CROCODILE Basic. Tu aurais du nous inviter à TABle dans … " A l’Aide" pour profiter d’une vue PANORAMIC ! Bon, moi aussi, je n’ai pas encore rompu le jeûne, alors désolé pour le mauvais jeu de mot ! A propos : ton code est bien fait ! | |
| | | Froggy One
Nombre de messages : 586 Date d'inscription : 06/01/2012
| Sujet: (résolu) Jeu 16 Mai 2019 - 8:33 | |
| Pour ceux que ça intéresserait, le code final : - Code:
-
caption 0,"Calcul d'heures "+date$
' LABELs ' label rien label ajoute_colonne,retire_colonne label ajoute_ligne,retire_ligne,ajoute_rubrique label Gxy label saisir_heure,saisir_minutes,PdP,SaveR,SaveG
dim f$,i%,j%,h$,mn$,gx%,gy%,pond
' f$ : fichier de rubrique sur laquelle on travaille ' i% et j% : variables tout usage (indices pour boucles) ' h$ et mn$ : variable pour affichage heure et minutes ' gx% et gy% : coordonnées sur le grid ' pond : flag de pondération (temps compté * 1.5)
gx%=2:gy%=2
' Objets ' alpha 11:left 11,4:top 11,244:width 11,400:height 11,46 alpha 12:left 12,450:top 12,6:caption 12," Date : " alpha 13:left 13,360:top 13,6:caption 13," SAISIES : " alpha 14:left 14,486:top 14,208:width 14,3:height 14,25:color 14,255,165,0
color 11,0,165,255:show 11 color 12, 0,165,255 color 13,255,165,0
button 21:left 21,490:top 21,240:caption 21,"Ajout Ligne" button 22:left 22,410:top 22,240:caption 22,"Suppr Ligne" button 23:left 23,410:top 23,270:caption 23,"Rien" button 24:left 24,490:top 24,270:caption 24,"Tout SAUVER"
' boutons des heures (7-14) for i%=121 to 128 button i%:width i%,24: top i%,88:left i%,330+28*(i%-120):caption i%,str$(i%-114) on_click i%,saisir_heure next i% ' boutons des heures (15-22) for i%=129 to 136 button i%:width i%,24: top i%,168:left i%,106+28*(i%-120):caption i%,str$(i%-114) on_click i%,saisir_heure next i% ' boutons des minutes for i%=137 to 140 button i%:width i%,24:top i%,128:left i%,386+28*(i%-136):caption i%,str$(mod((15*(i%-136)),60)) on_click i%,saisir_minutes next i% button 141:left 141,358:top 141,208:caption 141,"Non P":width 141,46 button 142:left 142,490:top 142,208:caption 142,"> TABLEAU" button 143:left 143,410:top 143,208:caption 143,"Quid ?"
edit 31:left 31,490:top 31,28:width 31,24:text 31,"00" edit 32:left 32,520:top 32,28:width 32,24:text 32,"00" edit 33:left 33,490:top 33,58:width 33,24:text 33,"00" edit 34:left 34,520:top 34,58:width 34,24:text 34,"00" edit 35:left 35,490:top 35,2:width 35,24:text 35,str$(date_day) edit 36:left 36,520:top 36,2:width 36,24:text 36,str$(date_month) edit 37:left 37,550:top 37,2:width 37,24:text 37,right$(str$(date_year),2)
option 41:left 41,360:top 41,28:caption 41,"Début :" option 42:left 42,360:top 42,58:caption 42,"Fin :" mark_on 41
grid 100:width 100,346:height 100,height(0)/2
if file_exists ("Mes_heures.txt")=1 grid_load 100,"Mes_heures.txt" else grid_write 100,1,2,"Début" grid_write 100,1,3,"Fin" grid_write 100,1,4,"Pond (O/N)" grid_write 100,1,5,"Date" end_if
' ACTIONS ' on_click 21,ajoute_ligne on_click 22,retire_ligne on_click 143,ajoute_rubrique
on_click 100,Gxy on_click 141,PdP on_click 142,SaveR on_click 24,SaveG
' END ' 'code LABELS ' rien: return
ajoute_colonne: grid_column 100, grid_column(100)+1 return
retire_colonne: if grid_column(100)>2 grid_column 100, grid_column(100)-1 end_if return
ajoute_ligne: grid_row 100,grid_row(100)+1 return
retire_ligne: if grid_row(100)>2 for i%=1 to 6 grid_write 100,gy%,i%,"" next i% grid_row 100,grid_row(100)-1 end_if return ajoute_rubrique: grid_write 100,gy%,1,message_input$("Libellé de l'action","Indique de quoi il s'agit","JO") return
Gxy: gx%=grid_x_to_column(100,mouse_x_position(100)) gy%=grid_y_to_row(100,mouse_y_position(100)) return
saisir_heure: h$="##":j%=120
while h$="##" j%=j%+1 if j%=137 then j%=120 if clicked(j%)=1 then h$=str$(j%-114) end_while if checked(41)=1 text 31,h$ else text 33,h$ end_if return
saisir_minutes: mn$="@@":j%=137
while mn$="@@" j%=j%+1 if j%=141 then j%=137 if clicked(j%)=1 then mn$=str$(mod((15*(j%-136)),60)) end_while if checked(41)=1 text 32,mn$ else text 34,mn$ end_if return PdP: if caption$(141)="Non P" caption 141,"Pond" else caption 141,"Non P" end_if return
SaveR: if len(text$(31))=1 then text 31,"0"+text$(31) grid_write 100,gy%,2,text$(31)+":"+text$(32)
if len(text$(33))=1 then text 33,"0"+text$(33) grid_write 100,gy%,3,text$(33)+":"+text$(34)
if len(text$(35))=1 then text 35,"0"+text$(35) if len(text$(36))=1 then text 36,"0"+text$(36) grid_write 100,gy%,5,text$(35)+"/"+text$(36)+"/"+text$(37)
grid_write 100,gy%,4,caption$(141) return
SaveG: if file_exists ("Mes_heures.txt")=1 then file_delete "Mes_heures.txt" grid_save 100,grid_row(100),grid_column(100),"Mes_heures.txt" return
' code SUBs ' y'en a pô '
et bonne journée ! PS : je m'aperçois au passage que les ss-prog d'ajout et retrait de colonne n'ont plus aucune utilité. Oops ! | |
| | | Contenu sponsorisé
| Sujet: Re: À TAB !!! | |
| |
| | | | À TAB !!! | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |