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

Langage Delphi Discussion :

Conception d'interface : Code ou VCL


Sujet :

Langage Delphi

  1. #1
    Membre très actif
    Inscrit en
    Décembre 2004
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 188
    Par défaut Conception d'interface : Code ou VCL
    Bonjour,

    Une petite question d'ordre général. Quand vous développez une application, disons d'une taille raisonnable (c'est à dire pas un petit truc et pour plusieurs utilisateurs), est-ce que vous définissez les propriétés :
    - uniquement dans l'inspecteur d'objets
    - uniquement dans le code
    - un peu des deux

    Car il me semble qu'en définissant les propriétés uniquement par l'inspecteur cela ne permet pas vraiment de tout gérer (changement de taille d'écran suivant les utilisateurs, taille des composants suivant la langue,...).

    Et que tout coder est un peu lourd.

    Merci pour vos avis.

  2. #2
    Membre éprouvé
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Par défaut
    Un peu des deux mais tout ce que je peux faire dans l'inspecteur d'objets je le fais là. Delphi est plustôt bien conçu donc aucune raison de refaire le monde.

  3. #3
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    J'aurais fait la même réponse qu'Harry.

    Pour ce qui est des tailles d'écran différentes, penses à utiliser la propriétés Align des composants. Cela permet de s'ajuster automatiquement à la taille de la fenêtre et donc à celle des écrans.

  4. #4
    Membre éprouvé
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Par défaut
    Pareil, au max dans l'inspecteur
    C'est plus clair et la place est faite pour ca, c'est là que l'on cherche en 1er.

    Quand c'est changé par code, les propriétés servent quand même pour le défaut, derriere ce n'est que surcharge.

    Meme le Tag, il permet souvent d'éviter de définir des variables à tout va.

    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  5. #5
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Par défaut
    pour ma part c'est pareil, les propriétés par défaut sont définies dans l'inspecteur d'objets, lorsqu'un utilisateur modifie les siennes elles sont sauvegardées dans un fichier ini, dans le registre ou dans une base de données selon les cas

  6. #6
    Membre très actif
    Inscrit en
    Décembre 2004
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 188
    Par défaut
    Parce que pour ma part, je me retrouve régulièrement avec des forms ou par exemples les boutons ne sont plus à la même place (surtout suivant les utilisateurs avec des résolutions d'écran différentes). Voir le bouton se retrouve en-dehors de la partie visible.

    Je dois donc repositionner les composants dans le code et je me retrouve avec de plus en plus de code.

  7. #7
    Membre éprouvé
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Par défaut
    Parce que pour ma part, je me retrouve régulièrement avec des forms ou par exemples les boutons ne sont plus à la même place (surtout suivant les utilisateurs avec des résolutions d'écran différentes). Voir le bouton se retrouve en-dehors de la partie visible.
    La seule solution serait de bien utiliser la propriété Align, tu gères toutes les resolutions un par un ? Mazette, tu dois en avoir du code ! et puis ca doit etre la galère pour deplacer un bouton !

  8. #8
    Membre très actif
    Inscrit en
    Décembre 2004
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 188
    Par défaut
    tu gères toutes les resolutions un par un ?
    Non, j'ai mis à FALSE la propriété Scaled des forms pour éviter les dérapages, ce qui résoud une grande partie des problèmes.

    Pour limiter le code, je ne replace que les composants qui posent un problème mais dans ce cas je ne suis jamais sur que l'affichage va être correct.

  9. #9
    Membre éprouvé
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Par défaut
    A mon avis, il faut considérer une résolution minimum (moi je prends 800x600) pour que tout tienne et que tout soit atteignable dans le pire des cas.

    Ensuite, en jouant avec
    - Align
    - Anchor (très très utile )
    - et le regroupement dans des panels pour dissocier des parties de natures différentes

    on arrive à avoir quelque chose d'efficace et de joli en même temps pour toutes les résolutions.

    J'ai horreur des applis qui montre un mémo, ou un log avec une liste, sans pouvoir agrandir la fenêtre, ou pire, en agrandissant la fenêtre sans étirer le mémo ou la liste !
    Si on a un grand écran, c'est fait pour l'exploiter
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  10. #10
    Membre éprouvé
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Par défaut
    Anchor (très très utile )
    Oups, oui, dans mon post precedent j'ai confondu avec Align.. que j'ai mis en gras et tout, enfin ce n'est pas faux non plus mais bon cetais pas ce que je voulais dire

    Va falloir que j'arrete de poster à l'arrache au bureau

  11. #11
    Membre très actif
    Inscrit en
    Décembre 2004
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 188
    Par défaut
    A mon avis, il faut considérer une résolution minimum (moi je prends 800x600) pour que tout tienne et que tout soit atteignable dans le pire des cas.
    En fait j'utilise bien Anchor, Align et autre.
    En général, je concois aussi la form pour que cela passe sur un écran 800x600 (et que ca s'adapte correctement quand c'est plus grand).

    N'empêche qu'il arrive que les composants sautent de place à l'exécution (et en général chez les clients, pas sur ma machine).

  12. #12
    Membre éprouvé
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Par défaut
    [quote="Alfred12"]
    N'empêche qu'il arrive que les composants sautent de place à l'exécution (et en général chez les clients, pas sur ma machine).
    Comment ca ?
    Ils sautent pas tout seuls les composants

    Les problèmes qui peuvent survenir, c'est surtout si l'utilisateur change son Windows, couleurs (et encore on a les clxxx pour ca) mais surtout la taille de fontes windows. Et il adore ca !

    J'imagine que beaucoup de monde est tombé sur le pb lors du passe à Windows XP, ou la barre de titre a été agrandie -> zone de la fenetre rétrécie

    houba houba hop
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  13. #13
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    En général, c'est vrai que lorsque tu utilises Align=alBottom, ça donne des résultats pas terribles lorsque tu agrandi la fiche ou que tu la réduit (passage de wsNormal à wsMaximize et vice versa en fait).

    Personellement, j'évite alBottom

    A la place, je fait met la propriéété Align à alBottom à la conception, puis à alNone, je met ensuite tout à True pour les ancres (propriété Anchor), et puis voilà.

    Sinon, lorsque j'ai plusieur composants alignés avec alBottom ou un aligné avec alclient, ce que je fait, c'est que dans l'évènement OnResize de la forme, je code quelque chose comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MonControle.Align:=alNone;
    MonControle.Align:=alBottom;
    la deuxième affectation remet les choses correctement à leur place...

    Si j'ai pllusieurs contrôles avec alBottom, je les réalignes successivement, du bas vers le haut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MonControleLeplusEnBas.Align:=alNone;
    MonControleLeplusEnBas.Align:=alBottom;
    MonControleLeMoinsEnBas.Align:=alNone;
    MonControleLeMoinsEnBas.Align:=alBottom;
    En général ça ne marche pas trop mal même si ce code n'est pas très "joli"

    Sinon, j'aime bien utiliser aussi les contraintes de taille (Constraints).

    Enfin, tout ce que je peux mettre dans les propriétés de l'inspecteur d'objet, je le met.
    Le seul défaut que je trouve à ça, c'est pour imprimer mon code :
    Les initialisations de propriétés des composants sont bien sur imprimables via l'impression des fichiers dfm, mais comment faire alors le distingo entre les propriétés initialisées par défaut par le code des composants et celles initialisés par le programmeur ?

    Exemple : sur une fiche, je met un label dont je change le caption.
    Ma seule initialisation (à la conception et à part le placement des composants) a été la modification de la propriété caption. Si j'imprime le .dfm de ma fiche j'imprime toutes les initialisations de propriétés même celles qui ne sont pas les miennes... c'est peu être embêtant pour s'y retrouver (exemple de question existentielle d'un développeur Delphi : mais qu'elle propriété ai je pu modifier pour que ça ne s'affiche pas ?)

  14. #14
    Membre éprouvé
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Par défaut
    Le seul défaut que je trouve à ça, c'est pour imprimer mon code :
    Pourquoi tu fais ça ?

  15. #15
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Citation Envoyé par Harry
    Le seul défaut que je trouve à ça, c'est pour imprimer mon code :
    Pourquoi tu fais ça ?
    Parce quand tu te trimballe une quinzaine de fiches et 8000 lignes de code dans un projet,
    • mon moniteur 17 pouces du boulot me fait mal aux yeux pour me relire (trop petit)
    • lorsque j'ai besoin d'une partie de mon code qui se trouve dans l'unité unit36 , une autre dans l'unit18, pour écrire corectement mon code dans l'unit18.
    • lorsque je suis sur un algorythme tordu, j'emporte mon problème avec moi à la machine à café et je reviens en général avec une solution (pas pratique de le faire avec le PC de bureau )

  16. #16
    Membre éprouvé
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Par défaut
    mon moniteur 17 pouces du boulot me fait mal aux yeux pour me relire (trop petit)

    lorsque j'ai besoin d'une partie de mon code qui se trouve dans l'unité unit36 , une autre dans l'unit18, pour écrire corectement mon code dans l'unit18.

    lorsque je suis sur un algorythme tordu, j'emporte mon problème avec moi à la machine à café et je reviens en général avec une solution (pas pratique de le faire avec le PC de bureau )
    Bah, je me suis rendu compte du contraire avec près de 200 fiches environ 250 unités depassant régulierement les 10 000 lignes que sur mon 19LCD (et meme le 17LCD (je bosse sur 2 pc)) en scrollant + ctrl/clic pour sauter d'une fonc à l'autre j'arrivais mieux à lire que avec les pages qu'il faut tourner et rechercher les fonctions. Surtout qu'il me faudrais un stock de cartouches et de rammettes pour tout imprimer (le logiciel s'imbrique dans tous les sens en plus, c'est un cauchemard )

    Et crois moi, j'ai deja essayé dans des periodes de galère de recouvrir les murs de mon bureau avec des pages de code imprimé

  17. #17
    Membre très actif
    Inscrit en
    Décembre 2004
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 188
    Par défaut
    Personellement, j'évite alBottom
    En fait le problème dont je parle se produit avec Anchors=[akRight,akBottom] et Align=alNone. Quand c'est le bouton OK qui se retrouve en dehors de la fiche c'est assez embêtant pour l'utilisateur. C'est particulièrement vrai quand on laisse form.scaled=TRUE où le redimenssionnement se passe mal, mais ça m'est aussi arrivé en le mettant à FALSE

    Dans les autre cas je n'ai pas trop de problème, mais effectivement le Align=alBottom a tendance a merder un peu.

  18. #18
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Citation Envoyé par Harry
    mon moniteur 17 pouces du boulot me fait mal aux yeux pour me relire (trop petit)

    lorsque j'ai besoin d'une partie de mon code qui se trouve dans l'unité unit36 , une autre dans l'unit18, pour écrire corectement mon code dans l'unit18.

    lorsque je suis sur un algorythme tordu, j'emporte mon problème avec moi à la machine à café et je reviens en général avec une solution (pas pratique de le faire avec le PC de bureau )
    Bah, je me suis rendu compte du contraire avec près de 200 fiches environ 250 unités depassant régulierement les 10 000 lignes que sur mon 19LCD (et meme le 17LCD (je bosse sur 2 pc)) en scrollant + ctrl/clic pour sauter d'une fonc à l'autre j'arrivais mieux à lire que avec les pages qu'il faut tourner et rechercher les fonctions. Surtout qu'il me faudrais un stock de cartouches et de rammettes pour tout imprimer (le logiciel s'imbrique dans tous les sens en plus, c'est un cauchemard )

    Et crois moi, j'ai deja essayé dans des periodes de galère de recouvrir les murs de mon bureau avec des pages de code imprimé

    J'imprime que ce dont j'ai besoin : j'aime bien les arbres

  19. #19
    Membre très actif
    Inscrit en
    Décembre 2004
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 188
    Par défaut
    mon moniteur 17 pouces du boulot me fait mal aux yeux pour me relire (trop petit)
    Envisage des lunettes. C'est pas une blague. Moi j'en ai rien que pour l'écran et c'est vraiment mieux.

    Sinon j'avais oublié de mentionner que les problèmes de positionnement rencontré le sont très souvent pour des composants qui sont dans un cadre (TFrame)

  20. #20
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Citation Envoyé par Alfred12
    mon moniteur 17 pouces du boulot me fait mal aux yeux pour me relire (trop petit)
    Envisage des lunettes. C'est pas une blague. Moi j'en ai rien que pour l'écran et c'est vraiment mieux.

    Sinon j'avais oublié de mentionner que les problèmes de positionnement rencontré le sont très souvent pour des composants qui sont dans un cadre (TFrame)
    Je porte déjà des lunettes : je suis myope

    Tu crois que je suis foutu ?

    Non, c'est vrai que des fois je n'aime pas trop jouer avec l'ascenceur horizontal.

    Avec, mon 19 pouces à la maison, je n'ai aucun problèmes de vue, je t'assure !

Discussions similaires

  1. Trouvez une erreur de conception dans un code
    Par ultimate_manx dans le forum C
    Réponses: 11
    Dernier message: 02/05/2007, 22h37
  2. NetBeans interface code
    Par krachik dans le forum NetBeans
    Réponses: 3
    Dernier message: 19/04/2007, 13h58
  3. Ajouter du code à la VCL
    Par Tray dans le forum C++Builder
    Réponses: 8
    Dernier message: 27/03/2007, 12h26
  4. [debutant] Interfacer code c avec c++
    Par nivose110 dans le forum Débuter
    Réponses: 1
    Dernier message: 27/06/2006, 23h10
  5. Problème de conception d'interface
    Par Djangogol dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 28/04/2006, 09h12

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