Nextgens -> unités de types évolués nouvelle génération (delphi 2009 ou supérieur)

Soyez le premier à donner votre avis sur cette source.

Vue 3 752 fois - Téléchargée 314 fois

Description

NextGen est un ensemble d'unités contenant des types de base améliorés.

TSize, TPoint, TRect, TColor version NG pour delphi 2009 et supérieur.

qu'est-ce que ça change ?

exit les fonctions cachée au fin fond des unité, le type les possèdent directement.

comment ?

en surchargeant les operateurs et en declarant les fonctions directement dans les enregistrements.

un exemple ?

oui, pleins, n'est-ce pas fastidieux de toujours devoir réécrire des petits bouts de code redondant ou de devoir chercher pendant des heures aprés tel ou tel fonction de traitement ?

n'est-ce pas fastidieux de devoir toujours calculer Width et Height a partir d'un TRect ?
oui ?

et bien maintenant vous ne le ferez plus, vous ferez :

Width := Rect.Width;
Height := Rect.Height;

ou si vous passez par un TSize :

WH := Rect;

calculer le center d'un TRect ?

Point := Rect;

afficher dans une chaine le contenus d'un TRect, TPoint, TSize ?

S := Rect; // = Left x Top, Right x Bottom
S := Point; // = X x Y
S := Size; // = cX x cY

et TColor dans tout ça ?

idem pour TColor, avec une petite surprise, l'aceptation directe d'une chaine :

Color := $FF0000;
Color := clBlue;

jusque la ... rien de bien extraordinaire,

Color := '$FF0000';
Color := '0x00FF0000';
Color := '#0000FF';

... Alors ?

et bien plus, pour TColor qui est surrement le type auquel j'ai porter toute mon attention.

besoin de la teinte ? lumiere ? saturation ?

Lum := Color.Luminance;
Hue := Color.Hue;

ou encore :

Color.GetHSL(Hue, Sat, Lum);

besoin de la valeur R, G ou B ?

R := Color.Red; // ou Color.RGB[0];
G := Color.Green; // ou Color.RGB[1];
B := Color.Blue; // ou Color.RGB[2];

besoin de la valeur complete ?

Brush.Color := Color; // ou Color.Value;

besoin des valeurs pour les couleurs OpenGL ? possible egalement.
Mixer deux couleurs en fonction d'un pourcentage ? possible aussi.

Color supporte aussi les operateurs comun et logique tel que :

ColorC := ColorA + ColorB; // renvois l'addition de A et B
ColorB := ColorA + 0.25; // renvois ColorA augmenté de 25%
ColorC := ColorA and ColorB;
ColorC := Color1 xor ColorB;
ColorN := not ColorA; // renvois la couleur negative

TRect, TPoint et TSize supporte aussi cette utilisation.

il y a trois unités :

NextGen.Types -> TSize, TPoint, TRect et TColor.
TSize, TPoint et TRect sont déclinés en trois version : basé sur SmallInt (TSmall..), sur Integer (T..) et sur Single (T..F)
chacun des types sont egalement déclinés sous forme de list (TPointList par exemple), basé sur la classe generique Generics.Collections.TList<T>
Tout les types ecrase ou cache les types existant de base, ils possèdent donc tous un alias TNG... pour faciliter les utilisations en cas d'erreur d'interprétation de l'editeur/compilateur.

NextGen.Colors -> contiens uniquement une grosse collections de couleurs (ColorsCollection).

NextGen.Helpers -> contiens les classes helpers pour les classes de base Delphi, ajoute le support des types déclarés dans NextGen.Types.

Conclusion :


Encore beaucoup de boulot a faire, notamment les commentaires et aides. beaucoup de classes helpers et de types sont encore a penser.

Codes Sources

A voir également

Ajouter un commentaire

Commentaire

Cirec
Messages postés
4233
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
3 juillet 2019
32 -
Bravo,
belle démonstration des nouvelles possibilités de Delphi2009

Dommage pour tous ceux qui n'ont pas les moyens de tester ces nouveautés ... pour les autres vous allez vite comprendre l'intérêt de ces avancées ;)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.