Myriad Forum « Forcer le nombre de systèmes par page »
 Welcome, Guest.
 You can read all messages, but to be able to post,
 please Login or Register.
Dec 12th, 2017, 9:14pm 
   Myriad Forum
   MyrScript Language
(Moderator: Forum Administrator)
   Forcer le nombre de systèmes par page
« Previous topic | Next topic »
Pages: 1  Reply | Notify of replies | Print
   Author  Topic: Forcer le nombre de systèmes par page  (Read 54 times)
Andre_B
Board Master
*****





   


Gender: male
Posts: 582
Forcer le nombre de systèmes par page  
« on: Dec 6th, 2017, 9:44am »
Quote | Modify

J'enchaîne ici sur le sujet homonyme - ou du moins sa partie technique, en  
 
http://www.myriad-online.com/cgi-bin/bbs/YaBB.pl?board=news;action=displ ay;num=1510076480;start=13
 
J'ai bien compris qu'en ce qui concerne le nombre de mesures par "ligne", on est dépendant de la longueur des mesures; on peut forcer des fins de ligne, mais souvent les ruptures de ligne se font dynamiquement.  
 
Mon premier essai, qui était de joindre aux fins de ligne forcées une fin de page forcée ne répond pas à l'objectif initial.  
 
Je ne touche donc plus aux mesures... et veux donc modifier - en fait réduire, souvent à 1 - le nombre de systèmes par page peut très bien conserver la division en lignes existante.  
 
Je vois la primitive score.NumberOfSystemsInPage(1) =4, qu'on peut lire pour chaque page, et pourquoi pas la changer; mais j'ai une erreur en écrivant:  
  score.NumberOfSystemsInPage(1) =4
 
Serait-ce une zone en lecture seule?  
 
Une autre possibilité serait de fixer la marge inférieuire à une valeur assez grande, 15 ou 20 cm (sur un A4 portrait).  
 
Je vois la primitive PageSetup.BottomMargin, je peux lui donner une valeur.  
 
Mais je ne vois pas comment activer cela. On peut créer un ensemble "page setup" mais comment l'activer? il y a bien score.ComputePageSetup() mais il ne rend pas actif un nouveau PageSetup qu'on aurait créé.  
 
Y aurait-il un exemple?  
 
Merci
offline

André Baeck, belge vivant dans le Gard
jihel9
Board Master
*****




baryton

   
Email

Gender: male
Posts: 1977
Re: Forcer le nombre de systèmes par page  
« Reply #1 on: Dec 6th, 2017, 10:43am »
Quote | Modify

Prémisses
 
 
myScore=FrontScore()
 
-- efface le cadre autour des paroles et centre les paroles
staff=FrontScore().FirstStaff    --
while staff do         --
 s=staff.LyricsText       --
 if s        --
 then staff.IsLyricsFrame = 0
   staff.LyricsAlignment = 1
 end  --
 staff=staff.Next     --
end       --
-- -----------------------------------------------
 
  MyPageSetup=NewPageSetup()
 if (MyPageSetup ~=nil) then
 DefaultPageSetup(MyPageSetup)
 end
 
  MyHeaderSetup=NewPageHeader()
 if (MyHeaderSetup~=nil) then
 DefaultPageHeader(MyHeaderSetup)
 end
 
-- variables écrites en dur dans le programme.  
--une touche suffit pour lancer le script et modifier instantanément les paramètres de page
--     marges page
 margegauche=0
 margedroite = 0
 margehaute= 0
 margebasse= 0
 margedocgauche = 130
 margedocdroite = 130
 margedochaut = 130
 margedocbas = 130
 margepremiersysteme=100
 
 
--     format papier, dès qu'on modifie les marges, le mode papier est automatiquement à 3
 largeurpapier=2099
 hauteurpapier=2970
 modepapier = 03
--     échelle d'affichage
 echelle=65
--      marges entêtes
 header=100
 
--      si portées vides, ne pas afficher
 porteevide=true
 swapmarge=true
 justifygroup=true
 justifylastgroup=false
 justifylastsystem=true
 
 
 
-- format papier, voir pour choisir format origine imprimante
 myScore.PaperMode=modepapier
 myScore.PaperWidth=largeurpapier
 myScore.PaperHeight=hauteurpapier
 myScore.PrintSetup.Scale=echelle
--encodage des nouveaux paramètres de mise en page des marges imprimante
 myScore.PaperLeftMargin=margegauche
 myScore.PaperRightMargin=margedroite
 myScore.PaperTopMargin=margehaute
 myScore.PaperBottomMargin=margebasse
--encodage des nouveaux paramètres de mise en page partition
 myScore.PrintSetup.LeftMargin=margedocgauche
 myScore.PrintSetup.RightMargin=margedocdroite
 myScore.PrintSetup.TopMargin=margedochaut
 myScore.PrintSetup.BottomMargin=margedocbas
 myScore.PrintSetup.FirstGroupOffset=margepremiersysteme  
 myScore.PrintSetup.SwapLeftRightMargin=swapmarge
 myScore.PrintSetup.JustifyGroup=justifygroup
 myScore.PrintSetup.JustifyGroupButNotLastPage=justifylastgroup
 myScore.PrintSetup.JustifyLastSystem=justifylastsystem
-- idem pour marges entête haut et bas de page
 myScore.PrintSetup.TopPageHeader.VerticalMargin=header
 myScore.PrintSetup.TopPageHeader.LeftMargin=header
 myScore.PrintSetup.TopPageHeader.RightMargin=header
 myScore.PrintSetup.BottomPageHeader.VerticalMargin=header
 myScore.PrintSetup.BottomPageHeader.LeftMargin=header
 myScore.PrintSetup.BottomPageHeader.RightMargin=header
 
myScore.ComputePageSetup()
DisposePageSetup(MyPageSetup)
DisposePageHeader(MyHeaderSetup)
Application.UpdateScores()  
 
 
-- Message("Ok, paramètres page enregistrés")
 
 
--EOF
offline

Jean Louis, à Anthisnes (25 Km au sud de Liège)
Harmony Assistant, la dernière version
Win 10, Intel I3-5010U, 8gb, Chrome / Firefox / Edge
francophone (traduction automatique des autres langues)
Andre_B
Board Master
*****





   


Gender: male
Posts: 582
Re: Forcer le nombre de systèmes par page  
« Reply #2 on: Dec 6th, 2017, 1:54pm »
Quote | Modify

Merci Jean-Louis,  
 
Ah c'est pas simple. Il faut donner à myScore.PrintSetup les paramètres de PageSetup...  
 
Si je comprends bien (mes essais) le NewPageSetup n'est même pas nécessaire avec les paramètres que je veix changer (BottomMargin, InfosOnFirstPage)
offline

André Baeck, belge vivant dans le Gard
Pages: 1  Reply | Notify of replies | Print

« Previous topic | Next topic »

« Myriad Forum » Powered by YaBB 1 Gold - SP 1.1!
YaBB © 2000-2002,
Xnull. All Rights Reserved.

Top of page
Legal information Last update:  (c) Myriad