J'ai exhumé un vieux code Delphi 2 que j'ai remis au goût du jour
https://github.com/tothpaul/DelphiTips.LinkEditor
et comme une image vaut mieux qu'un long discours, voici ce que ça donne
J'ai exhumé un vieux code Delphi 2 que j'ai remis au goût du jour
https://github.com/tothpaul/DelphiTips.LinkEditor
et comme une image vaut mieux qu'un long discours, voici ce que ça donne
On a tous je crois fait ce genre de petit outil pour s'amuser un jour ... j'ai commencé cependant en D4, un peu par hasard en transformant un TPanel en Splitter qui a eu l'effet de le rendre déplacement et redimensionnable que j'ai réutilisé pour le forum cette année
Lenteur lors de la création dynamique des composants
Un jour, j'ai repris et j'ai refait tout en DXE2 avec un code POO : composant flow graphique où je me suis surtout amuser avec les fleches en diagonales et la sélection autour (pour un autre projet), je ne l'ai jamais fini d'ailleurs : Graphe orienté et Delphi
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
ah super !
oui mon projet et sans prétention, c'est vraiment une mise au propre d'un code réalisé sous Delphi 2 il y a fort longtemps
et on pourra le mixer avec celui là, ça serait amusant
Excellent le dernier, c'est tout à fait l'idée, pour des projets professionnels sérieux, on se fait une petite étude de faisabilité dans un projet fantaisiste, c'est vrai que si l'on avait le temps de combiner toutes les conneries réalisées, il y aurait surement un truc top à obtenir, sachant que le plus intéressant au final cela sera de découpler le code au plus que possible, un peu en appliquant une pattern Decorateur où l'on peut substituer un comportement par un autre ou les combiner
En 2014, j'avais un peu tenté cela en reprenant un tas de code D5-D7, BCB6 et BCB2007, BCBXE3 vers un XE2, je suis loin d'avoir eu le temps de tout reprendre.
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Modeste représentant d'un probable grand nombre d'amateurs pour lesquels ces "petits" tests représentent une mine d'idées et exemples...
Merci de partager ces "bouts de code"....
Bon we à tous,
Windows 10 / Delphi Tokyo
"Les choses ne changent pas. Change ta façon de les voir, cela suffit" Lao Tseu
Bonjour,
Tout d'abord, un grand merci pour cette source qui m'a vraiment fait avancer dans un projet visant a générer des requêtes SQL pour des utilisateurs ne sachant pas utiliser MySQL, j'avais un outils (Datamodeler) qui fonctionnait avec InterBase mais je n'avais pas d'équivalent pour MySQL!
Si cela intéresse, je pourrais publier le résultat (bien que mon code est probablement brouillon à côté du code source ).
J'ai juste une remarque à faire, et une question sur le projet :
- Les liens peuvent paraître incohérents si l'item sélectionné n'est pas visible :
(Je sais que c'est qu'une démo, mais je ne sais pas si cela a été remarqué)
- Ma question est au niveau de la syntaxe d'une ligne :
Cette condition me laisse perplexe, si j'ai bien compris avec mes tests ça veut dire que 0/1 c'est bon, 2/3 c'est pas bon ,4/5 oui etc ? C'est la première fois que je vois ce genre de condition .
Code : Sélectionner tout - Visualiser dans une fenêtre à part if Link.LinkType and 2 = 0 then // Link.LinkType est un Integer
joli bug je corrigerais si je trouve 2 min...il faut borner la position de la flèche en fonction de la taille de la fenêtre
quand au LinkType j'aurais pu déclarer pour plus de lisibilité ceci
ce qui revient au même puisque Ord([LeftToRight]) = 1, Ord([RightToLeft]) = 2 et Ord([LeftToRight, RightToLeft]) = 3tu remarqueras que dans TDesignLink.Draw il y a ce code qui dessine les extrémités des flèches
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 type TLinkTypes = (LeftToRight, RightToLeft); TLinkType = set of TLinkTypes;
il aurait donc pu s'écrire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if LinkType and 1 <> 0 then Polygon(Arrow1); if LinkType and 2 <> 0 then Polygon(Arrow2);
mais par exemple le double click qui change le type de lien serait un peu plus verbeux que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if LeftToRight in LinkType then Polygon(Arrow1); if RightToLeft in LinkType then Polygon(Arrow2);
le LinkType est donc 1 (de droite à gauche) 2 (de gauche à droite) ou 3 (double sens), avec la formule 1 devient 2, 2 devient 3 et 3 devient 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 FCurLink.LinkType := 1 + Succ(FCurLink.LinkType) mod 3;
Je vois, merci pour ces précisions, je comprend un peu mieux maintenant ^^.
Pour le bug, je vais me pencher dessus dès que j'aurais fini le plus gros de mon programme, ça sera l'occasion de réussir à comprendre cette partie du code
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager