begin process at 2010 02 10 13:51:15
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Composants

 > MULTIVARS LABEL AVEC LIBELLE VERSION D4 ET +

MULTIVARS LABEL AVEC LIBELLE VERSION D4 ET +


 Information sur la source

Note :
10 / 10 - par 4 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Composants Classé sous :variable, indépendant, label, multivars Niveau :Débutant Date de création :03/11/2005 Date de mise à jour :04/11/2005 23:59:31 Vu / téléchargé :2 696 / 252

Auteur : cirec

Ecrire un message privé
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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

  • // 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;
// 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;


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

03 novembre 2005 13:40:54 :
Modification de la fonction MakeStr (plus claire) Voir plus haut Suppressions de quelques lignes inutiles
03 novembre 2005 15:49:36 :
Mise à jour pour les version antérieurs à Delphi7 Tester OK sur Delphi4 :-)
04 novembre 2005 12:58:56 :
petite correction pour D7 merci à jlen100
04 novembre 2005 22:34:49 :
Erreur avec les directives de compilation encore Merci à jlen100
04 novembre 2005 23:59:32 :
Ajout DoubleBuffered pour éviter le scintillement lors de l’affichage rapide

 Sources du même auteur

Source avec Zip Source avec une capture BITMAP 32BITS INTÉGRÉ À LA VCL (TIMAGE, TPICTURE, TBITMAP, T...
Source avec Zip Source avec une capture [ASTUCE] COMMENT VOIR UN ITEM, D'UNE LISTBOX, TRONQUÉ DANS U...
Source avec Zip Source avec une capture TEXTE GRAPHIQUE AVEC CONTOUR, OMBRE ET TEXTURE EN API VERSIO...
Source avec Zip Source avec une capture TEXTE GRAPHIQUE AVEC CONTOUR, OMBRE ET TEXTURE EN API
Source avec Zip Source avec une capture ROTATION (RAPIDE) DE BITMAP (À 360°) EN PUR GDI

 Sources de la même categorie

Source avec Zip Source avec une capture TQGRID UN STRINGGRID AMÉLIORER. par yanb
Source avec Zip DYNAMIC LIBRARY LOADER CLASS: GAGNEZ DU TEMPS POUR CHARGER L... par f0xi
Source avec Zip Source avec une capture COMPOSANTS NDSOFT par diglas
Source avec Zip Source avec une capture GESTION DES "CRASHS D'APPLICATION" par Bacterius
Source avec Zip COMPOSANT TTHRESCOLLECTION par ThWilliam

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture PUCE S'AJUSTANT EN FONCTION DE LA LARGEUR D'UN LABEL [VERSIO... par cirec
Source avec Zip Source avec une capture PUCE S'AJUSTANT EN FONCTION DE LA LARGEUR D'UN LABEL par japee
Source avec Zip Source avec une capture TRACELABEL par SOUMIA
ORIENTED LABEL par neosystemsteam
Source avec Zip VERTICAL LABEL par yvemoreau

Commentaires et avis

Commentaire de jlen100 le 03/11/2005 01:19:20

interssant d'avoir un composant comme cela surtout en mise au point. pour ce soir c'est un peu tard mais je le testerai demain

Commentaire de ioda19 le 03/11/2005 14:21:25

Est-ce que ça ce pourrait que ça ne fonctionne pas avec Delphi 6 car il me donne les erreurs suivantes

[Erreur] CrLabels.pas(55): La propriété 'EllipsisPosition' n'existe pas dans la classe de base
[Erreur] CrLabels.pas(77): La propriété 'OnMouseActivate' n'existe pas dans la classe de base
[Erreur] CrLabels.pas(178): Identificateur non déclaré : 'TEllipsisPosition'
[Erreur] CrLabels.pas(178): Type de données trop grand : supérieur à 2 Go
[Erreur] CrLabels.pas(180): Le nombre d'éléments diffère de la déclaration
[Erreur] CrLabels.pas(193): Impossible de lire une propriété en écriture seule
[Erreur] CrLabels.pas(196): Impossible de lire une propriété en écriture seule
[Erreur] CrLabels.pas(197): Impossible de lire une propriété en écriture seule
[Erreur] CrLabels.pas(197): Identificateur non déclaré : 'epWordEllipsis'
[Erreur fatale] Unit1.pas(7): Impossible de compiler l'unité utilisée 'crLabels.pas'

d'après moi tu a fais ton component avec delphi 7 ou plus
svp répond moi il m'as l'air très pratique

Commentaire de cirec le 03/11/2005 15:52:18 administrateur CS

Bonjour Ioda19
Voilà c'est fait et j'ai tester sur Delphi4 et c'est Bon.
Donc ça devrait fonctionner chez toi aussi :-)

@+
et bonne Prog
Cirec

Commentaire de cirec le 04/11/2005 13:01:01 administrateur CS

Si il y a d'autres problèmes dites le moi

Commentaire de jlen100 le 04/11/2005 23:00:24

pas facile de rendre un code compatible entre version surtout quand les contraintes sur les directives de compilation sont différentes entre les versions.
aprés quelques post et quelques tests infructueux cirec s'en est sorti comme un pro qu'il est à n'en pas douter
bravo encore pour ton code et si je ne note pas pas souvent il vaut bien un 10.

Commentaire de ioda19 le 05/11/2005 00:10:41

Excellent ça fonction #1
Merci

C'set vraiment pas pire ton petit composant.. moi en tk j'trouve pas hot

Commentaire de cirec le 05/11/2005 00:20:19 administrateur CS

Jlen100 > Merci beaucoup pour ton aide et pour la note, j'espère qu'il vous sera utile.
J'ai rajouté un DoubleBuffered dans le constructeur ce qui évite le scintillement pendant un affichage rapide (Comme dans l'exemple de l'affichage de la position de la souris)

Commentaire de cirec le 05/11/2005 00:23:44 administrateur CS

Bonsoir Ioda19,
pourrais tu décoder s'il te plait
" Excellent ça fonction #1
Merci

C'set vraiment pas pire ton petit composant.. moi en tk j'trouve pas hot " ???

Commentaire de jlen100 le 05/11/2005 07:36:05

petite remarque aux admins  la notation ne fonctionne pas sous firefox
bon cirec-->le suis passé sous IE et cette la note doit être attribuée

Commentaire de Idefix57 le 04/05/2006 17:15:30

C'est super tout simplement génial :-)

Merci Cirec .

Idefix

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Probléme variable et image [ par stargates ] Débutant DelphiJe voudrais que lorsque je clique sur le bouton suivant, mon label affiche le numéro de la photo,que mon image change aussi suivant le Bitmap de taille variable en fond de formulaire [ par jack554 ] Salut les rois de Delphi !Mon problème est le suivant : j'ai une petite fiche avec un seul Label qui doit afficher une information de longueur variabl Date et Label [ par MAsterC ] Allo! J'ai essayer avec espoir de faire faire marcher mon programme mais sa n'a pas marcher :(Mon programme contient ceci :(1) Label(1) MonthCalendarL Variables d'environnement et Sendmessage [ par WSTBoss ] Bonjour à tous,voilà mon probleme :sous windows 2000, j'ai un petit prog qui crée une variable d'environnement et qui envoie un message à windows pour Un Label dans une image.. [ par sophie75 ] Salut à toutes et à tous,C'est mon premier message ici, en fait je débute en Delphi donc excusez-moi si mes questions peuvent parraître idiotes :-)J'a PB Combobox :/ [ par funemul ] Voila ce que je sohaite faire :J ai un combobox, je veux mettre dans une variable la valeur du 2eme item (au lieu de commencer au premier je commence Un label [ par Fojohn ] Salut à tousComment rendre un TLabel clignotant ?Merci Un label [ par Fojohn ] Salut à tousComment rendre un TLabel clignotant ?Merci pour vos suggestions Initialisation d'une variable de boucle FOR ? [ par kbogos ] Salut à tous !!Je souhaiterai savoir s'il est possible de déclarer une variable dans une boucle for ? en delphi il me semble que l'on peut seulement Date ... [ par MAsterC ] Comment fait-on pour vérifier si la date a changer...exemple :j'ai un label avec comme caption : 30Exécution ...Si nous reculon la date de "1" de wind


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,685 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales