REQUIRE

From MusiCAD
Revision as of 11:11, 18 March 2024 by Musys (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

REQUIRE is een sjabloonfunctie die je kunt gebruiken in een opmaaksjabloon om er voor te zorgen dat alleen onder een bepaalde conditie verdere sjabloonfuncties uitgevoerd worden.

Syntax:

  REQUIRE( conditie );
  REQUIRE( conditie, OR );
  REQUIRE( conditie, melding );
  REQUIRE( conditie, melding, opdracht );

Met conditie kunnen instellingen (bijv nootgrootte) en variabelen (zoals aantal pagina's) in MusiCAD 'ondervraagd' worden.

REQUIRE( conditie );

Als niet aan de vereiste conditie wordt voldaan dan worden verdere sjabloonfuncties niet uitgevoerd. Eventueel volgende instellingen worden wel toegepast.

REQUIRE( conditie, OR );

Om vereisten te gebruiken waarbij minstens aan een van de vereisten voldaan moet worden combineer je meerdere REQUIRE regels met OR als tweede parameter.

  REQUIRE( sMeter=4/4, OR );
  REQUIRE( sMeter=8/8, OR );
  REQUIRE( sMeter=2/2, "Alleen mogelijk als maatsoort 4/4, 2/2 of 8/8 is" );
REQUIRE( conditie, melding );

Als niet aan de vereiste conditie wordt voldaan dan wordt de 'melding' op het scherm gezet, en worden verdere sjabloonfuncties niet uitgevoerd. Eventueel volgende instellingen worden wel toegepast. Een melding die begint met een '#' wordt in de vertalingsbestanden opgezocht.

REQUIRE( conditie, vraag, opdracht );

Als niet aan de vereiste conditie wordt voldaan dan wordt de 'vraag' op het scherm gezet. Bij bevestiging wordt 'opdracht' uitgevoerd, bij annuleren wordt verdere uitvoering afgebroken.

opdracht kan de naam van een opmaaksjabloon zijn of parameter=waarde

Voorbeelden

 REQUIRE( sMeter=4/4 );  ! breek af als maatsoort niet 4/4 is
 REQUIRE( sMeter=6/8, "Alleen mogelijk als maatsoort 6/8 is" );
 REQUIRE( nChords>0, #errNoChordsFound ); ! breek af wanneer geen akkoordsymbolen aanwezig zijn
 REQUIRE( fChords.size>7, "grootte van akkoordsymbolen moet groter dan 7 zijn" );
 REQUIRE( iPageTop>4, "Kleine marges instellen?", mc-marginssmall );
 REQUIRE( iScaleHorizontal>75, "Grootte op 75% zetten?", iScaleHorizontal=75 );