IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

Mode WordWrap + Couleur d'un statusbar


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 52
    Points : 42
    Points
    42
    Par défaut Mode WordWrap + Couleur d'un statusbar
    Bonjour

    Première question : mode WordWrap d'un statusbar

    EN BREF


    Est-il possible d'utiliser la propriété wordwrap d'un status bar comme celle d'un label - comme le montre le code ci dessous ? (code associétà un menuitm wordwrap1 créé our l'occasion)


    EN DETAIL

    Ai utilisé un statusbarpour afficher mes alertes, et mes Hint (partie 2 - après
    le caractère pipe) en automatique.. et cela marche super...
    Le Hic c'est que je ne dispose que de 255 charactères ...

    Afin de pouvoir gérer les retours chariots je compte utiliser la propriété wordwrap. Je l'ai testé avec un Label et cela fonctionne... cfr code

    Si je remplace dans le code label1 par statusba1, une erreur survient : worwrap non déclaré... cela signifie que je ne peux pas utiliser la propriété wordwrap du stsbar ? Vrai ? ou qu'elle n'existe pas ? ou je dois ajouter le mot panel ??

    Puis-je créer un composant dérivé avec une propriété additionnelle? Est-ce LA bonne méthode ou y a t'il plus simple ?
    Suis loin d'être expert et ne sais pas créer un composant hérité avec propriété ou méthode nouvelle. Si c'est LA solution merci de m'orienter ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TEcran01.WordWrap1Click(Sender: TObject);
    begin
    if WordWrap1.Checked = false then
    	begin
    		WordWrap1.Checked := True;
    		Label1.WordWrap := True;
        StsBarEcran01.Panels.WordWrap := True;
    	end
    	else begin
    		WordWrap1.Checked := False;
        Label1.WordWrap := False;
    	end;
    end;


    Seconde question :comment colorer différemment le statusbar.. ? je n'ai d'effet que sur son contour avec la prop color .

    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 695
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Mets le Style du StatusPanel qui t'intéresse à psOwnerDraw.
    Ensuite depuis OnDrawPanel du StatusBar, tu peux repeindre comme tu le désires. Utilises DrawText pour écrire en WordWrap (DT_WORDBREAK).

    Mais tu peux aussi docker un contrôle dans un StatusPanel. Ton TLabel par exemple.

    1. Dans OnCreate de la fiche, fixes la StatusBar comme parent du label.
    2. Mets le Style du StatusPanel qui t'intéresse à psOwnerDraw.
    3. Dans OnDrawPanel, fixes les dimensions du label à celle du rect proposé.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.Create(Sender :TObject);
    begin
      Label1.Parent := StatusBar1;
    end;
     
    procedure TForm1.StatusBar1DrawPanel(StatusBar :TStatusBar;
     Panel :TStatusPanel; const Rect :TRect);
    begin
      Label1.BoundsRect := Rect;
    end;
    (La démo ci-dessus trouve surtout tout son intérêt lorsque l'on veut docker une bar de progression dans la barre de status )

  3. #3
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 52
    Points : 42
    Points
    42
    Par défaut Question complémentaire
    Citation Envoyé par Andnotor Voir le message
    Mets le Style du StatusPanel qui t'intéresse à psOwnerDraw.
    Ensuite depuis OnDrawPanel du StatusBar, tu peux repeindre comme tu le désires. Utilises DrawText pour écrire en WordWrap (DT_WORDBREAK).
    Mais tu peux aussi docker un contrôle dans un StatusPanel. Ton TLabel par exemple.

    1. Dans OnCreate de la fiche, fixes la StatusBar comme parent du label.
    2. Mets le Style du StatusPanel qui t'intéresse à psOwnerDraw.
    3. Dans OnDrawPanel, fixes les dimensions du label à celle du rect proposé.

    Merci

    Je bloque sur
    A) Mets le Style du StatusPanel qui t'intéresse à psOwnerDraw.
    MonStatusPanel.Style.=psOwnereDraw ... ne fct pas
    B) Utilises DrawText pour écrire en WordWrap (DT_WORDBREAK).
    instruction ??

    Merci

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 695
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Dans les propriétés de la StatusBar, double-cliques sur Panels.
    Ajoutes au minimum un StatusPanel.
    Sélectionnes-le et mets sa propriété Style à psOwnerDraw.

    Ensuite dans l'événement OnDrawPanel de la StatusBar:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect);
    var
      R :TRect;
    begin
      R := Rect;
      DrawText(StatusBar.Canvas.Handle, 'Ligne 1'#13#10'Ligne 2', -1, R, DT_WORDBREAK);
    end;

Discussions similaires

  1. mode de couleur.?
    Par secondechance dans le forum Imagerie
    Réponses: 1
    Dernier message: 15/08/2008, 15h13
  2. Mode console, couleur dans le shell
    Par Mysti¢ dans le forum Général Python
    Réponses: 2
    Dernier message: 26/11/2007, 23h24
  3. Modes de couleur 16-bits
    Par Mark53 dans le forum DirectX
    Réponses: 4
    Dernier message: 12/10/2004, 21h49
  4. Vitesse de transfert en mode VESA 800*600 256 couleurs
    Par chep dans le forum Assembleur
    Réponses: 9
    Dernier message: 28/05/2004, 11h53
  5. Des couleurs en mode console
    Par davcha dans le forum MFC
    Réponses: 3
    Dernier message: 08/05/2004, 14h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo