SJRDUnits

Sébastien Doeraene

SJRDUnits, package runtime contenant des routines et classes diverses ♪

- Titre : SJRDUnits

- Auteur : Sébastien Doeraene

- Parution : 22 octobre 2004

- Mise à jour : 1 mars 2005

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2005 Sébastien Doeraene. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- Présentation

- I. SjrdUsual

- II. SjrdLists

- III. SjrdStrUtils

- IV. SjrdExtra

- V. SjrdMaths

- VI. SjrdDateTimeUtils

- VII. SjrdMusicUtils

- VIII. SjrdLOGFile

- IX. SjrdNoSecretWindow

- X. Téléchargement

Présentation

SJRDUnits est un assemblage des toutes les routines/classes que j'ai créées à la base pour mes propres besoins. Je les ai relues, corrigées, et partiellement documentées pour pouvoir vous les distribuer.

SJRDUnits est divisé en différentes unités, regroupant ainsi les fonctionnalités par catégories. Les routines qui n'avaient leur place nulle part ailleurs ont été réparties dans les deux unités SjrdUsual (les plus utilisées) et SjrdExtra (celles utilisées plus rarement).

Voici une présentation de ce que propose chaque unité.

I - SjrdUsual

SjrdUsual regroupe les routines/classes qui n'appartiennent à aucune catégorie et qui sont relativement souvent utilisées. Une routine que j'utilise tout le temps, et qui remplace l'archaïque MessageBox, s'y trouve : ShowDialog. Une autre routine utile est la fonction Dir, qui renvoie le répertoire contenant l'application courante.

Nom

Description

Exceptions

ECreateError

Erreur lors de la création d'un objet

EAPIError

Erreur due à une erreur d'API Windows

Types

T3DPoint

Point déterminé par 3 coordonnées

TDialogType
TDialogButtons
TDialogResult

Types des paramètres de ShowDialog

TSoundType

Type de son à jouer avec ExecuteSound

TGetXXXFunc

Types fonctions renvoyant des types de données diverses

TSetOfXXX

Types ensembles usuels

Variables

ShellFolders

Record contenant quelques dossiers du shell

Classes

Aucune classe

Routines

Dir

Renvoie le répertoire contenant l'application

IIF

Fonction de If Immédiat (?: du C)

Point3DToString

Formate un T3DPoint en chaîne de caractères

MinMax

Renvoie la plus proche valeur d'un entier dans un intervalle déterminé

ShowMes

Implémentation Pascal de l'API MessageBox

ShowDialog

Réimplémentation de ShowMes avec des paramètres plus exploitables

CreateShellLink

Crée un raccourci Windows avec les informations indiquées

Wait
WaitProcessMessages

Boucle pendant un nombre de millisecondes spécifié

ExecuteSound

Joue un son au moyen de l'API Windows PlaySound

IntToStr0

Formate un nombre entier avec des 0 devant pour atteindre une longueur spécifiée

ReadStrFromStream

Lit une chaîne au format AZT depuis un flux

WriteStrToStream

Écrit une chaîne au format AZT dans un flux

CorrectFileName

Vérifie si nom de fichier est correct

Point3D

Renvoie un record de type T3DPoint à partir des valeurs des paramètres

RunURL

ShellExecute simplifié (je cherche la version Linux)

Constantes

Aucune constante

II - SjrdLists

SjrdLists propose quelques classes de listes, dont l'ancêtre commun est la classe TSjrdList, qui enregistre ses éléments dans un flux mémoire. Cette classe est construite de façon à gérer tous les comportements de la liste, les descendants n'ont plus qu'à implémenter quelques méthodes codées en une ligne pour fonctionner. Cette unité déclare aussi une variable de type TSjrdStrings contenant les paramètres envoyés à l'application.

Nom

Description

Exceptions

Aucune exception

Types

TSjrdListClass

Métaclasse de TSjrdList

Variables

AppParams

Liste des paramètres passés à l'application

Classes

StringsOps

Classe utilitaire sur les listes de chaînes

TSjrdStrings

Liste de chaînes implémentant les méthodes de StringsOps

TSjrdList

Classe de base pour les listes personnalisées

TIntegerList

Liste de nombres signés stockés sur 1 à 8 octets

TUnsignedIntList

Liste de nombres non signés stockés sur 1 à 4 octets

TExtendedList

Liste de nombres à virgule flottante stockés sur 10 octets

Routines

Aucune routine

Constantes

Aucune constante

III - SjrdStrUtils

SjrdStrUtils déclare quelques routines additionnelles à celles de l'unité StrUtils de Borland. Elle déclare notamment la fonction SjrdCompareString qui compare deux chaînes de caractères via l'API CompareString.

Nom

Description

Exceptions

Aucune exception

Types

TSjrdCompareOptions

Options de comparaison pour la fonction SjrdCompareString

Variables

Aucune constante

Classes

Aucune classe

Routines

NberSubStr

Renvoie le nombre d'occurrences d'une sous-chaîne dans une chaîne

SjrdCompareString

Compare deux chaînes avec des options de comparaison avancées

GetFirstToken

Renvoie la première des sous-chaînes d'une chaîne délimitées par un caractère

GetLastToken

Renvoie la dernière des sous-chaînes d'une chaîne délimitées par un caractère

GetXToken

Renvoie la Xème des sous-chaînes d'une chaîne délimitées par un caractère

GetXWord

Renvoie le Xe mot de la chaîne

PosWord

Renvoie la position de la première occurrence d'un mot dans une chaîne

Constantes

Aucune constante

IV - SjrdExtra

SjrdExtra propose diverses routines plus ou moins utiles dans des cas bien précis, et de ce fait peu utilisées. Les routines les plus intéressantes parmi celles-ci sont GetMethodFromName et AddResToFile.

Nom

Description

Exceptions

EUpdateResError

Erreur lors de la modification de ressources

Types

Aucun type

Variables

Aucune variable

Classes

Aucune classe

Routines

CorrectIdentifier

Indique si une chaîne de caractères est un identificateur Pascal correct

GetMethodFromName

Renvoie un pointeur sur une méthode d'un objet à partir de son nom

ConvertDoubleToInt64

Transforme un Double en Int64 (sans aucune correspondance des valeurs)

ConvertInt64ToDouble

Transforme un Int64 en Double (sans aucune correspondance des valeurs)

StrToStrRepres

Convertit une chaîne de caractères en sa représentation Pascal

StrRepresToStr

Convertit une chaîne de caractères en la chaîne qu'elle représente en Pascal

CharToCharRepres

Convertit un caractère en sa représentation Pascal

CharRepresToChar

Convertit une chaîne de caractères en le caractère qu'elle représente en Pascal

SetOfCharsToString

Convertit un ensemble de caractères en sa représentation Pascal

StringToSetOfChars

Convertit une chaîne de caractères en l'ensemble de caractères qu'elle représente en Pascal

BeginUpdateRes

Commence la modification des ressources d'une application Windows

AddResource

Ajoute ou remplace une ressource

DelResource

Supprime une ressource

EndUpdateRes

Termine la modification des ressources

AddResToFile

Ajoute une ressource à une application Windows

DelResInFile

Supprime une ressource d'une application Windows

CompressStream

Compresse un flux

DecompressStream

Décompresse un flux compressé avec CompressStream

Constantes

clNoComp
clFastestComp
clDefaultComp
clMaxComp

Niveaux de compressions pour la procédure CompressStream

V - SjrdMaths

SjrdMaths est une unité assez complexe dont la plus grande utilité est la fonction Eval, qui réalise ce que beaucoup de programmeurs de scripts aimeraient pouvoir réaliser en Delphi, à savoir évaluer une expression arithmétique. Cette fonction peut même faire du calcul polynomial à une inconnue. Toutes les autres routines et classes sont construites autour de celle-ci.

