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 FMX Delphi Discussion :

Composant FMX : comment ancrer les objets ?


Sujet :

Composants FMX Delphi

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Composant FMX : comment ancrer les objets ?
    Bonjour,

    Introduction

    Je commence à m'habituer à FMX avec encore beaucoup d'hésitations et donc à "percevoir" le produit. J'ai cherché pendant 10 minutes quelle unité il fallait insérer dans le uses pour utiliser les couleurs pré-déclarées telles que claBlack... (System.UIConsts)... Ce qui prouve, je suppose, que je ne sais pas utiliser correctement l'aide... Pourtant un Lazarusien a l'habitude de chercher .

    Je commence à réaliser (basculer) l'équivalent de mes composants Lazarus. J'en suis à mes boutons graphiques. Je déplore évidemment l'absence de TImageList mais on fera sans... car j'ai vu une solution alternative. L'approche de "substitution" m'a semblé pour le moins complexe... J'allais écrire "invraisemblable". On va rester dans la modération. Manque de pratique sans doute.

    Mais d'une manière générale, j'en suis au stade -que j'espère dépasser- de trouver l'environnement trop "contraignant", trop sophistiqué.... J'aime les IDE simples, dépouillés à la Delphi 7. Néanmoins, j'ai noté la question pour évaluation plus tard : Que m'apporte une telle sophistication en terme de productivité ? Par exemple les styles ? Quelle est leur ré-employabilité réelle ? Quel apport dans une Form comparé à la réalisation puis à l'utilisation d'un composant personnalisé ? Quelle est la limite de ce type de développement ? Par exemple, on trouve de nouveaux boutons stylisés (Ecriture penchée, fond de couleurs différentes...) mais je n'ai rien vu d'aussi sophistiqué que ce que l'on trouve en VCL (sans style). Là encore, jeunesse du produit ou complexité exponentielle avec les exigences ? Exemple de ce que je ne peux pas transposer actuellement de Lazarus vers FireMonkey : les boutons 5 états de Windev (mode "9 images" inclus)...

    Enfin mes composants transposés "compilent" en XE4 et sont installables.

    Mon problème : les ancres

    Comment gérer l'alignement de plusieurs objets dans un TLayout utilisé comme ancêtre. En Lazarus, il m'est très facile de placer un objet par rapport à un autre, l'autre n'étant pas nécessairement le parent. Par exemple un TLabel centré horizontalement sur un TImage contenus (les deux) dans un TPanel (cf component.png). L'exemple est simple, et on pourrait certainement utiliser des références uniquement au Parent pour résoudre ce problème. Il est volontairement simple pour comprendre mon approche habituelle. Dès que le problème se complique un peu, le positionnement d'objets de "même niveau" les uns par rapport aux autres procure une souplesse et une simplicité inégalées. Comment fait on-cela en Delphi FMX ?

    L'aide existe, est utilisable, mais ne m'a pas permis de résoudre mon problème.
    Citation Envoyé par http://docwiki.embarcadero.com/Libraries/XE4/fr/FMX.Controls.TControl.Anchors[/B
    FMX.Controls.TControl.Anchors
    Spécifie comment le contrôle est ancré à son parent
    et http://docwiki.embarcadero.com/Libraries/XE4/fr/FMX.Types.TAlignLayout... Cela semble plus complet que Lazarus mais malheureusement c'est moins facilement fonctionnel.
    alHorzCenter : Le contrôle est centré horizontalement dans la zone client du parent, et se redimensionne afin de remplir la hauteur de son parent. La largeur du contrôle n'est pas affectée. Si un autre contrôle, épinglé sur le bord, occupe déjà la partie de la zone parent, le contrôle se redimensionne afin de remplir la hauteur restante de son parent. Les ancrages sont définis sur [akTop,akBottom].
    et
    Citation Envoyé par http://docwiki.embarcadero.com/Libraries/XE4/fr/System.UITypes.TAnchors
    System.UITypes.TAnchors Description
    Embarcadero Technologies ne possède pas d'informations supplémentaires pour le moment. Veuillez nous aider à documenter cette rubrique en utilisant la page Discussion !
    Je cherche pour commencer à réaliser un centrage horizontal (ou vertical) simple (ie sans redimensionnement) d'un objet dans son parent. J'ai cherché une solution dans http://docwiki.embarcadero.com/RADStudio/XE4/fr/Strat%C3%A9gies_des_dispositions_FireMonkey. Et là, pas mieux... Cela parle peut-être à un Delphien mais pas à moi. En réalité, cette complexité est dûe au fait que seul le parent est utilisé comme référence. Si les objets d'un même parent pouvait être interfacés entre eux, la simplicité et la puissance seraient au rendez-vous. Là, je veux bien supposer que la dernière y est mais quid de la simplicité ?


    Autre approche très délicate semble-t-il : les TStringGrids

    Cela fera l'objet d'une autre discussion. Pour l'instant, je cherche de la documentation. Mais visiblement le codage est très différent de la VCL/LCL et certaines des méthodes que je veux implanter sont non documentées et les moteurs de recherches relativement muets.


    Suite des commentaires

    Sinon, que de plantages... Tout de suite en quittant Delphi (cf quit.png)... C'est la plupart du temps des problèmes d'affichage. Des Forms dans l'IDE qui deviennent noires (noir sur fond noir). Un petit resize à la souris rend le noir sur fond blanc ce qui me permet de revoir mes objets... Je ne parle pas du projet compilé mais de l'utilisation de l'IDE. C'est peut-être lié à mon 64 bits, à l'utilisation d'un Dual-Screen ? Par contre d'autres, comme celui-ci apparu juste après l'ouverture de Delphi lors de la déclaration d'un nouveau composant (cf ou.png), ne sont pas des problèmes d'affichage. Delphi s'est gelé.

    Pas de nouvelles de mes déclarations de bugs (reçues pas reçues, validées, en cours de traitement ?)... Rien à voir avec le bugtracker de Lazarus et le confort des patchs quotidiens...

    Mes impressions sont à la baisse... mais pas définitives. J'ai un avis très réservé sur les styles, le livebinding... C'est simple au départ, puis rapidement compliqué. L'approche est très "propriétaire" (ie propre à Embarcadero)... Et à mon avis, d'autres approches sont aussi productives et efficaces... et moins contraignantes. Bref, je ne vois pas réellement l'apport de ces méthodes. Et là, j'ai une impression bizarre de déjà vu... Ce type d'aide au développement, on met le doigt dedans... et on subit au fil des versions -que l'on ne peut plus quitter... et pour cause- le meilleur... et le pire. En résumé, au niveau simplicité, j'ai vu mieux et au niveau fonctionnalité, j'ai vu mieux aussi... surtout si on lie les 2 !

    Il me reste 30 jours pour affiner mon approche et m'adapter au mieux au produit. Merci pour une éventuelle réponse sur les ancrages. Cela m'arrangerait bien... Sinon on va faire des calculs pour les positionnements.

    Ressources

    • INNOVA Solutions : FireMonkey is Different [http://www.innovasolutions.com.au/delphistuf/ADUGVCLtoFMXConv.htm]
      Contient notamment VclToFmxConvert.zip - Zip of Code and Executable The file includes the latest executeable and source code. Il y a les sources mais dans mon cas le paquet ne s'installe pas. Il me manque "fmx161.bpl". (cf package.png). Est-ce un moyen d'empêcher l'installation de paquets tiers dans les versions Trial ou un paquet créé en XE2 qui nécessite une bibliothèque (ou un paquet) abandonnée en XE4? Je ne sais pas.


    Bon WE. Cordialement. Gilles
    Images attachées Images attachées     
    Dernière modification par Invité ; 06/05/2013 à 10h06. Motif: Précisions

Discussions similaires

  1. Réponses: 9
    Dernier message: 28/05/2008, 02h06
  2. Comment deplacer les objets sur JBuilder?
    Par awane dans le forum JBuilder
    Réponses: 3
    Dernier message: 08/07/2006, 18h23
  3. Comment lister les objets d'Active Directory ?
    Par fbalien dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 16/01/2006, 19h59
  4. [gcc/ld] comment "zapper" les objets non référéren
    Par jula dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 05/01/2006, 15h15
  5. [JVM]Comment obtenir les objets en mémoire ?
    Par ZeKiD dans le forum Général Java
    Réponses: 6
    Dernier message: 15/12/2005, 08h59

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