Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

LiveBindings avec Delphi : écrire un composant observable
Un tutoriel de Serge Girard

Le , par gvasseur58

21PARTAGES

11  0 
LiveBindings avec Delphi : écrire un composant observable
un tutoriel de Serge Girard

Au cours de son introduction aux LiveBindings, Serge Girard avait utilisé un VCL.TTrackBar et en particulier sa propriété Position.Vous aviez alors découvert que ce composant n'était pas observable et un contournement vous avait été proposé pour résoudre ce problème : l’utilisation d’un lien non géré et l’instruction Notify. L'objectif de ce nouveau tutoriel est d'apprendre à rendre une propriété d'un composant observable et même d’ajouter d’autres propriétés qui pourront être liées.



Le tutoriel est ici : https://serge-girard.developpez.com/...s/Composant_A/

Encouragé lors des rencontres Delphi récemment organisées en France, Serge est déjà à pied d’œuvre pour le second volet de ce travail sur les composants FMX : qu'il en soit ici remercié au nom de la communauté Delphi de developpez.com.

Que pensez-vous de ce tutoriel ?
Comment gérez-vous les composants avec FMX ?

Les meilleurs cours et tutoriels pour apprendre la programmation Delphi

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Selzig
Membre régulier https://www.developpez.com
Le 04/06/2019 à 8:57
Bonjour Serge,

je crois que c'est l'approche globale qui me... lasse : du Livebinding, des styles à Gogo, des composants dont l'environnement de programmation (les à-côtés, les "déclarations" devient délirant. J'apprécie de placer mes composants sur une Form, une QMainWindow et ensuite de retourner sur mon éditeur (de textes) pour tout coder en Pascal ou en C++.

Suite à notre visite à Nantes, je me suis demandé s'il était possible de faire aussi bien que les ControlImage présentés par Patrick pour gérer le 4K et autres Retina. Le ScaleBy de Lazarus permet la mise à l'échelle d'une Form complète dans les 3 OS (y compris des polices automatiquement). Donc j'ai d'abord "fabriqué" une approche identique : glyph16, glyph32, glyph64,... avec un peu de code très classique pour déterminer au resize qu'elle est le glyph dont la taille est la plus proche de celle de l'objet redimensionné en privilégiant la réduction à l'augmentation...

Un de mes stagiaires qui est venu à Nantes a trouvé le système "dépassé" et m'a proposé d'utiliser SVG. Donc acte. J'ai testé sur un Retina : impeccable. Et évidemment portable sur Qt. Durée de la mise à jour de ma ligne de composants graphiques : BitButton, SpeedButton, Image,... et un composant non graphique de procédure d'affichage dans les Grids par exemple : une journée tout compris et je suis parti de TGraphicControl et TCustomControl, donc de la base. Il me reste à voir les menus.

Je laisse pour l'instant Delphi dans son coin sauf éventuellement pour le mobile. La partie non code (i.e. purement Pascal ou C++) d'une Form me semble représenter une part trop importante du développement, trop subtile pour moi et surtout trop floue donc extrêmement chronophage en production... qui devient insupportable quand le développement est conséquent. Effectivement ce n'est pas qu'une histoire de génération mais certainement, plus une capacité d'adaptation.

Bonne journée. A bientôt.
Gilles
1  0 
Avatar de Selzig
Membre régulier https://www.developpez.com
Le 03/06/2019 à 18:12
Bonjour,

Bravo Serge !

Mais je suis tout à fait incapable de produire un tel composant de manière "autonome". Je me demande quel temps de recherche représente cette approche. Pour moi, elle serait tellement conséquente… que je préfère renoncer . Je crois même que mon hypothétique utilisation de C++ Builder serait gâtée compte tenu de la 'gymnastique" nécessaire : mon manque de souplesse serait rédhibitoire. Franchement cette approche m'est toujours aussi indigeste voire insupportable. Quelle curieuse tournure d'esprit imposée ! J'utiliserai FMX donc Delphi que quand je ne pourrai pas passer ni par Qt, ni par Lazarus.

Mais quand même, chapeau l'Artiste

A bientôt. Gilles.
0  0 
Avatar de SergioMaster
Rédacteur/Modérateur https://www.developpez.com
Le 03/06/2019 à 18:52
Bonsoir Gilles,
Citation Envoyé par Selzig Voir le message
Je crois même que mon hypothétique utilisation de C++ Builder serait gâtée compte tenu de la 'gymnastique" nécessaire : mon manque de souplesse serait rédhibitoire.
Tous ceux qui me connaissent te diront que je suis physiquement loin d'être souple (et peu enclin à la gymnastique) c'est d'ailleurs à cause de mes raideurs que je choisis mes places dans les salles de façon très stratégique (pour ne pas avoir à tourner la tête). Bon cela dit je pense que tu voulais parler de gymnastique intellectuelle.

C'est vrai que de prime abord FMX est une bête étrange mais dans ce tutoriel il y a peu de pur FMX , je commence d'ailleurs par du VCL. Le seul point utilisé n'est pas tant FMX que Livebindings et ses particularités nécessaires pour les liaisons. Et Livebindings qu'est-ce ? En grossissant à peine le trait c'est une chose qui existe depuis des lustres : les RTTIs encapsulés avec des nouveautés
mais de l'existant !
Je concède que peu utilisent les RTTIs moi-même dans toute ma carrière ne l'ai-je utilisé que quelques fois et surtout pour du "cosmétique" genre changement de couleurs de mon interface.

FMX n'est pas LiveBindings même si Livebindings semble assez incontournable dès qu'il s'agit de FMX. FMX n'est pas non plus Delphi puisque avec C++ Builder on peut très bien faire des programmes multi-plateformes


Mais quand même, chapeau l'Artiste
Merci

Citation Envoyé par gvasseur58
Serge est déjà à pied d’œuvre pour le second volet de ce travail sur les composants FMX
Pas aussi facile celui-là, la création de ce volet est en dents de scie
0  0 
Avatar de SergioMaster
Rédacteur/Modérateur https://www.developpez.com
Le 04/06/2019 à 9:15
Bonjour,
Citation Envoyé par Selzig Voir le message

Un de mes stagiaires qui est venu à Nantes a trouvé le système "dépassé" et m'a proposé d'utiliser SVG.
Marrant, c'est justement ce que je suis en train de "tester à fond" cf Codes sources à télécharger
et commence même un petit topo sur le sujet (pas sur le SVG mais sur TPath)
0  0 
Avatar de SergioMaster
Rédacteur/Modérateur https://www.developpez.com
Le 05/06/2019 à 7:45
Bonjour,

Par M.P. l'on m'a fait remarquer que les images n'étaient pas centrées ce qui rendait le tutoriel moins esthétique.
Après m'être un peu bagarré avec le fichier, je viens de mettre en ligne la version révisée.
0  0