Nom

Description

Exceptions

EMathsError
et descendants

Erreurs de mathématiques, notamment de calcul polynomial

EEvalError
et descendants

Erreurs provoquées par la fonction Eval

Types

TComplex

Nombre complexe, définit comme Variant

EEvalErrorClass

Métaclasse de EEvalError

TTestIsAbortedProc

Type de procédure de test d'abandon d'évaluation d'expression arithmétique

Variables

VarLists

Listes de variables polynomiales

Classes

TComplexList

Liste de nombres complexes

TPolynom

Polynome

TPolynomList

Liste de polynomes

Routines

IsInteger

Indique si un nombre à virgule flottante est un entier

VerifyIsInteger

Lève une exception si un nombre à virgule flottante n'est pas un entier

AsInteger

Renvoie un nombre à virgule flottante sous forme d'entier

IsNatural

Indique si un nombre entier est un naturel

VerifyIsNatural

Lève une exception si un nombre entier n'est pas un naturel

AsNatural

Renvoie un nombre entier sous forme de naturel

Factorial

Renvoie la factorielle d'un nombre naturel

IntPower

Élève un entier à une puissance entière

Eval

Évalue une expression arithmétique

VI - SjrdDateTimeUtils

SjrdDateTimeUtils fournit quelques routines dates/heures supplémentaires, ainsi qu'un record TUsualDate permettant d'utiliser plus facilement les dates.

Nom

Description

Exceptions

Aucune exception

Types

TUsualDate

Record enregistrant une date

Variables

Aucune variable

Classes

Aucune classe

Routines

GetUsualDate

Renvoie une valeur de type TUsualDate à partir des valeurs des paramètres

UsualDateToDateTime

Convertit une valeur de type TUsualDate en une valeur de type TDateTime

DateTimeToUsualDate

Convertit une valeur de type TDateTime en une valeur de type TUsualDate

DateAddition

Ajoute un nombre de jours spécifié à une date au format TUsualDate

GetMonthName

Renvoie le nom du mois spécifié

Constantes

Aucune constante

VII - SjrdMusicUtils

SjrdMusicUtils est une unité pour le calcul des notes et des intervalles de musique dans une application Delphi. La plus grande utilité de cette unité est la propriété Vibrations de la classe TMusicNote.

Nom

Description

Exceptions

EMusicError

Erreurs de musique

Types

TMusicNoteInfo

Informations sur une note de musique, utilisé en interne

TMusicIntervalInfo

Informations sur un intervalle de musique, utilisé en interne

Variables

Aucune variable

Classes

TMusicNote

Note de musique

TMusicInterval

Intervalle de musique

Routines

Aucune routine

Constantes

HarmonyOfDo

Tableau des seize harmoniques de do

VIII - SjrdLOGFile

SjrdLOGFile est une unité qui vous permet d'exploiter simplement un fichier LOG pour votre application, grâce à la classe TSjrdLOGFile. Même si votre application plante lamentablement, le fichier LOG sera enregistré et vous pourrez le consulter afin de déterminer l'emplacement exact de l'erreur.

Nom

Description

Exceptions

Aucune exception

Types

Aucun type

Variables

Aucune variable

Classes

TSjrdLOGFile

Gère un fichier LOG avec ajout automatique des données dans le fichier

Routines

Aucune routine

Constantes

Aucune constante

IX - SjrdNoSecretWindow

SjrdNoSecretWindow permet de se débarrasser réellement de la fenêtre secrète de Delphi. Ajoutez simplement cette unité au tout début des uses du fichier .dpr. Cela suffit à la supprimer (ou plutôt à ne pas la créer).

X - Téléchargement

Vous pouvez ici télécharger sjrdunits.zip, qui contient toutes les sources des unités ainsi que la documentation actuellement réalisée.
Si ce lien ne fonctionne pas chez vous, utilisez celui-ci.

Version actuelle : 1.1