Fonctions

Les déclarations de fonctions couramment utilisées dans le langage DelphiScript sont présentées ci-dessous. L'ensemble des fonctions DelphiScript est réparti en plusieurs sections : routines FileIO, routines mathématiques, routines de chaînes de caractères et routines d'extension.

Calcul d'expressions avec la fonction Evaluate

La fonction intégrée Evaluate interprète une chaîne de caractères contenant une expression mathématique valide lors de l'exécution et renvoie un résultat. Par exemple, vous pouvez écrire un script tel que Evaluate(ProcNames[ProcIndex]); et la procédure spécifiée dans ProcNames[ProcIndex] sera appelée.

Pour calculer une telle expression, vous pouvez utiliser la Evaluate méthode où l'expression est spécifiée par le Expr . Par exemple, vous pouvez calculer des expressions telles que celles-ci :

Evaluate('2+5');
Evaluate('((10+15)-5)/2*5');
Evaluate('sin(3.1415926/2)*10');
Evaluate('2.5*log(3)');

Passage de paramètres aux fonctions et procédures

Les fonctions et les procédures définies dans un script peuvent être déclarées pour accepter des paramètres. De plus, les fonctions sont définies pour renvoyer une valeur. Les types de paramètres dans les déclarations de procédures/fonctions sont ignorés et peuvent être omis. Par exemple, ce code est correct :

Function sum(a, b) : integer;
Begin
  Result := a + b;
End;

Sortie d’une procédure

DelphiScript fournit Exit et Break pour forcer une procédure à se terminer avant qu’elle n’atteigne naturellement sa fin. Par exemple, si la valeur d’un paramètre n’est pas valide, vous pouvez afficher un message d’avertissement à l’utilisateur et quitter la procédure, comme le montre l’exemple ci-dessous.

Procedure DisplayName (s);
Begin
  If s = '' Then
  Begin
    ShowMessage('Please enter a name');
    Exit;
  End;
  ShowMessage(S + ' is shown');
End;

Routines d'E/S de fichiers

DelphiScript dispose des routines d'E/S suivantes :

Append

AssignFile

ChDir

CloseFIle

Eof

Eoln

Erase

GetDir

MkDir

Read

Readln

Reset

Rewrite

RmDir

Write

Writeln

 

 

DelphiScript vous permet d'écrire des informations dans un fichier texte ; DelphiScript étant un langage non typé, toutes les valeurs doivent d'abord être converties en chaînes de caractères.

Ici, Read et ReadLn routines sont équivalentes : elles lisent une ligne jusqu’à la ligne suivante, non comprise. Une Writeln(String) routine est équivalente à une Write(S) et une Write(LineFeed + CarriageReturn) routine.

Pour écrire un fichier texte, utilisez la AssignFile, ReWrite, Writeln et CloseFile procédures. Pour lire un fichier texte, utilisez la AssignFile, Reset, Readlnet CloseFile procédures. L'exemple ci-dessous écrit dans un fichier texte et ajoute un marqueur de fin de ligne. L'utilisation du Try / Finally / End est recommandé pour garantir la sécurité des scripts en cas d'échec d'E/S.

Example:

Var
  InputFile : TextFile;
  OutputFile : TextFile;
  I          : Integer;
  Line       : String;
Begin
  AssignFile(OutputFile,eConvertedFile.Text);
  Rewrite(OutputFile);
  AssignFile(InputFIle,eOriginalFIle.Text);
  Reset(InputFile);
 
  Try
  While not EOF(InputFile) do
  Begin
    Readln(InputFile,Line);
    For I := 1 to Length(Line) Do
      Line[I] := UpperCase(Line[I]);
      Writeln(Outputfile, Line);
    End;
  Finally
    CloseFile(InputFile);
    CloseFile(OutputFile);
  End;
End;

Fonctions mathématiques

DelphiScript dispose des routines mathématiques suivantes :

Abs

ArcTan

Cos

Exp

Frac

Int

Random

Randomize

Round

Sin

Sqr

Sqrt

Trunc

 

 

Fonctions de traitement des chaînes

DelphiScript dispose des routines de chaînes suivantes, qui permettent de manipuler des chaînes ou des caractères. Seul un sous-ensemble de ces routines (la plupart de celles utilisées par DelphiScript sont importées de l'unité SysUtils d'Embarcadero Delphi) est présenté dans le tableau ci-dessous :

AnsiCompareStr

AnsiCompareText

AnsiDequotedStr

AnsiExtractQuotedStr

AnsiLowerCase

AnsiPos

AnsiQuotedStr

AnsiSameStr

AnsiSameText

AnsiUpperCase

CompareStr

CompareText

Copy

Delete

FloatToStr

FloatToStrF

Format

Frac

Insert

Int

IsDelimiter

LastDelimiter

Length

LowerCase

Ord

Pos

Pred

QuotedStr

Round

SameText

SetLength

StringOfChar

StringToGUID

Succ

Trim

TrimLeft

TrimRight

UpCase

UpperCase

WideUpperCase

WideLowerCase

WideSameStr

WideSameText

 

 

Les routines de chaînes de caractères not prises en charge par DelphiScript sont répertoriées dans le tableau ci-dessous :

AnsiContainsStr

AnsiContainsText

AnsiEndsStr

AnsiEndsText

AnsiIndexText

AnsiMatchStr

AnsiMatchText

AnsiReplaceStr

AnsiReplaceText

AnsiResemblesProc

AnsiResemblesText

AnsiStartsStr

AnsiStartsText

Concat

DecodeSoundExInt

DecodeSoundExWord

DupeString

LeftStr

MidStr

NullStr

ReverseString

RightStr

SetString

SoundEx

SoundExCompare

SoundExInt

SoundExProc

SoundExSimilar

SoundExWord

Str

StuffString

Val

 

Routines d’extension

Les routines d'extension sont utilisées lors de la gestion de processus serveur (une commande est un processus serveur encapsulé avec des paramètres, le cas échéant) dans les scripts, en particulier si vous devez extraire ou définir des chaînes de caractères pour les paramètres de ces processus. Certaines de ces routines sont répertoriées ci-dessous.

Pour exécuter les paramètres des processus dans un script, les fonctions suivantes peuvent être nécessaires :

AddColorParameter

AddIntegerParameter

AddLongIntParameter

AddSingleParameter

AddWordParameter

GetIntegerParameter

GetStringParameter

ResetParameters

RunProcess

Useful functions:

SetCursorBusy

ResetCursor

CheckActiveServer

GetActiveServerName

GetCurrentDocumentFileName

RunApplication

SaveCurrentDocument

 

 

Useful dialogs:

ConfirmNoYes

ConfirmNoYesCancel

ShowError

ShowInfo

ShowWarning

 

Utilisation des ensembles dans DelphiScript

Embarcadero Delphi Set et In , ainsi que les opérateurs d’ensemble +, -, *, = et >= ne sont pas pris en charge dans DelphiScript. Les mots-clés équivalents aux opérateurs d'ensemble sont répertoriés dans le tableau ci-dessous.

DelphiScript ne dispose pas de types d'ensembles. Pour utiliser des ensembles dans les scripts DelphiScript, utilisez les fonctions intégrées ; MkSet, MkSetRange, InSet, SetUnion, SetDifference, SetIntersection, et SubSet des fonctions permettant de manipuler des ensembles dans un script DelphiScript. Celles-ci sont décrites plus en détail ci-dessous.

Opérateurs d'ensembles

Embarcadero Delphi Set Operator keyword

Equivalent DelphiScript Set Operator keyword

+

SetUnion

-

SetDifference

*

SetIntersection

=

SubSet

=

=

>

>

In

InSet

Fonction MkSet

La MkSet fonction est un constructeur d’ensembles acceptant un nombre variable d’arguments. Par exemple :

