Société de service et de conseil multimédia en Suisse romande. Prossel Software offre des services de création, conception, réalisation, développement et programmation pour sites Web et applications mobiles.

Nous sommes basés à Senarclens, près de Cossonay, entre Yverdon-les-Bains et Lausanne, dans canton de Vaud depuis 2020. Auparavant, nous étions à Cheyres, dans le canton de Fribourg.

Domaines d'activité: bases de données, programmation, développement, informatique, php, mysql, React, Symfony, WordPress.

spacer spacer spacer spacer spacer
 
Prossel Software - Programmation et développement - Conception et réalisation de sites Internet, CD-ROM et DVD-ROM
spacer

Accueil

Services

spacer

Programmation

Sites Internet

Produits

spacer

DynPage

FormEZ

Relocator

Réalisations

Ressources

Contact

spacer
spacer

 

Prossel Software - Accueil
spacer
spacer spacer spacer
Vous êtes ici:
Accueil > Ressources > Remplacement de police
spacer

Remplacement de police

Instructions:

Dans votre animation, créez un acteur script d'animation et coller dedans ce code. Ensuite le reste est indiqué dans l'en-tête du script.

-- Description:
-- -----------
-- Cette fonction automatise le remplacement d'une police
-- de caractère par une autre dans des acteurs textes et champs.
-- Elle permet aussi d'extraire la liste de toutes les polices utilisées.
--
-- Vous pouvez librement utiliser, modifier et distribuer ce code à condition que
-- les informations de copyright, auteur et utilisation soient conservées intact.
--
-- Auteur:      Pierre Rossel (c) 2001 Prossel Software, http://www.prossel.com
-- ------
--
-- Historique:
-- ----------
-- Quand:        Qui:             Quoi:
--
-- 20 juin 99    Pierre Rossel    Version initiale
-- 06 oct  01    Pierre Rossel    Examine et change aussi dans les acteurs champ
--
--
-- Utilisation 1: examiner les acteurs texte
-- *************
-- 1. Ouvrir la fenetre de distribution et sélectionner les
--    acteurs à examiner (Utiliser Ctrl et Shift pour en sélectionner plusieurs)
-- 2. Ouvrir la fenetre de messages et tapper la commande
--      ReplaceFont
-- 3. La liste des polices utilisées dans les actueurs sélectionnés est affichée
--
--
-- Utilisation 2: effectuer des remplacements
-- *************
-- 1. Repérer les noms des polices actuelles (avec utilisation 1) et nouvelles
-- 2. Ouvrir la fenetre de distribution et sélectionner les
--    acteurs à modifier (Utiliser Ctrl et Shift pour en sélectionner plusieurs)
-- 3. Ouvrir la fenetre de messages et tapper la commande
--      ReplaceFont "Nom de la police à remplacer", "Nom de la nouvelle police"
-- 4. Vérifier le boulot dans les acteurs.
--
on ReplaceFont ActualFont, NewFont
 
  iBeg = 0
  nMem = 0       -- nombre d'acteurs traités
  nRepl = 0      -- nombre de remplacement effectués
  lstFonts = []  -- Liste des fonts trouvées
 
  -- chaque plage de sélection
  repeat with zone in castlib (the activecastlib).selection
   
    -- chaque acteur de chaque plage
    repeat with iMem = zone[1] to zone[2]
      mem = member iMem of castlib the activecastlib
      if [#text, #field].getPos(mem.type) then
        iLen = length(mem.text)
        --put "Acteur" && mem.name && "en cours de traitement"
        nMem = nMem + 1
       
        repeat with iPos = 1 to iLen
         
          if mem.type = #field then
            curFont = the font of char iPos of member iMem of castlib the activecastlib
          else
            curFont = mem.char[iPos].font
          end if
         
          -- Est-ce la fonte recherchée ?
          if curFont = ActualFont then
            -- Sauve la position de première occurence de cette fonte
            if iBeg = 0 then
              iBeg = iPos
            end if
          else
            -- Add font to list
            if lstFonts.GetPos(curFont) = 0 then
              lstFonts.Add(curFont)
            end if
           
            -- Pas (ou plus) la fonte recherchée, effectue le
            -- remplacement si on a trouvé quelque chose avant
            if iBeg then
              if mem.type = #field then
                --mem.font = NewFont
                the font of char iBeg to iPos - 1 of member iMem of castlib the activecastlib = NewFont
              else
                mem.char[iBeg .. iPos - 1].font = NewFont
              end if
              iBeg = 0
              nRepl = nRepl + 1
             
              -- Add font to list
              if lstFonts.GetPos(NewFont) = 0 then
                lstFonts.Add(NewFont)
              end if
             
            end if
          end if
         
        end repeat
       
        -- Effectue le dernier remplacement
        if iBeg then
          if mem.type = #field then
            mem.font = NewFont
          else
            mem.char[iBeg .. iPos].font = NewFont
          end if
          nRepl = nRepl + 1
        end if
      else
        put "Acteur" && mem.name && "ignoré: pas acteur texte."
      end if
    end repeat
   
  end repeat
 
  put "Fin de traitement: " & nRepl & " changements dans " & nMem & " acteurs."
  put "Liste des fontes rencontrées:"
  repeat with sFont in lstFonts
    put "   " & sFont
  end repeat
end

Copyright © Prossel Software depuis 2001 - www.prossel.com

spacer
spacer
spacer        
Prossel Software - Accueil