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

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

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.