Font.Style = MkSet(fsBold,fsItalic);

Le MkSet(fsBold,fsItalic) ici ne désigne que deux éléments de l'ensemble ; fsBold et fsItalic.

Fonction MkSetRange

La MkSetRange fonction est un constructeur d’ensemble acceptant une plage d’arguments. Par exemple :

LayerSet := MkSetRange(eTopLayer,eBottomLayer);

La MkSetRange(eTopLayer,eBottomLayer) fonction désigne une plage de couches allant de eTopLayer à eBottomLayer.

Fonction InSet

Cette InSet fonction est utilisée en remplacement de l’opérateur In . A in B est égale à InSet(A, B).

If InSet(A,B) then
  ShowMessage('A is in B set')
Else
  ShowMessage('A not in B set');

Fonction SetUnion

La SetUnion fonction est utilisée en remplacement de l’opérateur + . A + B est égale à SetUnion(A, B).

ASet := BSet + CSet;
// should be changed to:
ASet := SetUnion(BSet,CSet);
// in order to achieve the desired script result.

Fonction SetDifference

La SetDifference fonction est utilisée en remplacement de l' - . A - B est égale à SetDifference(A, B).

Fonction SetIntersection

La SetIntersection fonction est utilisée en remplacement de l’ * . A * B est égal à SetIntersection(A, B).

Fonction SubSet

La SubSet fonction est utilisée en remplacement de l'opérateur = . A = B est égale à SubSet(A, B).

Utilisation des gestionnaires d’exceptions

Le Try introduit une instruction Try-Except ou une instruction Try-Finally. Ces deux instructions sont apparentées mais ont des objectifs différents :

Try-Finally

Avec Try-Finally, les instructions du bloc Finally sont toujours exécutées, qu’une exception du bloc Try, une instruction Exit ou une instruction Break se produise ou non. Utilisez le bloc Try-Finally pour libérer des objets temporaires et d’autres ressources, ainsi que pour effectuer des opérations de nettoyage.

En règle générale, une seule instruction Try-Finally est nécessaire dans une sous-routine.

Example:

Reset(F);
Try
  // process file F
Finally
  CloseFile(F);
End;

Try-Except

Utilisez Try-Except pour gérer les cas d'exception. Par exemple, pour intercepter des exceptions spécifiques et en tirer parti, par exemple en les consignant dans un journal d'erreurs ou en affichant une boîte de dialogue conviviale. Étant donné que le On mot-clé n’est pas pris en charge dans DelphiScript, l’ Raise instruction est utilisée à l'intérieur du Except bloc.

Example:

Try
  X := Y/Z;
Except
  Raise('A divide by zero error!');
End;

Raise

Le Raise mot-clé est lié au Try . Le Raise mot-clé peut être utilisé sans paramètre pour relancer la dernière exception. Il peut également être utilisé avec un paramètre de type chaîne de caractères pour déclencher une exception avec un message spécifique.

Example:

Raise(Format('Invalid Value Entered : %d', [Height]));

Notez que, le On mot-clé n'est pas pris en charge, les Exception objets (disponibles dans Embarcadero Delphi) ne peuvent pas être utilisés.

AI-LocalizedLocalisé par IA
Si vous trouvez un problème, sélectionnez le texte/l’image et appuyez surCtrl + Entréepour nous envoyer vos commentaires.
Disponibilité des fonctionnalités

Les fonctionnalités auxquelles vous avez accès dépendent de la solution Altium dont vous disposez – Altium Develop, Altium Agile Teams, Altium Agile Enterprise, ou Altium Designer (avec un abonnement actif).

Si vous ne voyez pas une fonctionnalité documentée dans votre logiciel actuel, contactez le service commercial d’Altium pour en savoir plus.

Documentation héritée

La documentation d’Altium Designer n’est plus versionnée. Si vous devez accéder à la documentation des versions antérieures d’Altium Designer, consultez la section Documentation héritée de la page Other Installers.

Contenu