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 :

Bordure autour des contrôles


Sujet :

Composants VCL Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 43
    Points : 34
    Points
    34
    Par défaut Bordure autour des contrôles
    Bonjour,

    Je reprends une appli, ecrite pour UNIX, et nous "évoluons" vers une version Windows, les users étaient habitué a avoir un rectangle autour du "controle" actif.

    Je vais developper une serie de composant Tedit, TComboBox, TListBox....
    autour desquel j'aimerais dessiner un rectangle autour.

    J'arrive bien a dessiner une rectangle autour de mes controles lorsqu'ils sont posés sur un TForm (j'utilise TForm.Canvas.FillRect)...

    Mais lorsque je pose le controles sur un Autre controles un Panel par exemple et bien en tout logique il dessine le rectangle sous mon panel.

    Pour simplifier, j'aimerais créer une bordure autour de mes controles, quelque soit leur parents.

    J'espere avoir été clair.

    Stéphane

    PS : Je suis en Delphi 5

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 254
    Points
    25 254
    Par défaut
    Essaye de Tricher avec le BorderStyle / Ctl3D, tu aurais du mal à dessiner sur les composants purement windows ...

  3. #3
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    une solution tres tres simple est de creer un TShape avec un BrushStyle a BSClear, et dessiner un carré avec bordure (options du TShape).

    Ensuite en placant ce composant "sous" le composant souhaité et avec le meme parent .. tu devrais arriver a avoir ce que tu souhaite

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 43
    Points : 34
    Points
    34
    Par défaut
    Salut

    Je pensais bien au Tshape, mais j'aurais aimer une solution plus artistiques...

    Merci pour vos réponses.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Points : 1 418
    Points
    1 418
    Par défaut
    Citation Envoyé par dominoz Voir le message
    Mais lorsque je pose le controles sur un Autre controles un Panel par exemple et bien en tout logique il dessine le rectangle sous mon panel.
    Bonjour,

    D'après la description du phénomène, tu dois être en train de dessiner ton cadre dans le canvas du TForm et non dans le canvas du contrôle Parent de l'élément actif...

    Yan.

  6. #6
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par dominoz Voir le message
    Je pensais bien au Tshape, mais j'aurais aimer une solution plus artistiques...
    bha ....d'apres ce que tu dis, tu dessine sur le composant parent, donc a l'aide du canvas ... et d'un brush ... et d'un pen ... et d'un drawrect ....

    Bref tu refait ce que fait un TShape pour toi (une fois bien parametré )
    Mis a part que tu vas devoir gerer de dessin en focntion de la parente de ton composant, alors que le TShape le fait automatiquement via la property Parent.

    Ou alors .. derive tes composants et surcharge leurs methodes paint.
    Ca sera plus propre mais plus galere

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 43
    Points : 34
    Points
    34
    Par défaut
    Oki,

    Pas assez balaise pour surchargé le paint... Donc me rabattre sur un Tshape.

    Merci encore pour vos réponses.

  8. #8
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Bonjour,

    dominoz a écrit :
    les users étaient habitué a avoir un rectangle autour du "controle" actif.
    ...PS : Je suis en Delphi 5
    ... et pourquoi ne pas les habituer à avoir simplement le changement de couleur du contrôle losqu'il devient actif/inactif ?
    ...cela marche aussi en Delphi 5 et sans se casser la tête.

    A+

  9. #9
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par Gilbert Geyer Voir le message
    ... et pourquoi ne pas les habituer à avoir simplement le changement de couleur du contrôle losqu'il devient actif/inactif ?
    ...cela marche aussi en Delphi 5 et sans se casser la tête.
    Surement par soucis de productivitée
    En general quand un client demande de telles choses c'est que les utilisateur sont un peu "leger" en informatique et leurs changer les habitude demande plusieurs semaines ... mois de formations

    C'est comme ca que nous developpeurs devons migrer une application console en applciation Graphique ....... manipulée uniquement a l'aide raccorci claviers !!

    En bref .... se debrouiller pour faire tourner des applciations centenaire sur les derniers PCs a la mode

  10. #10
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Re-Bonjour,

    Clorish a écrit :En general quand un client demande de telles choses c'est que les utilisateur sont un peu "leger" en informatique et leurs changer les habitude demande plusieurs semaines ... mois de formations
    ... Bigre, dans ce cas les utilisateurs seraient carrément nuls : il suffit d'une minute pour faire comprendre à quelqu'un que désormais les rectangles sont remplacés par le changement de couleur : par exemple champs de saisie jaunes = champs actifs et blancs en mode consultation inactifs.

    ... et en prime on peut offrir facilement aux utilisateurs la possibilité de choisir la couleur qu'ils préfèrent pour distinguer les contrôles actifs des contrôles inactifs. (le jaune ça réchauffe un peu en hiver, et clAqua raffraîchit en été) et ça évite d'avoir à choisir à la place des utilisateurs.

    A+

    Edit : En plus cela ne coûte pas grand-chose de le proposer au client.

  11. #11
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par Gilbert Geyer Voir le message
    ... Bigre, dans ce cas les utilisateurs seraient carrément nuls
    J'en ai perdu la moitiee en changeant simplement de fond d'ecran ....
    quand a l'autre moitiee ... je crois que c'etait a partir du moment il il a fallut leur faire admettre que pour eteindre un PC on doit cliquer sur "Demarrer" :p

    Maintenant c'est sur ... on peux toujours essayer de le proposer
    Avec un peu de chance, il arrivera meme a leur faire gober que c'est la derniere technologie a la mode

  12. #12
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Bonjour,

    Clorish a écrit :
    J'en ai perdu la moitiee en changeant simplement de fond d'ecran ....
    ... Dommage mais je suppose que par la suite tes fonds d'écran sont devenus personnalisables.

    Clorish a écrit :
    quand a l'autre moitiee ... je crois que c'etait a partir du moment il a fallut leur faire admettre que pour eteindre un PC on doit cliquer sur "Demarrer" :p
    ... Cela avait également choqué ma logique jusqu'au jour où j'ai pris conscience qu'après tout on quittait bien son appartement par la porte d'entrée.

    A+

  13. #13
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    J'en ai perdu la moitiee en changeant simplement de fond d'ecran ....
    Perdu ... noyé ... largué .....
    Bref des gens deboussolé des que leurs PC n'avait plus le meme fond d'ecran
    C'est peut etre un poil exagéré (je suis marseillais :p) mais pas si loin de la verité

    Citation Envoyé par Gilbert Geyer Voir le message
    ... Cela avait également choqué ma logique jusqu'au jour où j'ai pris conscience qu'après tout on quittait bien son appartement par la porte d'entrée.
    en fait l'arret du PC est pris en charge par un "service".
    ET comme tout service .... il faut le demarrer
    On "demmare le service d'arret du PC"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/05/2009, 23h01
  2. [HTML] Afficher les bordures autour des cellules
    Par michaeljeru dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 06/06/2008, 15h15
  3. Bordure autour des sous rapport
    Par nico.developper dans le forum Jasper
    Réponses: 0
    Dernier message: 03/01/2008, 16h51
  4. bordure autours des tr
    Par c-ahlem dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 06/09/2007, 10h45
  5. Supprimer la bordure autour des images du menu
    Par Strix dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 18/11/2006, 10h25

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