Multivars label avec libelle version d4 et +

Description

MultiVars Label avec Libelle

Ceci est un composent utile à tous ceux qui désirent afficher une suite de variables dans un label sans se préoccuper du « transtypage » (pour une mise au point d'un programme par Ex).

C'est un label avec un libelle indépendant et un séparateur et toujours un Caption

Il y a une propriété "Captions" non publiée qui accepte quasiment tous les types de variable unitairement et une Procédure MultiVars(Value: Array Of TVarRec; Const Sep: String = ''); qui converti les variables en une chaîne de type String avec un séparateur (Facultatif) entre elles.

Lab2.Captions := pt; // Variable string rien d'étonnant
Lab2.Captions := Time; // une Heure
Lab2.Captions := 22.5; // un Réel
Lab2.Captions := Date; // une Date
Lab2.Captions := 22555661;// un entier

Lab2.MultiVars([Lab2, 'est', 1, TLabel, 25.5, '*', 2, '=', 25.5*2, Lab2.Visible],' ');
Donne : "TcrLabel est 1 TLabel 25.5 * 2 = 51 Vrai"

La procédure accepte également les pointeurs sur variables
Si vous voulez passer une variable de type TDateTime à la procédure il faudra « transtyper » en un variant, si non elle sera évaluée comme une variable de type Extended voir la démo.

Le Libelle et le Caption ont des Fontes indépendantes et des effets sur le texte (Raised, Lowered)

Vous n'êtes pas obligé d'installer le composent pour le tester (avec la Démo)

Pas de bugs connus
Tenez moi au courent de vos impressions, suggestions, remarques, bugs, autres.

Source / Exemple :


// Cette fonction convertie un tableau de variables en un texte affichable

Function TCrLabel.MakeStr(Args: Array Of TVarRec; Sep: String): String;

  procedure AddVar(Value : String);
  Begin
    Result := Result + Value;
  End;

Const
  BoolChars         : Array[Boolean] Of String = ('Faux', 'Vrai');
Var
  I                 : Integer;
Begin
  Result := '';
  For I := Low(Args) To High(Args) Do
    With Args[I] Do
    Begin
      Case VType Of
        vtInteger    : AddVar(IntToStr(VInteger));
        vtBoolean    : AddVar(BoolChars[VBoolean]);
        vtChar       : AddVar(VChar);
        vtExtended   : AddVar(FloatToStr(VExtended^));
        vtString     : AddVar(VString^);
        vtPChar      : AddVar(VPChar);
        vtPointer    : AddVar(String(VPointer^));
        vtObject     : AddVar(VObject.ClassName);
        vtClass      : AddVar(VClass.ClassName) ;
        vtAnsiString : AddVar(String(VAnsiString));
        vtCurrency   : AddVar(CurrToStr(VCurrency^));
        vtInt64      : AddVar(IntToStr(VInt64^));
        vtVariant    : If VarType(VVariant^) And varTypeMask = varDate Then
                        Begin
                          If Trunc(VVariant^) <= 0 Then
                            AddVar(TimeToStr(VVariant^))
                          Else
                            AddVar(DateTimeToStr(VVariant^));
                        End
                       Else
                        AddVar(VVariant^);
      End; // Case
      If I < High(Args) Then  AddVar(Sep);
    End;
End;

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.