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 :

colorer les scrollbars


Sujet :

Composants VCL Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut colorer les scrollbars
    Salut,
    j'ai un richedit et je souhaiterai modifier la couleur des scrollbars, est ce possible de changer ce gris par default par une couleur plus sympa ?

  2. #2
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut!

    Perso, j'ai été obligé de la dessiner moi-même...
    Du coups, j'utilise maintenant que des bitmaps pour mes objets dans mes appli.
    Je tiens à pouvoir modifier l'apparence de ces objets.

    Exemple avec ce programme (ScrollBar, Checkbox et TrackBar sont des bitmaps) :
    http://sub0.developpez.com/delphi/exe/TableB5.zip

    à+
    De retour parmis vous après 10 ans!!

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut
    c'est quoi ce programme ?

    si c'est pour voir sur un exe, c'est pas trop ma demande mais savoir comment s'y prendre ?

  4. #4
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Je t'ai donné un éxé car je n'ai que ça sous la main. Et puis à toi de voir si cette méthode peut te convenir...
    Citation Envoyé par reg11
    savoir comment s'y prendre ?
    Simple : Dessiner des bitmaps des objets à reproduire et programmer soi-même les évènements.
    De retour parmis vous après 10 ans!!

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut
    J'ai fait pour une fiche un jpg en fond :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // chargement interface fiche
    form1.clientWidth:=848;
    form1.clientheight:=646;
    Bipm := TJpegImage.Create;
    Bipm.LoadFromFile('4.jpg');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure TForm1.FormPaint(Sender: TObject);
    begin
      Canvas.Draw(0,0,Bipm);
      Canvas.StretchDraw(ClientRect, Bipm);
    end;
    Mais là avec mon scrollbar de mon richedit ?

    soyez indulgent, ca fait 2 semaines de prise en main de delphi

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Je vais dormir un peu, je pourrais t'aider demain soir en revenant du boulot...
    à+
    De retour parmis vous après 10 ans!!

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut
    très bien

    Moi aussi je coupe

  8. #8
    Membre confirmé
    Avatar de lil_jam63
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 447
    Points : 600
    Points
    600
    Par défaut
    Bonjour à tous, j'ai jeter un coup d'oeil rapide sur le MSDN et je pense que si tu souhaite seulement changer la couleur de fond de ta scrollbar, ça devrait etre possible en utilisant le message WM_CTLCOLORSCROLLBAR.
    ----------------------------------------------------
    Avant de poster, pensez à utiliser les différents outils à votre disposition:
    Google, la FAQ et le moteur de recherche.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut
    Merci lil_jam63,
    je vois beaucoup de personnes utilisant api windows dans ses projets delphi, là en effet ca l'air de correspondre à ce que je cherche mais comment l'implanter, l'appeler et l'appliquer à ma scrollbar ?

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut
    personne pour me repondre au niveau api windows ?

    Ca ma parait important de comprendre comment implanter des fonctions de windows

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    Il faut utiliser l'api sendmessage avec le msg WM_CTLCOLORSCROLLBAR et les paramtres indiqué dans le MSDN, il doit avoir des exemples dans la faq.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut
    Mais concrètement ?

    Sur l'exemple des scrollbars, ca donnerai quoi ?

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut
    je le remonte dans l'espoir d'avoir une réponse

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    Fais un scrollbar.Perform(WM_CTLCOLORSCROLLBAR, ?, ?) avec les parametres de WM_CTLCOLORSCROLLBAR qui vont bien (cf. msdn, lien donné plus haut) et regarde l'aide sur Perform pour voir quel est l'ordre des parametres.

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut
    Thanks, Bon je vais tester avec perform, et je vous dis cela

  16. #16
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 961
    Points
    6 961
    Par défaut
    Citation Envoyé par Sub0
    Je t'ai donné un éxé car je n'ai que ça sous la main. Et puis à toi de voir si cette méthode peut te convenir...
    Citation Envoyé par reg11
    savoir comment s'y prendre ?
    Simple : Dessiner des bitmaps des objets à reproduire et programmer soi-même les évènements.
    J'ai déjà essayé de refaire ma propre ScrollBar d'un RichEdit mais j'ai un problème pour la dimensionner et la déplacer proportionnellement au contenu du RichEdit.
    Quel algo as-tu utilisé ?

    :
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  17. #17
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    J'ai utilisé un TPanel je crois pour dessiner la barre (= conteneur des images) et la propriété Anchors pour ajuster la hauteur de celle-ci. 2 images pour le bouton du haut et 2 images pour celui du bas (bouton actionné et au repos) et une autre image pour le curserur. La position du bouton du bas est également redéfinie avec Anchors... Quand au curseur, il conserve sa hauteur dans ma scrollbar. Je calcule la position "Top" du curseur avec le rapport "hauteur de la scrollbar / contenu du document à scroller"... Je code les évènements de la souris, de la molette, du clavier et l'accélération du déplacement répété avec un Timer...
    De retour parmis vous après 10 ans!!

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par cpdump
    Il faut utiliser l'api sendmessage avec le msg WM_CTLCOLORSCROLLBAR et les paramtres indiqué dans le MSDN, il doit avoir des exemples dans la faq.
    je pige pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     with form1.Frame31.RichEdit1 do
        begin
          mess := SendMessage(Handle, WM_CTLCOLORSCROLLBAR, 0, 0);
          showmessage(inttostr(mess));     
        end;
    mess est egal à 0, est-ce normal ?

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    msdn dixit
    Return Value

    The return value specifies the result of the message processing; it depends on the message sent.
    En fait je crois que c'est plus compliqué:
    http://www.geocities.com/Heartland/Meadows/9818/win32tut/lesson4.html

    Regarde aussi du coté de WndProc dans l'aide Delphi

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 93
    Points : 35
    Points
    35
    Par défaut
    Bon je vais mettre ca de coté, c'est dommage parce que ca m'aurait fait un bon exercice sur l'utilisation de windows ...

    vais attaquer les bases de données ...

Discussions similaires

  1. java.awt.Scrollbar : colorer les boutons?
    Par SheikYerbouti dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 09/06/2007, 22h59
  2. Colorer les Scrollbars
    Par 306vh dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 21/03/2007, 10h24
  3. Colorer des scrollbar d iframe
    Par NeHuS dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 04/08/2005, 17h32
  4. Comment savoir si les ScrollBar sont visibles sur un TRichEdit ?
    Par vanquish dans le forum Composants VCL
    Réponses: 2
    Dernier message: 16/10/2003, 10h28
  5. [FLASH MX2004] Personnaliser les scrollbars
    Par stephane eyskens dans le forum Flash
    Réponses: 10
    Dernier message: 09/10/2003, 12h53

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