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.
un module Multipage Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
un module Multipage Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
un module Multipage Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
un module Multipage Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
un module Multipage Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
un module Multipage Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
un module Multipage Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
un module Multipage Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
un module Multipage Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
un module Multipage Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
un module Multipage Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
un module Multipage Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
un module Multipage Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
un module Multipage Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
un module Multipage 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

 

 un module Multipage

Aller en bas 
2 participants
AuteurMessage
Invité
Invité




un module Multipage Empty
MessageSujet: un module Multipage   un module Multipage EmptySam 31 Oct 2009 - 14:02

un module Multipage 0multipage
le code:
Code:

dim dossier$,boite%,ligne%,a$,onglet% ,a%,PrimOnglet%,NbOnglet% ,DernierOnglet%,LigOnglet%,suivre%
dim ongletclic% , MultiPage%
label DeCadix ,lecture,sauve,save,load,rajouOnglet,choixFichier
left 0,480:top 0,00:width 0,750:height 0,750 :color 0,210,230,210

MultiPage%=7
PrimOnglet%=MultiPage%+6

button MultiPage%+1:left MultiPage%+1,670:top MultiPage%+1,10:width MultiPage%+1,70
                caption MultiPage%+1,"lecture":on_click MultiPage%+1,load
button MultiPage%+2:left MultiPage%+2,670:top MultiPage%+2,40:width MultiPage%+2,70
                caption MultiPage%+2,"sauvegarde":on_click MultiPage%+2,save
button MultiPage%+3:left MultiPage%+3,670:top MultiPage%+3,70:width MultiPage%+3,70
                caption MultiPage%+3,"New onglet":on_click MultiPage%+3,rajouOnglet
button MultiPage%+4:left MultiPage%+4,670:top MultiPage%+4,100:width MultiPage%+4,70
                caption MultiPage%+4,"FICHIER ?":on_click MultiPage%+4,choixFichier
open_dialog MultiPage%+5

NbOnglet%=0
memo MultiPage%:left MultiPage%,10:top MultiPage%,37:width MultiPage%,650:height MultiPage%,600:color MultiPage%,226,223,186 :font_size MultiPage%,12 :bar_vertical MultiPage%
 ' ----------------------------------------------------------------------
NbOnglet%=NbOnglet%+1:suivre%= PrimOnglet%+NbOnglet%
edit  suivre%:left suivre%,40:top suivre%,20:width suivre%,70:height suivre%,22:color suivre%,226,223,186
on_click suivre%,DeCadix : suivre%=suivre%+1
DernierOnglet%=1

dlist suivre% :NbOnglet%=NbOnglet%+1  :rem 1er onglet
dlist PrimOnglet%                      :rem titres onglets

end
' ======================================================================================================================

choixFichier:
  filter MultiPage%+5,"chercher le fichier|existance fiches.txt"
  dossier$=file_name$(MultiPage%+5)
return
' --------------------------------------------------------------
DeCadix:
  for a%=PrimOnglet%+1 to PrimOnglet%+ DernierOnglet%*2-1  step 2
    if clicked(a%)=1 then exit_for
  next a%
  ongletclic%=a% :if onglet%=0 then onglet%=a%
  color onglet%,251,223,211:font_color onglet%,0,0,0:font_bold_off onglet%
  gosub sauve
  onglet%=ongletclic%:color onglet%,226,223,186:font_color onglet%,255,0,0:font_bold onglet%  :rem celui du mémo
  gosub lecture :set_focus MultiPage%
 return
' --------------------------------------------------------------
sauve:
  color MultiPage%,251,186,159:display:wait 100
  height onglet%,19
  clear PrimOnglet%
  for a%=1 to (NbOnglet%-1)*2 step 2
      a$=text$(PrimOnglet%+a%)
      item_add PrimOnglet%,a$
  next a%
  rem les titres
  clear onglet%+1:ligne%=1
  if count(MultiPage%)>0
      while ligne%<=count(MultiPage%)
      a$=item_read$(MultiPage%,ligne%):item_add onglet%+1,a$
      ligne%=ligne%+1
      end_while
  end_if
  clear MultiPage%
return
' --------------------------------------------------------------
lecture:
  color onglet%,251,223,211:font_color ongletclic%,0,0,0:font_bold_off onglet%
  wait 50:clear MultiPage% :wait 50
  if count(onglet%+1)>0
      ligne%=1
      while ligne%<= count(onglet%+1)
        a$=item_read$(onglet%+1,ligne%)
        item_add MultiPage%,a$
        ligne%=ligne%+1
      end_while
  end_if
  height onglet%,22 :font_color onglet%,255,0,0:color onglet%, 226,223,186
  color MultiPage%,226,223,186

return
' --------------------------------------------------------------
save:
caption MultiPage%+2,"sauve"
color MultiPage%,251,186,159:display:wait 100
for a%=1 to DernierOnglet%
  a$="onglet "+str$(a%)+".fic"
  file_save a%*2 + PrimOnglet%, a$
next a%

clear PrimOnglet%
for a%=PrimOnglet%+1 to PrimOnglet%+(nbOnglet%-1)*2 step 2:item_add PrimOnglet%,text$(a%):next a%
item_add PrimOnglet%,"$$$"
file_save PrimOnglet%,"titre onglets.fic"
caption MultiPage%+2,"sauvegarde":color MultiPage%,226,223,186
return
' --------------------------------------------------------------
load:
color MultiPage%,251,186,159:display:wait 100
caption MultiPage%+1,"lire"
clear PrimOnglet%:color MultiPage%,226,223,186
onglet%=PrimOnglet%+1: height onglet%,23

ligne%=1
while file_exists("onglet "+str$(ligne%)+".fic")=1
  a$="onglet " + str$(ligne%) + ".fic"
  if ligne%>DernierOnglet% then gosub rajouOnglet
  if file_exists("onglet "+str$(ligne%)+".fic")=0 then exit_while
  file_load  ligne%*2 + PrimOnglet% ,a$
  ligne%=ligne%+1

end_while
file_load PrimOnglet%,"titre onglets.fic"
  if count(PrimOnglet%)>0
      ligne%=1 :ligOnglet%=1
      while ligne%<= count(PrimOnglet%)
        a$=item_read$(PrimOnglet%,ligne%)
        if a$="$$$" then exit_while
        text PrimOnglet%+ligOnglet%,a$
        ligne%=ligne%+1 :ligOnglet%=ligOnglet%+2
        if ligne%>DernierOnglet% then exit_while
      end_while
  end_if
  gosub lecture  : boite%=PrimOnglet%+2
  caption MultiPage%+1,"lecture" :color MultiPage%,226,223,186
return
' --------------------------------------------------------------
rajouOnglet:
  suivre%=suivre%+1
  edit suivre%:left suivre%,110-70+DernierOnglet%*70:top suivre%,20:width suivre%,70:height suivre%,22:color suivre%,251,223,211
  font_color suivre%,0,0,0: on_click suivre%,DeCadix: suivre%=suivre%+1
  dlist suivre%:NbOnglet%=NbOnglet%+1
  DernierOnglet%=DernierOnglet%+1
return

Je sais pas si je pourrais suivre les éventuelles commentaire, je vais partir plusieurs jours dans le Jura
A+
J'ai réédité ce code dont des lignes ont sautées


Dernière édition par cosmos70 le Sam 31 Oct 2009 - 16:54, édité 1 fois
Revenir en haut Aller en bas
Invité
Invité




un module Multipage Empty
MessageSujet: Re: un module Multipage   un module Multipage EmptySam 31 Oct 2009 - 14:07

Super cosmos ton Multipage !

Juste une chose il peut déborder d'onglets.

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




un module Multipage Empty
MessageSujet: Re: un module Multipage   un module Multipage EmptySam 31 Oct 2009 - 14:40

Désolé, comme je l'ai dis, je n'ai pas fini. J'ai l'intention de pouvoir aussi en mettre sur les côtés. J'ai un module à faire aussi pour modifier les paramètres. Mais une chose à la fois. Il y aura des modifs, qui j'espère n'aura pas d'effet sur ce pourra être enregistrés d'ici là.
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

un module Multipage Empty
MessageSujet: Re: un module Multipage   un module Multipage EmptySam 31 Oct 2009 - 15:15

Content de te relire, je commencais à être inquiet.

Ton truc est pas mal, çà donne des idées. Il faut pour que çà marche créer le fichier ,"titre onglets.fic" à moins que je n'ai pas compris la mise en route.

Je vais regarder cela de plus près.
Revenir en haut Aller en bas
Invité
Invité




un module Multipage Empty
MessageSujet: Re: un module Multipage   un module Multipage EmptySam 31 Oct 2009 - 15:29

Il y a juste à crée un fichier vide, c'est seulement pour faciliter la recherche avec open_dialog. Seul ce fichier est visible lorsqu'il existe, ce qui facilite le repérage.
J'ai beaucoup de chose à faire en ce moment, et je préfère intervenir que par nécessité. Mais je n'oubli rien.
Pour que cela marche, il faut déjà écrire quelque chose dans un mémo, pour qu'il les retrouve à la lecture.
Donc d'abord créer un fichier, là où on sauvegarde (vu que chaque mémo a un fichier, le mieux est de créer un dossier spécifique, à ce mémo) et mettre le fichier "existance fiches.txt" dans ce dossier. Après 1 ou 2 appels, il ne devrait plus avoir de problème.
Le débordement d'onglet, je le savais lorsque j'ai envoyé ce post, mais il sera résolu ensuite. Je vais partir quelques jours. Je ne peux pas le faire maintenant.
A+
Revenir en haut Aller en bas
Invité
Invité




un module Multipage Empty
MessageSujet: Re: un module Multipage   un module Multipage EmptySam 31 Oct 2009 - 17:01

J'ai réédité le programme. Des lignes ont sautées lors du nettoyage
La couleur de l'onglet en cours, ne correspondait plus au mémo.
Ensuite, si ce programme fonctionnait bien en cliquant sur lecture pour recharger les pages sauvegardées, il se bloquait au départ. Une variable n'était plus actualisée.
A+
Revenir en haut Aller en bas
Georges

Georges


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

un module Multipage Empty
MessageSujet: re   un module Multipage EmptyMar 3 Nov 2009 - 15:34

salut

Bravo Cosmos70, bel exemple de multi-pages

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




un module Multipage Empty
MessageSujet: Re: un module Multipage   un module Multipage EmptyDim 6 Déc 2009 - 12:08


modification silencieuse le 9 décembre 7h36


J'ai refais mon programme, dont voici l'effet:
https://2img.net/r/ihimizer/img188/5789/mmopourweb.jpg
Je n'arrive plus à mettre les images directement ici?
ESSAYEZ CE PROGRAMME? IL EST IMPORTANT DE CONNAITRE LES LIMITES DU BASIC et qui apparaissent ici
Je viens de rééditer : il faut tout mettre dans le même dossier, et modifier la ligne:50 avec:
dossier$="E:\MEMO\" pour ettre en conformité avec votre extension (désolé mais avec les problèmes que j'ai eu, je n'ai plus pensé à revoir la faculté de choisir ou modifier le dossier)
A partir du moment que le programme fonctionne, tout nouvel onglet, ou nouvelle liste, se chargera de lui-même. Vous quittez sur le bouton stop, et la sauvegarde se fait sans rien demander.

un module Multipage Ajonglet.th

un module Multipage Boiteproprits.th

un module Multipage Efface.th

un module Multipage Fleched.th

un module Multipage Flecheg.th

un module Multipage Newitem.th

un module Multipage Rajeunir.th

un module Multipage Rename.th


un module Multipage Save1.th

un module Multipage Save2.th


un module Multipage Stopxr.th


Je ne le recopie pas sur l'autre, parce que celui-ci est plus complet, mais des fonctions refusent de fonctionner, la suite en dessous.

Je vous livre cette nouvelle version de multi page. Cette version n'est pas parfaite, je l'aurai bien voulu, mais je suis confronté depuis plusieurs jours à un problème qui n'est pas le mien, mais celui de Panoramic. Je ne suis d'ailleurs pas sure qu'il soir vraiment en cause, mais peu être lié aux interruptions liés au système de xp. J'ai inclus dans mon programme une boite de propriété, et depuis je n'ai que des problèmes. Ce n'ai pas une erreur de programmation, pas encore, puisque la cause n'a pas été signalée (à ma connaissance), mais le deviendra ensuite, si il est défini dans ses limites.
En incluant cette boite (d'ailleurs ce problème je l'ai déjà eu précédemment, mais je ne savais pas pourquoi), des lignes de programme ne sont plus prise en compte, ainsi dans un des sous programme "DeCadix" (pourquoi DeCadix? parce que codage: LABEL DeCadix a des yeux de velours ... c'est pour les anciens)
vers la ligne 370:
position barFonteROUGE,rouge%
position barFonteVERT,vert% etc....
toutes ces lignes ont étés déplacé, elles étaient codées ainsi

a$=item_read$(listINI,boite%)
Frouge%=val(left$( a$,3)):position barFonteROUGE,rouge%
Fvert%=val( mid$(a$,5,3)):position barFonteVERT,vert%
etc... etc...

et là, le texte ne s'affichait plus correctement. Les paramètres n'étaient plus actualisé. C'est en déplaçant « position ... » que j'ai pu afficher le texte avec les paramètres convenablement. Par contre en déplacant ces lignes, c'est celle-ci qui ne sont plus dans le sous/prog n'est plus fonctionnel.
La question est la suivante: EST-CE IL N'Y A PAS UNE LIMITE DANS LE NOMBRE D'OBJETS QUI PUISSENT FONCTIONNER ENSEMBLE ?
Le basic étant un basic à événements, est-ce que avec ON_CLIC ON_CHANGE qui surement sont lus pendant les interruptions, ceux-ci sont limité par le nombre, est-ce que la fréquence du processeur entre en compte? Il serait bien que Jack donne des précisions pour savoir quoi faire. Peut-être avec la fonction que je vois, OFF_CLICK ..., il faut l'utiliser pour que ne soit opérationnel qu'une parties des objets cliquables à la fois ??? Dans ce cas il faudra prévoir une table pour savoir si on doit ou non modifier ces paramètres, comme dans ce type de programme, où les onglets, on les ajoute ou on les efface à volonté.
Quoi qu'il en soit, je livre le programme tel-quel. J'ai mis des lignes en REM lorsque cela pose problème dans le logiciel, c'est à vous de voir, si certaines peuvent oui ou non être incorporées. (Ayant un vieux XP avec 500 MG de mémoire est-ce le problème?).

Dans ce programme, j'ai utilisé en partie le programme de Georges pour ce qui concerne une boite d'appels diverses. En regardant de très près, j'ai trouvé une solution pour pouvoir modifier un objet ALPHA. A vous de chercher.

Même si vous n'aimez pas ce programme, je vous demande de l'essayer, et de modifier les lignes qui sont mis en REM. Vous verrez qu'il y a une limite à ce qu'on peut faire.
Je remarque aussi, cela dépend, qu'il faut cliquer une 2ème fois sur un onglet pour que l'affichage soit entièrement actualisée (texte et propriétés)

REMARQUE: si la bordure reste marron, il faut re-cliquer sur l'onglet, le programme n'a pas été jusqu'au "RETURN"
Cette fois-ci il est nécessaire de télécharger les boutons qui vont avec ce programme

Apparemment Jack a retirer toute possibilité de pouvoir afficher des images sur ce site (et faire une aide avec - je n'ai pas le temps pour l'inclure dans le programme).

Code:
' boite d'onglets complétée donc Version 02
dim dossier$,boite%,ligne%,a$,onglet% ,a%,i%,PrimOnglet%,NbOnglet% ,DernierOnglet%,LigOnglet%,suivre%
dim ongletclic% ,sauve% ,table% ,decale%,objet%,suivi%,ga%,mi%,dr%,f$,liste%,tiroir$,larg%,alfa%,haut%
dim gauche%,Hfonte%
dim VIGNETTE%
dim rouge%,vert%,bleu% ,Frouge%,Fvert%,Fbleu% ,boiteprop%,Fnom$,default$

' ------------VARIABLES NOM D'OBJETS-------------------------------------------
dim FenDoc,FlecheG,FlecheD,halt,DDialog,tiroir,MMenuM,MMenuFichier,MMenuLecture
dim MMenuSauve,MMenuOnglet,MMenuQuelFichier,Cinoche,enreg,onglet,TableOnglet
dim listINI,BoiteBOX,BoutonOUI,BoutonNON,ALFAques,Repond,AJOUTliste,Renomme
dim etiquet,OnglEface,montreSize,BarSize,alfaSize,boutonGO,listeFONTE,montrExemple
dim carreFondBLEU,carreFondVERT,carreFondROUGE,BarFondBLEU,BarFondVERT
dim BarFondROUGE,alfaFontImage,carreFonteBLEU,carreFonteVERT,carreFonteROUGE
dim BarFonteBLEU,BarFonteVERT,BarFonteROUGE,choixFonteBARRE,choixFonteSOULIGNE
dim choixFonteITALIC,choixFonteGRAS,alfaFONTE,choixLargHaut,BoiteModif
dim ApelStyl,stoppe

' Ces lignes suivantes ont étées défini par le programme publié sur des objets nommés par des variables
rem variables définissant les objets
FenDoc=1 : FlecheG=FenDoc+1 : FlecheD=FlecheG+1 : halt=FlecheD+1 : DDialog=halt+1
tiroir=DDialog+1 : MMenuM=tiroir+1 : MMenuFichier=MMenuM+1 : MMenuLecture=MMenuFichier+1
MMenuSauve=MMenuLecture+1 : MMenuOnglet=MMenuSauve+1 : MMenuQuelFichier=MMenuOnglet+1
Cinoche=MMenuQuelFichier+1 : enreg=Cinoche+1 : onglet=enreg+1 : TableOnglet=onglet+1
listINI=TableOnglet+1 : BoiteBOX=listINI+1 : BoutonOUI=BoiteBOX+1 : BoutonNON=BoutonOUI+1
ALFAques=BoutonNON+1 : Repond=ALFAques+1 : AJOUTliste=Repond+1 : Renomme=AJOUTliste+1
etiquet=Renomme+1 : OnglEface=etiquet+1 : montreSize=OnglEface+1 : BarSize=montreSize+1
alfaSize=BarSize+1 : boutonGO=alfaSize+1 : listeFONTE=boutonGO+1 : montrExemple=listeFONTE+1
carreFondBLEU=montrExemple+1 : carreFondVERT=carreFondBLEU+1 : carreFondROUGE=carreFondVERT+1
BarFondBLEU=carreFondROUGE+1 : BarFondVERT=BarFondBLEU+1 : BarFondROUGE=BarFondVERT+1
alfaFontImage=BarFondROUGE+1 : carreFonteBLEU=alfaFontImage+1 : carreFonteVERT=carreFonteBLEU+1
carreFonteROUGE=carreFonteVERT+1 : BarFonteBLEU=carreFonteROUGE+1 : BarFonteVERT=BarFonteBLEU+1
BarFonteROUGE=BarFonteVERT+1 : choixFonteBARRE=BarFonteROUGE+1 : choixFonteSOULIGNE=choixFonteBARRE+1
choixFonteITALIC=choixFonteSOULIGNE+1 : choixFonteGRAS=choixFonteITALIC+1 : alfaFONTE=choixFonteGRAS+1
choixLargHaut=alfaFONTE+1 : BoiteModif=choixLargHaut+1 : ApelStyl=BoiteModif+1 : stoppe=ApelStyl+1

VIGNETTE%=stoppe+1:' cet variable permet d'ajouter des objets sans revoir l'intérieur du programme
                  ' autrement elle serait inutile
label DeCadix ,lecture,sauve,save,load,rajouOnglet,choixFichier,fin ,vu,droite,gauche,voir_onglet,liste,nom
label box,oui,non ,changeNom,alfa1,accepte
label del_Onglet,sortieBoite,fermeBoite,afice,prisePosition,DeCadix1
' labels pour boite propriété
label auf ,unserem ,bild ,vier,manner,mit,schneider

color 0,205,242,227 :left 0,200  : gauche%=100 : haut% =100

' ------------------------------------------------------------------------------
'                                                                              '
'                                                                              '
dossier$="E:\MEMO\" :' rem ADAPTEZ LE DOSSIER SELON VOTRE EMPLACEMENT          '
dir_change dossier$ :                                                          '
'                                                                              '
'                                                                              '
' ------------------------------------------------------------------------------'
' ==============================================================================
picture AJOUTliste :left AJOUTliste,505:top AJOUTliste,0:width AJOUTliste,25:height AJOUTliste,23
      stretch_on AJOUTliste:file_load AJOUTliste,dossier$+"new_item.jpg":hint AJOUTliste,"Ajouter une LISTE"

picture Renomme :left Renomme,535:top Renomme,0:width Renomme,25:height Renomme,23
      stretch_on Renomme:file_load Renomme,dossier$+"rename.jpg" :hint Renomme,"changer le nom de la liste"

suivre%=VIGNETTE% :' suivre% défini chaque onglet par EDIT et DLIST dans lequel chaque mémo est sauvegardé.


larg%=680:haut%=720
left 0,550:top 0,10:width 0,larg%:height 0,haut% :color 0,210,230,210 :rem border_hide 0
caption 0,"Mémo multiple"
mi%=int((width(0)-120 )/70): ' nb d'onglets disponible sur la largeur
' ========================
  picture FlecheG:left FlecheG,52:top FlecheG,24:width FlecheG,23:height FlecheG,23
        file_load FlecheG,"FlecheG.jpg":hint FlecheG,"onglet précédent": hide FlecheG
        on_click FlecheG,gauche
  picture FlecheD:top FlecheD,24:width FlecheD,23:height FlecheD,23
        file_load FlecheD,"FlecheD.jpg":hint FlecheD,"onglet suivant": hide FlecheD
        on_click FlecheD,droite  : left FlecheD,(mi%+1)*70+3
' --------------------------------------------------------------------
  button halt:left halt,580:top halt,3:width halt,40:height halt,18
        caption halt,"Stop" :on_click halt,fin:hint halt,"Quittez avec sauvegarde"
  open_dialog DDialog
' --------------------------------------------------------------------
' '    list pour remplacer les onglets verticaux
  combo tiroir:left tiroir,200 :top tiroir,0:width tiroir,300
        height tiroir,20:color tiroir,210,230,210:font_size tiroir,11
        font_bold tiroir:font_color tiroir,0,0,255 :hint tiroir,"changer de liste"
        on_click tiroir,liste
' --------------------------------------------------------------------
LigOnglet%=0
  main_menu MMenuM
  sub_menu MMenuFichier:caption MMenuFichier,"Menu":parent MMenuFichier,MMenuM
  sub_menu MMenuLecture:caption MMenuLecture,"Lecture":parent MMenuLecture,MMenuFichier
          on_click MMenuLecture,load
  sub_menu MMenuSauve:caption MMenuSauve,"Sauvegarde":parent MMenuSauve,MMenuFichier
          on_click MMenuSauve,save
  sub_menu MMenuOnglet:caption MMenuOnglet,"Neuw Onglet":parent MMenuOnglet,MMenuFichier
          on_click MMenuOnglet,rajouOnglet
  sub_menu MMenuQuelFichier:caption MMenuQuelFichier,"FICHIER ?":parent MMenuQuelFichier,MMenuFichier
          on_click MMenuQuelFichier,choixFichier
' --------------------------------------------------------------------
memo FenDoc:left FenDoc,10:top FenDoc,42:width FenDoc,width(0)-30:height FenDoc,haut%-110
    color FenDoc,230,250,155 :font_size FenDoc,14 :bar_both FenDoc
 ' -------------------------------------------------------------------
picture Cinoche:left Cinoche,0:width Cinoche,25 :height Cinoche,23
      stretch_on Cinoche:file_load Cinoche,dossier$+"RAJEUNIR.jpg"
      hint Cinoche,"adapter les onglets et le mémo avec la fenêtre"
      on_click Cinoche,vu
 ' -------------------------------------------------------------------
dlist TableOnglet                      :rem titres onglets
 ' -------------------------------------------------------------------
picture enreg:left enreg,70:top enreg,0:width enreg,23:height enreg,23
      file_load enreg,dossier$ + "SAVE1.jpg"
      on_click enreg,save:hint enreg,"sauvegarder"
 ' -------------------------------------------------------------------
picture onglet:left onglet,97:top onglet,0:width onglet,25:height onglet,25
      stretch_on onglet:file_load onglet,dossier$+"AjOnglet.jpg":on_click onglet,rajouOnglet
      hint onglet,"ajouter un onglet"
 ' -------------------------------------------------------------------
 ' la fonte pour cet edit est une fonte ayant des caractères de largeur identique (27 dans cet edit)
 ' si elle n'est pas installé, mettre une ayant les mêmes caractéristiques
edit etiquet:left etiquet,200:top etiquet,0:width etiquet,280:height etiquet,20
      font_size etiquet,13:font_color etiquet,0,0,255:font_name etiquet,"aSwIt Mono 864"
      font_bold etiquet:color etiquet,148,243,206
picture OnglEface:left OnglEface,127:top OnglEface,0:width OnglEface,25
      height OnglEface,23:hint OnglEface,"effacer l'onglet en cours"
      stretch_on OnglEface:file_load OnglEface,dossier$+"efface.jpg":on_click OnglEface,accepte
 ' -------------------------------------------------------------------
picture ApelStyl:left ApelStyl,30:top ApelStyl,0:width ApelStyl,25:height ApelStyl,23
      stretch_on ApelStyl:file_load ApelStyl,dossier$+"BoitePropriétés.jpg"
      on_click ApelStyl,sortieBoite:hint ApelStyl,"monter BOITE PROPRIÉTÉ"

' =================BOITE PROPRIÉTÉ DES ONGLETS==================================
form BoiteModif :hide BoiteModif :left BoiteModif,200+left(FenDoc):top BoiteModif,100
    width BoiteModif,330 : height BoiteModif,320: color BoiteModif,242,232,205
    border_hide BoiteModif  :  on_click BoiteModif,auf

COMMAND_TARGET_IS BoiteModif
Dlist listINI
' ----------------FONTE-------------------------------                          ' FONTE
alpha alfaFONTE:left alfaFONTE,20:top alfaFONTE,40:font_color alfaFONTE,255,0,0
    font_bold alfaFONTE:caption alfaFONTE,"FONTE:"
check choixFonteGRAS:left choixFonteGRAS,20:top choixFonteGRAS,65
    caption choixFonteGRAS,"gras":width choixFonteGRAS,60:on_click choixFonteGRAS,vier
check choixFonteITALIC:left choixFonteITALIC,80:top choixFonteITALIC,65
    caption choixFonteITALIC,"italic":width choixFonteITALIC,60 :on_click choixFonteITALIC,manner
check choixFonteSOULIGNE:left choixFonteSOULIGNE,140:top choixFonteSOULIGNE,65
    caption choixFonteSOULIGNE,"souligné":width choixFonteSOULIGNE,60
    on_click choixFonteSOULIGNE,mit
check choixFonteBARRE:left choixFonteBARRE,200:top choixFonteBARRE,65
    caption choixFonteBARRE,"barré":width choixFonteBARRE,60:on_click choixFonteBARRE,schneider
' -----------------------------------------------
scroll_bar BarFonteROUGE:left BarFonteROUGE,20:top BarFonteROUGE,090
    width BarFonteROUGE,250:height BarFonteROUGE,10:max BarFonteROUGE,255
    on_change BarFonteROUGE,auf
scroll_bar BarFonteVERT:left BarFonteVERT,20:top BarFonteVERT,110
    width BarFonteVERT,250:height BarFonteVERT,10:max BarFonteVERT,255
    on_change BarFonteVERT,auf
scroll_bar BarFonteBLEU:left BarFonteBLEU,20:top BarFonteBLEU,130
    width BarFonteBLEU,250:height BarFonteBLEU,10:max BarFonteBLEU,255
    on_change BarFonteBLEU,auf
picture carreFonteROUGE:left carreFonteROUGE,290:top carreFonteROUGE,88
    width carreFonteROUGE,15:height carreFonteROUGE,15:color carreFonteROUGE,255,0,0
picture carreFonteVERT:left carreFonteVERT,290:top carreFonteVERT,108
    width carreFonteVERT,15:height carreFonteVERT,15:color carreFonteVERT,0,255,0
picture carreFonteBLEU:left carreFonteBLEU,290:top carreFonteBLEU,128
    width carreFonteBLEU,15:height carreFonteBLEU,15:color carreFonteBLEU,0,0,255
' ----------------FOND DU MEMO ET ONGLET--------------
alpha alfaFontImage:left alfaFontImage,20:top alfaFontImage,160
    font_color alfaFontImage,255,0,0:font_bold alfaFontImage
    caption alfaFontImage,"FOND image:"
scroll_bar BarFondROUGE:left BarFondROUGE,20:top BarFondROUGE,180
    width BarFondROUGE,250:height BarFondROUGE,10:max BarFondROUGE,255
    min BarFondROUGE,0 :position BarFondROUGE,255:on_change BarFondROUGE,auf
scroll_bar BarFondVERT:left BarFondVERT,20:top BarFondVERT,200
    width BarFondVERT,250:height BarFondVERT,10:max BarFondVERT,255:min BarFondVERT,0
    position BarFondVERT,255:on_change BarFondVERT,auf
scroll_bar BarFondBLEU:left BarFondBLEU,20:top BarFondBLEU,220
    width BarFondBLEU,250:height BarFondBLEU,10:max BarFondBLEU,255:min BarFondBLEU,0
    position BarFondBLEU,255:on_change BarFondBLEU,auf
picture carreFondROUGE:left carreFondROUGE,290:top carreFondROUGE,178
    width carreFondROUGE,15:height carreFondROUGE,15:color carreFondROUGE,255,0,0
picture carreFondVERT:left carreFondVERT,290:top carreFondVERT,198
    width carreFondVERT,15:height carreFondVERT,15:color carreFondVERT,0,255,0
picture carreFondBLEU:left carreFondBLEU,290:top carreFondBLEU,218
    width carreFondBLEU,15:height carreFondBLEU,15:color carreFondBLEU,0,0,255
' -----------------TEXTE EXEMPLE-----------
memo montrExemple:left montrExemple,20:top montrExemple,240:width montrExemple,300:' texte vérifie
    height montrExemple,70:color montrExemple,200,200,200
    item_add  montrExemple,"aAbBcC . ; , : 123456789" :font_size montrExemple,20
combo listeFONTE:left listeFONTE,70:top listeFONTE,40:height listeFONTE,20      :  ' LISTE FONTE
    width listeFONTE,250:font_names_load listeFONTE:on_click listeFONTE,unserem
' -----------------------------------------
alpha alfaSize:left alfaSize,308:top alfaSize,75:caption alfaSize,"Size"          :' HAUTEUR FONTE
scroll_bar BarSize:vertical BarSize:left BarSize,310:top BarSize,90
    width BarSize,10:height BarSize,230:min BarSize,1:max BarSize,30
    position BarSize,12 :on_change BarSize,auf
edit montreSize:top montreSize,152:left montreSize,280:width montreSize,25        :' VALEUR SIZE
button boutonGO:left boutonGO,240:top boutonGO,20:width boutonGO,45
    height boutonGO,16:caption boutonGO,"voir":on_click boutonGO,bild
picture stoppe:left stoppe,300:top stoppe,10:width stoppe,25:height stoppe,23
    stretch_on stoppe:file_load stoppe,dossier$+"stop.jpg":on_click stoppe,fermeBoite
    hint stoppe,"fermer la boite"
' ________________________________________________________________________
command_target_is 0:display
 PrimOnglet% = suivre%
gosub rajouOnglet :boite%=1
'  ============            =============            ===============
if file_exists(dossier$+"existance fiches.txt")=1
  f$="LISTE1\":liste%=1
  gosub load
end_if

' =======boite box pour ajouter une série d'onglet=repris en partie à Georges===
form BoiteBOX : hide BoiteBOX :border_small BoiteBOX :color BoiteBOX,227,96,21: height BoiteBOX,145
      caption BoiteBOX,"INPUT BOX" : top BoiteBOX,300 : left BoiteBOX,450 : width BoiteBOX,420

' rem button ques+4:on_click ques+4,box  :left ques+4,400:caption ques+4,"go"
button BoutonOUI : caption BoutonOUI,"Oui" : parent BoutonOUI,BoiteBOX : top BoutonOUI,80
      left BoutonOUI,100 : show BoutonOUI  : width BoutonOUI,70 : on_click BoutonOUI,oui
' --
button BoutonNON : caption BoutonNON,"Annulé" : parent BoutonNON,BoiteBOX : top BoutonNON,80
      left BoutonNON,240 : show BoutonNON  : width BoutonNON,80 : on_click BoutonNON,non
' rem alpha ques+3  :caption ques+3,"NOM de la liste d'onglet ? :" :parent ques+3,ques :alfa%=1
' rem top ques+3,10 :left ques+3,30
' --
edit Repond  :parent Repond,BoiteBOX : top Repond,40 : left Repond,30
      width Repond,350 :height Repond,30 :font_size Repond,12:font_bold Repond
      ' ________________
on_click AJOUTliste,box  :  on_click Renomme,nom
' ---------------

end  : ' $$$$$$$$$$$$$$$$$ FIN LISTAGE DES OBJETS $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

' ==================SOUS PROGRAMMES BOITE BOX===================================
fermeBoite:
  hide BoiteModif :boiteprop%=0
return
' ---------------
sortieBoite:
  if boiteprop%=0
      show BoiteModif :boiteprop%=1
      ' mettre les curseurs    (en réalité ne le fait que très mal
      gosub afice
    ' rem position BarSize,Hfonte%:text montreSize,Hfonte%    idem
  else
      hide BoiteModif :boiteprop%=0
  end_if
return
' ---------------
alfa1:
  show Repond
  if alfa%=1 then delete ALFAques:alfa%=0:' ici comment modifier un ALPHA
  alpha ALFAques :parent ALFAques,BoiteBOX :alfa%=1:top ALFAques,10:left ALFAques,10
  ' ----------------FONTE-------------------------------
  font_size ALFAques,11:font_bold ALFAques:font_name ALFAques,"aSwIt Mono 864"
  font_color ALFAques,115,255,0
return
' ---------------
box:
  gosub alfa1 : caption ALFAques,"NOM de la liste d'onglet ? :"
  inactive 0:show BoiteBOX:set_focus Repond
return
' ---------------
oui:
active 0 :hide BoiteBOX
  set_focus FenDoc
  if count(tiroir)>0
      for a%=1 to count(tiroir)
        if item_read$(tiroir,a%)=text$(Repond) then exit for
      next a%
      if a%>count(tiroir)
        item_add tiroir,text$(Repond)
        if dir_exists(dossier$+"LISTE"+str$(count(tiroir)))=0
            dir_make dossier$+"LISTE"+str$(count(tiroir))
        end_if
      end_if
  end_if
return

non:
active 0 :hide BoiteBOX:return
' ---------------
nom:
  gosub alfa1
  caption ALFAques,"quel nom pour remplacer: "+item_read$(tiroir,liste%)+" ?"
  inactive 0:show BoiteBOX:set_focus Repond
  on_click BoutonOUI,changeNom
return
' ---------------
changeNom:
  item_delete tiroir,liste%
  item_insert tiroir,liste%,text$(Repond):on_click BoutonOUI,oui
  active 0:hide BoiteBOX
return
' ---------------
accepte:
  gosub alfa1
  caption ALFAques,"Suppression de l'onglet: "+text$(onglet%)
  hide Repond
  inactive 0:show BoiteBOX
  on_click BoutonOUI,del_Onglet :on_click AJOUTliste,box
return
' ---------------
prisePosition:
  position barFonteROUGE,rouge%
  position barFonteVERT,vert%
  position barFonteBLEU,bleu%

  position barFondROUGE,Frouge%
  position barFondVERT,Fvert%
  position barFondBLEU,Fbleu%
  position BarSize,Hfonte%
  text listeFONTE,Fnom$
return
' ==============================================================
vu:
  mi%=int((width(0)-120 )/70): ' nb d'onglets disponible sur la largeur
  width FenDoc,width(0)-30:height FenDoc,height(0)-110
  hide FlecheD:Decale%=0
  if NbOnglet%>mi% then decale%=NbOnglet%-mi%
  ga%=PrimOnglet%+1+suivi%*2 :left FlecheD,(mi%+1)*70+3
  dr%=ga%+(mi%-1)*2
  for a%= primOnglet%+1 to suivre%-1 step 2:hide a%: next a%
  if dr%>suivre%-1 then dr%=suivre%-1
  for a%=ga% to dr% step 2
      show a%
  next a%
  dr%=dr%+2
  while dr%<DernierOnglet% *2+PrimOnglet%+1
      hide dr% :show FlecheD
      dr%=dr%+2
  end_while
  if mi%=>NbOnglet%
      for a%=PrimOnglet%+1 to suivre%-1 step 2 :' rappel PrimOnglet est la table, et +1 le 1er onglet (2 par 2 avec dlist)
        show a%:wait 100
        ' rem curieusement si il y décalage dans le cas où tous les onglets
        ' rentrent dans la fenêtre, certain onglets ne se montrent pas parfois, alors SHOW les activent normalement????
        ' message a%  :' pour voir le résultat !!! curieux
      next a%
      hide FlecheG :hide FlecheD : suivi%=0 : decale%=0
  end_if
return
' --------------------------------------------------------------
choixFichier:
  filter DDialog,"chercher le fichier|existance fiches.txt"
  dossier$=file_name$(DDialog)
return
' ==============================================================
DeCadix:
  color 0,206,155,75
  gosub fermeBoite
  boite%=0
  for a%=PrimOnglet%+1 to suivre%+ DernierOnglet%*2-1  step 2
    boite%=boite%+1
    if clicked(a%)=1 then exit_for
  next a%
  ongletclic%=a% :if onglet%=0 then onglet%=a%
  caption 0,item_read$(TableOnglet,boite%)
  DeCadix1:
  a%=count(listINI)
  if  a%>0 and boite%<=a%
      a$=item_read$(listINI,boite%)
      Frouge%=val(left$( a$,3))
      Fvert%=val( mid$(a$,5,3))
      Fbleu%=val( mid$(a$,9,3))
      color FenDoc,Frouge%,Fvert%,Fbleu% :color PrimOnglet%+1+(boite%-1)*2,Frouge%,Fvert%,Fbleu%
      color FenDoc,Frouge%,Fvert%,Fbleu% :color PrimOnglet%+1+(boite%-1)*2,Frouge%,Fvert%,Fbleu%

      rouge%=val(mid$(a$,13,3))
      vert% =val(mid$(a$,17,3))
      bleu% =val(mid$(a$,21,3))
      font_color FenDoc,rouge%,vert%,bleu%:font_color PrimOnglet%+1+(boite%-1)*2,rouge%,vert%,bleu%
      font_color FenDoc,rouge%,vert%,bleu%:font_color PrimOnglet%+1+(boite%-1)*2,rouge%,vert%,bleu%

      Hfonte%=val(mid$(a$,25,2)):font_size FenDoc,Hfonte%
      Hfonte%=val(mid$(a$,25,2)):font_size FenDoc,Hfonte%
      Fnom$=right$(a$,len(a$)-35):font_name FenDoc,Fnom$
      text listeFONTE,Fnom$
          if mid$(a$,28,1)="0"  :' J'ai retirer le décochement, il faut cliquer 2 fois pour que le bon texte s'affiche
            font_bold_off FenDoc:' mark_off choixFonteGRAS
          else
            font_bold FenDoc:' mark_on choixFonteGRAS
          end_if
          if mid$(a$,30,1)="0"
            font_italic_off FenDoc:' mark_off choixFonteITALIC
          else
            font_italic FenDoc:' mark_on choixFonteITALIC
          end_if
          if mid$(a$,32,1)="0"
            font_underline_off FenDoc:' mark_off choixFonteSOULIGNE
          else
            font_underline FenDoc:' mark_on choixFonteSOULIGNE
          end_if
          if mid$(a$,34,1)="0"
            font_strike_off FenDoc:' mark_off choixFonteBARRE
          else
            font_strike FenDoc:' mark_on choixFonteBARRE
          end_if
    end_if
  color 0,210,230,210
  onglet%=onglet%:ongletclic%=ongletclic%
  font_bold_off onglet%
  wait 1:print
  gosub sauve
  if onglet%<> ongletclic%
    onglet%=ongletclic%
    font_bold onglet%  :rem celui du mémo
    clear FenDoc
    gosub lecture  :set_focus FenDoc
  end_if
  font_bold onglet%
  ' rem arque: si les 7 lignes suivantes, vous les mettez plus haut (avant END_IF)
  ' les lignes suivant le END_IF ne sont pas prisent en compte dans le programme jusqu'au RETURN
  position barFonteROUGE,rouge%
  position barFonteVERT,vert%
  position barFonteBLEU,bleu%
  position barFondROUGE,Frouge%
  position barFondVERT,Fvert%
  position barFondBLEU,Fbleu%
  position BarSize,Hfonte%:text montreSize,Hfonte%
 return
' --------------------------------------------------------------
sauve:
  color 0,206,155,75
  height onglet%,19
  ' -------------------- on prend le titre de chaque vignette =>> dlist
  clear TableOnglet
  for a%=1 to (NbOnglet%)*2 step 2
      a$=text$(PrimOnglet%+a%)
      item_add TableOnglet,a$
  next a%
  ' -------------------- on transmet le memo dans dlist
  clear onglet%+1:ligne%=1
  if count(FenDoc)>0
      while ligne%<=count(FenDoc)
      a$=item_read$(FenDoc,ligne%):item_add onglet%+1,a$
      ligne%=ligne%+1
      end_while
  end_if
return
' --------------------------------------------------------------
lecture:
  color 0,206,155,75
  font_color ongletclic%,0,0,0
  font_bold_off onglet%
  wait 50:clear FenDoc :wait 50
  if count(onglet%+1)>0
      ligne%=1
      while ligne%<= count(onglet%+1)
        a$=item_read$(onglet%+1,ligne%)
        item_add FenDoc,a$
        ligne%=ligne%+1
      end_while
      sauve%=1
  end_if
  height onglet%,22
  font_bold onglet%
  if NbOnglet%<=mi% then hide FlecheD
  color 0,210,230,210
return
' --------------------------------------------------------------!!!!!!!!!!!!!!!!
afice:
    ' on vient ici pour connaitre les curseurs avant d'afficher la boite de propriété
    ' ce s/prog était aussi appelé par DeCadix, mais empéchait l'actualisation de l'affichage de FenDoc (mémo)
    a%=count(listINI)
    if a%>0
      if boite% <= a%
          a$=item_read$(listINI,boite%)
          Frouge%=val(left$( a$,3))
          Fvert%=val( mid$(a$,5,3))
          Fbleu%=val( mid$(a$,9,3))
          color FenDoc,Frouge%,Fvert%,Fbleu% :color PrimOnglet%+1+(boite%-1)*2,Frouge%,Fvert%,Fbleu%

          rouge%=val(mid$(a$,13,3))
          vert% =val(mid$(a$,17,3))
          bleu% =val(mid$(a$,21,3))
          font_color FenDoc,rouge%,vert%,bleu%:font_color PrimOnglet%+1+(boite%-1)*2,rouge%,vert%,bleu%

          Hfonte%=val(mid$(a$,25,2)):font_size FenDoc,Hfonte%
          ' rem arques: Il n'est pas possible chez moi, d'afficher le texte et mettre mark_... a jour!!!!
          text montreSize,Hfonte%  :' le texte de la fonte n'est pas renouvelé !!!

          if mid$(a$,28,1)="0"
            font_bold_off FenDoc:' mark_off choixFonteGRAS
          else
            font_bold FenDoc:' mark_on choixFonteGRAS
          end_if
          if mid$(a$,30,1)="0"
            font_italic_off FenDoc:' mark_off choixFonteITALIC
          else
            font_italic FenDoc:' mark_on choixFonteITALIC
          end_if
          if mid$(a$,32,1)="0"
            font_underline_off FenDoc:' mark_off choixFonteSOULIGNE
          else
            font_underline FenDoc:' mark_on choixFonteSOULIGNE
          end_if
          if mid$(a$,34,1)="0"
            font_strike_off FenDoc:' mark_off choixFonteBARRE
          else
            font_strike FenDoc:' mark_on choixFonteBARRE
          end_if
          Fnom$=right$(a$,len(a$)-35):font_name FenDoc,Fnom$ : hide FenDoc:show FenDoc
          text listeFONTE,Fnom$
          ' je ne suis plus sure que les 3 cdes suivantes sont pris en compte
          position barFondROUGE,Frouge%:position barFondVERT,Fvert%:position barFondBLEU,Fbleu%
          position barFonteROUGE,rouge%:position barFonteVERT,vert%:position barFonteBLEU,bleu%
          position BarSize,Hfonte%
' message "Frouge%vert%bleu%="+str$(Frouge%)+" "+str$(Fvert%)+" "+str$(Fbleu%)+chr$(13)+"fonte="+str$(rouge%)+" "+str$(vert%)+" "+str$(bleu%)+"  Hfonte%="+str$(Hfonte%)
      ' rem IL NE MET PAS LE CURSEUR EN POSITION POUR SIZE ET LA TAILLE DU TEXTE
          ' rem for a%=PrimOnglet%+1 to suivie% step 2:off_click a%:message a%:next a%
      end_if
    end_if
return
' --------------------------------------------------------------
save:
 ' return: ' pour éviter la sauvegarde pendant les testes !
  color 0,206,155,75
  file_load enreg,dossier$+"SAVE2.jpg":wait 500:file_load enreg,dossier$+"SAVE1.jpg"
  gosub sauve
  sauve%=1 :f$="LISTE"+str$(liste%)+"\"
  if sauve%=1
      color FenDoc,251,186,159:display:wait 100
      for a%=1 to DernierOnglet%
        a$="onglet "+str$(a%)+".fic"
        file_save a%*2 + PrimOnglet%, f$+a$
      next a%
      clear TableOnglet
      for a%=PrimOnglet%+1 to PrimOnglet%+(nbOnglet%)*2 step 2
        item_add TableOnglet,text$(a%)  :  next a%
      item_add TableOnglet,"$$$"
      file_save TableOnglet,f$+"titre onglets.fic"
      color FenDoc,230,250,155
      file_save tiroir,dossier$+"LISTE.fic"
      file_save listINI, f$+"style.fic"
  end_if
  color FenDoc,Frouge%,Fvert%,Fbleu% :color PrimOnglet%+1+(boite%-1)*2,Frouge%,Fvert%,Fbleu%
  font_color FenDoc,rouge%,vert%,bleu%:font_color PrimOnglet%+1+(boite%-1)*2,rouge%,vert%,bleu%
  color 0,210,230,210
return
' --------------------------------------------------------------
load:
  color 0,206,155,75
  color FenDoc,251,186,159:display:wait 100
  clear TableOnglet:color FenDoc,230,250,155
  onglet%=PrimOnglet%+1: height onglet%,23
  ligne%=1
  f$="LISTE"+str$(liste%)+"\"
  while file_exists(f$+"onglet "+str$(ligne%)+".fic")=1
      a$=f$+"onglet " + str$(ligne%) + ".fic"
      if ligne%>DernierOnglet% then gosub rajouOnglet
      if file_exists(f$+"onglet "+str$(ligne%)+".fic")=0 then exit_while
      file_load  ligne%*2 + PrimOnglet% ,a$
      ligne%=ligne%+1
  end_while
  if file_exists( f$+"titre onglets.fic") =1
      file_load TableOnglet,f$+"titre onglets.fic"
      if count(TableOnglet)>0
        ligne%=1 :ligOnglet%=1
        while ligne%<= count(TableOnglet)
          a$=item_read$(TableOnglet,ligne%)
          if a$="$$$" then exit_while
          text PrimOnglet%+ligOnglet%,a$
          ligne%=ligne%+1 :ligOnglet%=ligOnglet%+2
          if ligne%>DernierOnglet% then exit_while
        end_while
      end_if
  else
      if count(TableOnglet)=0 then item_add TableOnglet,"Début"
  end_if
  gosub lecture
  if file_exists (dossier$+"LISTE.fic")=1
      file_load tiroir,dossier$+"LISTE.fic":ligne%=1
      repeat
        a$=item_read$(tiroir,ligne%)
        if trim$(a$)="" then item_delete tiroir,ligne%:exit_repeat
        ligne%=ligne%+1
      until ligne%>count(tiroir)
      ' si une autre fonte est installée, voir si 28 permet le centrage du texte
      a$=item_read$(tiroir,liste%):text etiquet,left$("                  ",int((28-len(a$))/2))+a$
  end_if      :'                                                          ici ^^
  if file_exists(f$+"style.fic" )=1
      file_load listINI, f$+"style.fic"
  end_if
  color FenDoc,230,250,155
  gosub afice
  color 0,210,230,210
return
' --------------------------------------------------------------
liste:
  color 0,206,155,75
  if item_index(tiroir)<>liste%
      hide FenDoc:wait 500:show FenDoc:set_focus FenDoc
      ' traitement  on sauvegarde d'abord avant de modifier liste%
      gosub save
      ' on supprime onglets et dlist
      for a%=PrimOnglet%+1 to suivre%
        delete a%
      next a%
      hide FlecheD:hide FlecheG
      suivre%=VIGNETTE%  :PrimOnglet% = suivre%: DernierOnglet%=0:suivi%=0:NbOnglet%=0
      liste%=item_index(tiroir)
      tiroir$=item_index$(tiroir)
      onglet%=PrimOnglet%+1:ongletclic%=onglet%
      ' si une autre fonte est installée, voir si 28 permet le centrage du texte
      clear listINI
      text etiquet,left$("                  ",int((28-len(a$))/2))+tiroir$
      gosub rajouOnglet:boite%=1 :'            ici ^^
      gosub load
  end_if
  color 0,210,230,210
return
' --------------------------------------------------------------
del_Onglet:
  active 0:hide BoiteBOX
  if NbOnglet%>1
      if onglet%<suivre%-1
        for a%=onglet%+2 to suivre%-1 step 2
            text a%-2, text$(a%)
            clear a%-1
            if count(a%+1)>0
              for i%=1 to count(a%+1)
                  item_add a%-1,item_read$(a%+1,i%)
              next i%
            end_if
        next a%
      else
        if NbOnglet%>1
            onglet%=onglet%-2 :ongletclic%=onglet%
        else
            clear FenDoc
        end_if
      end_if
      delete suivre%-1
      delete suivre%
      if count(listINI)>=boite% then item_delete listINI,boite%
      if file_exists(f$+"onglet "+str$(DernierOnglet%)+".fic")=1 then file_delete f$+"onglet "+str$(DernierOnglet%)+".fic"
      suivre%=suivre%-2:DernierOnglet%=DernierOnglet%-1:NbOnglet%=NbOnglet%-1
      if boite%>NbOnglet% then boite%=NbOnglet%
      if NbOnglet%>0 then gosub lecture
  end_if
return
' --------------------------------------------------------------
rajouOnglet:
  color 0,206,155,75
  suivre%=suivre%+1
  edit suivre%:left suivre%,140-70+DernierOnglet%*70:top suivre%,24:width suivre%,70
  height suivre%,22:color suivre%,251,223,211
  default$="251|223|211|000|000|000|12|0|0|0|0|verdana" :item_add listINI,default$
  font_color suivre%,0,0,0: on_click suivre%,DeCadix
  DernierOnglet%=DernierOnglet%+1
  if DernierOnglet%>mi% then show FlecheD: decale%=decale%+1:hide suivre%
  suivre%=suivre%+1
  dlist suivre%:NbOnglet%=NbOnglet%+1
  color 0,210,230,210
return
' -------------------------------------------------------------
droite:
  color 0,206,155,75
  if decale%<DernierOnglet%
      show FlecheG :suivi%=suivi%+1
      ga%=PrimOnglet%+1+suivi%*2
      dr%=ga%+(mi%-1)*2
      if dr%>PrimOnglet%-1+DernierOnglet%*2 then dr%=PrimOnglet%-1+DernierOnglet%*2
      hide ga%-2
      gosub voir_onglet
      if ga%=dr% then hide FlecheD
  end_if
  color 0,210,230,210
  gosub afice
return
' -------------------------------------------------------------
gauche:
color 0,206,155,75
if suivi%>0
  suivi%=suivi%-1
  ga%=PrimOnglet%+1+suivi%*2 : dr%=ga%+(mi%)*2
  if dr%>PrimOnglet%+1+(DernierOnglet%-1)*2 then dr%=PrimOnglet%+1+(DernierOnglet%-1)*2
  if suivi%=0 then hide FlecheG
  gosub voir_onglet
  if ligne%>mi%+1 then hide a%-2
  if suivi%>0 then show FlecheD
end_if
color 0,210,230,210:gosub afice
return
'___________
voir_onglet:
  ligne%=1
  for a%=ga% to dr% step 2
    left a%,70*ligne% :  show a%
    ligne%=ligne%+1
  next a%
return
' ==============================================================================
' ___________________SOUS PROGRAMME BOITE PROPRIETE_____________________________
unserem:
  Fnom$=text$(listeFONTE)
auf:
  Hfonte%=position(BarSize)
  font_size montrExemple,Hfonte%
  text montreSize,Hfonte%

  rouge%=position(BarFonteROUGE)
  vert%=position(BarFonteVERT)
  bleu%=position(BarFonteBLEU)
  font_color montrExemple,rouge% ,vert%,bleu%

  if checked(choixFonteGRAS)=1 then font_bold montrExemple
  if checked(choixFonteITALIC)=1 then font_italic montrExemple
  if checked(choixFonteITALIC)=0 then font_italic_off montrExemple
  if checked(choixFonteSOULIGNE)=1 then font_underline montrExemple
  if checked(choixFonteSOULIGNE)=0 then font_underline_off montrExemple
  if checked(choixFonteBARRE)=1 then font_strike montrExemple
  if checked(choixFonteBARRE)=0 then font_strike_off montrExemple

    Frouge%=position(BarFondROUGE):Fvert%=position(BarFondVERT):Fbleu%=position(BarFondBLEU)
  color montrExemple,Frouge%,Fvert%,Fbleu%
  if Fnom$<>"" then font_name montrExemple,Fnom$:font_name FenDoc,Fnom$
 return
 ' ------------------------------------------------
 bild:
    font_name FenDoc,Fnom$
    rouge% = position(BarFonteROUGE):vert% =position(BarFonteVERT):bleu% =position(BarFonteBLEU)
    Frouge%=position(BarFondROUGE):Fvert%=position(BarFondVERT):Fbleu%=position(BarFondBLEU)
    Hfonte%=position(BarSize):text montreSize,str$(Hfonte%)
    font_size FenDoc,Hfonte%
    font_color FenDoc,rouge%,vert%,bleu%:font_color onglet%,rouge%,vert%,bleu%
    color FenDoc,Frouge%,Fvert%,Fbleu%
    color onglet%,Frouge%,Fvert%,Fbleu%
    a$=right$("000"+str$(Frouge%),3)+"|"+right$("000"+str$(Fvert%),3)+"|"+right$("000"+str$(Fbleu%),3)+"|"
    a$=a$+right$("00"+str$(rouge%),3)+"|"+right$("00"+str$(vert%),3)+"|"+right$("00"+str$(bleu%),3)+"|"
    a$=a$+right$("00"+str$(Hfonte%),2)+"|"
    a$=a$+str$(checked(choixFonteGRAS))+"|"+str$(checked(choixFonteITALIC))+"|"+str$(checked(choixFonteSOULIGNE))
    a$=a$+"|"+str$(checked(choixFonteBARRE))+"|"+Fnom$

    if count(listINI)>0
      if boite%<=count(listINI)
          item_delete listINI,boite%
          item_insert listINI,boite%,a$
      end_if
    end_if
 return
 ' ---------------------
 vier:
 ' bold gras
 if checked(choixFonteGRAS)=1
    font_bold FenDoc:font_bold montrExemple
 else
    font_bold_off montrExemple :font_bold_off FenDoc
 end_if
 return
 ' ---------------------
 manner:
 ' italique
 if checked(choixFonteITALIC)=1
    font_italic FenDoc :font_italic montrExemple
 else
    font_italic_off montrExemple:font_italic_off FenDoc
 end_if
 return
 ' ---------------------
 mit:
 ' souligné
 if checked(choixFonteSOULIGNE)=1
    font_underline FenDoc :font_underline montrExemple
 else
    font_underline_off montrExemple:font_underline_off FenDoc
 end_if
 return
 ' ---------------------
 schneider:
 ' barré
 if checked(choixFonteBARRE)=1
    font_strike FenDoc :font_strike montrExemple
 else
    font_strike_off montrExemple:font_strike_off FenDoc
 end_if
 return
' -------------------------------------------------------------

fin:
gosub save
 terminate


@+
NOTA: le bouton de gauche avec les flèches vert et hori. permet après redimensionnement de la forme, de mettre l'affichage en rapport avec celle-ci
Vous remarquerez que tout le programme a été fait avec un nom pour chaque objet (je voulais voir le résultat), et ici avec les problèmes rencontrés, savoir le nom dans les lignes de codage, ma bien été utile.
Je mets le codage des noms d'objet (ce que je ne sais pas c'est si cela ralenti le programme une fois compilé)
Code:

' programme nommant les objets

  dim a$  ,c$ ,i% ,j%  ,d$  ,r%
  dim t$(100)

  width 0,1200:height 0,600
  memo 1 :left 1,10:width 1,1180 :height 1,550:font_size 1,14:font_name 1,"Locida Console"
  bar_both 1
  item_add 1," récupérer par copier/coller, les >>DIM<< suivants:":item_add 1,""
  item_add 1,""
  item_add 1,"' ------------VARIABLES NOM D'OBJETS-------------------------------------------"

  rem les noms des datas sont des exemples. Vous faitez votre propre liste.
  rem terminez la liste par $$$
  ' ----------------ICI LA LISTE A DEFINIR (ceci sont des exemples)-------------
' ------------VARIABLES NOM D'OBJETS-------------------------------------------
data FenDoc,FlecheG,FlecheD,halt,DDialog,tiroir,MMenuM,MMenuFichier,MMenuLecture
data MMenuSauve,MMenuOnglet,MMenuQuelFichier,Cinoche,enreg,onglet,TableOnglet
data listINI,BoiteBOX,BoutonOUI,BoutonNON,ALFAques,Repond,AJOUTliste,Renomme,etiquet,OnglEface
data montreSize,BarSize,alfaSize,boutonGO,listeFONTE
data montrExemple,carreFondBLEU,carreFondVERT,carreFondROUGE,BarFondBLEU
data BarFondVERT,BarFondROUGE,alfaFontImage,carreFonteBLEU,carreFonteVERT
data carreFonteROUGE,BarFonteBLEU,BarFonteVERT,BarFonteROUGE,choixFonteBARRE
data choixFonteSOULIGNE,choixFonteITALIC,choixFonteGRAS,alfaFONTE,choixLargHaut
data BoiteModif,ApelStyl,stoppe,$$$
  ' ----------------------------------------------------------------------------
  c$="" :a$="dim ":i%=1
  repeat
      read c$
      if c$<>"$$$"
        a$=a$+c$+"," : t$(i%)=c$:i%=i%+1
        if len(a$)>70 then item_add 1,left$( a$ , len(a$) -1 ):a$="dim "
      end_if
  until c$="$$$"
  if a$<>"dim " then item_add 1,left$( a$ , len(a$) -1 )
  item_add 1,""

  data "reportez les variables dans votre programmes, avant de vous en servir "
  data "pour définir vos objets. Si vous voulez incorporer d'autres "
  data "objets, il suffit de reprendre ce programme, d'y mettre les noms à la place qui vous"
  data " convient, et de remplacer l'ensemble des noms, "
  data "par ceux-ci. Ainsi votre propre programme est automatiquement régénéré."

  read a$:read c$: item_add 1,a$+c$
  read a$:read c$: item_add 1,a$+c$
  read a$:item_add 1,a$ :item_add 1,"":item_add 1,""

  item_add 1,"' ------------VARIABLES définissant le N° de l'objet---------------------------"
  r%=00    :' N° du dernier objet du programme, ceux définis ici
              ' s'ajoutent aux précédents
  d$=""
  for j%=1 to i%-1
    if j%=1
        d$=d$+t$(j%)+"="+ str$(j%+r%)
    else
        d$=d$+t$(j%)+"="+t$(j%-1)+"+1"
    end_if
    if len(d$)>80
      item_add 1,d$:d$=""
    else
      d$=d$+" : "
    end_if
  next j%
  item_add 1,d$
' _____________représentation du nom par rapport à la valeur______________
  item_add 1,"":item_add 1,"Vérification":item_add 1,""
      c$="":j%=1
  while t$(j%)<>""
      item_add 1,right$("0"+str$(j%+r%),2)+" <<=>> "+t$(j%)
      j%=j%+1
  end_while

  item_add 1,""
  item_add 1,"Si il y a erreur sur les numéros, modifier la variable ' r% ' en conséquence"


Dernière édition par cosmos70 le Mer 9 Déc 2009 - 7:38, édité 2 fois
Revenir en haut Aller en bas
Invité
Invité




un module Multipage Empty
MessageSujet: Re: un module Multipage   un module Multipage EmptyLun 7 Déc 2009 - 19:22

Si certain ont repris le programme multipage, je viens de rééditer celui-ci.
Une ligne manquait et ne permettait pas de créer une nouvelle liste.
dernière modification silencieuse le 9 déc à 7h36
Je ne veux pas intervenir sur la liste des sujets en cours. Si certains ont télécharger ce programme et sont intéressés des modifications faites, qui le disent, alors dans ce cas je ferais une note visible.
Revenir en haut Aller en bas
Contenu sponsorisé





un module Multipage Empty
MessageSujet: Re: un module Multipage   un module Multipage Empty

Revenir en haut Aller en bas
 
un module Multipage
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Module Assembleur
» Domotique : module de commutation - 8 interrupteurs
» GNSS monitor pour module NEO-8M
» GNSS monitor pour module Adafruit PA1616S
» Module pour lancer un programme avec des INCLUDES et des SUB

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: