|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
WD Objets graphiques --> Insérer un fil |
Débuté par Jérôme L., 17 déc. 2019 23:38 - 5 réponses |
| |
| | | |
|
| |
Posté le 17 décembre 2019 - 23:38 |
Bonjour à tous,
J'utilise l'exemple WD Objets graphiques pour "dessiner" un schéma d'une infrastructure informatique. J'ai ajouté des logos, et je cherche maintenant insérer un fil entre 2 logos.
Cela fait plusieurs jours que j'essaie avec "Champcrée" mais sans résultats. Savez-vous si cela est possible ? Si oui, auriez-vous une piste à me donner svp?
Merci d'avance ! |
| |
| |
| | | |
|
| | |
| |
Posté le 18 décembre 2019 - 08:26 |
Bonjour,
Je fais ce type de projet pour cartographier les applications et les flux. J'utilise champcree :
MonFil est un Champ MonFil <- ChampCrée(sWnom_lien, typFil) MonFil..ChampDépart = wchamp_depart MonFil..ChampArrivée = wchamp_arrivee MonFil..NbMaxSegment=wnd_seg MonFil..Epaisseur=5 MonFil..Couleur=wcouleur MonFil..FormeExtrémitéDépart = formeAucune MonFil..FormeExtrémitéArrivée = formeFlèche MonFil..FormeExtrémitéTaille = 20 MonFil..Altitude = 0 MonFil..Traitement[trtBoutonGaucheDoubleClic] = CLIC_LIEN MonFil..Traitement[trtBoutonDroitRelâché] = CLIC_DROIT_LIEN MonFil..Altitude=100
CDLT
PH |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 10 messages |
|
Posté le 18 décembre 2019 - 13:15 |
Bonjour Patrice,
Merci pour votre réponse.
Stockez-vous ces ligne dans une procédure locale? Appelée par un bouton? Je ne comprends pas comment récupérer les références des objets à "relier".
Merci d'avance. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 10 messages |
|
Posté le 18 décembre 2019 - 23:33 |
Bon, j'ai réussi à créer le fil. Je ne sais pas si c'est très "académique" mais ça fonctionne.
Traitement du bouton "Insérér flêche" dans la fenêtre principale :
SI CFI_DOCUMENT..FenêtreSource = "" ALORS RETOUR FenEdActive(CFI_DOCUMENT.MGREspace,Vrai) sSelection est une chaîne = CFI_DOCUMENT.JL_IdentifieSelection()
Procédure locale JL_IdentifieSelection() dans la fenêtre interne
Procedure JL_IdentifieSelection()
sSelection est une chaîne
SI PAS FenEdSelectOccurrence(MGREspace) >= 1 ALORS ErreurDéclenche(500, "Aucune sélection courante") RENVOYER Faux FIN
SI FenEdSelectOccurrence(MGREspace)<>2 ALORS ToastAffiche("Vous devez sélectionner 2 images") RENVOYER Faux FIN
sChampDepart est un Champ <- FenEdSelect(MGREspace, 1) sChampArrivee est un Champ <- FenEdSelect(MGREspace, 2) sNomFil est une chaîne = sChampDepart..Nom + "-" + sChampArrivee..Nom
JL_CréeFil(sNomFil,sChampDepart,sChampArrivee)
RENVOYER Vrai
Et enfin Procédure locale JL_CréeFil()
Procedure JL_CréeFil(sWnom_lien,wchamp_départ,wchamp_arrivee est un Champ)
MonFil est un Champ
MonFil <- ChampCrée(sWnom_lien, typFil) MonFil..ChampDépart = wchamp_départ MonFil..ChampArrivée = wchamp_arrivee MonFil..NbMaxSegment=3 MonFil..Epaisseur=1 MonFil..Couleur=iNoir MonFil..FormeExtrémitéDépart = formeAucune MonFil..FormeExtrémitéArrivée = formeAucune MonFil..Altitude=100
Donc là ça fonctionne plutôt pas mal... sauf que je rencontre 2 nouveaux problèmes : - lorsque j'enregistre, le fil devient transparent. Je peux néanmoins le sélectionner. - lorsque je tente de le supprimer j'ai une erreur :
Une assertion n'est pas vérifiée à la ligne 44 du traitement 'FI_ESPACE_TRAVAIL.PROCEDURE.__MGRObjetSupprime'.
Pile : Procédure locale __MGRObjetSupprime (FI_ESPACE_TRAVAIL.PROCEDURE.__MGRObjetSupprime), ligne 44 Procédure interne __SuppressionDepuisProps (FI_ESPACE_TRAVAIL.PROCEDURE.__MGRExécuteSuppressionDepuisProps), ligne 33 Procédure locale __MGRExécuteSuppressionDepuisProps (FI_ESPACE_TRAVAIL.PROCEDURE.__MGRExécuteSuppressionDepuisProps), ligne 18 Procédure locale __MGRExécuteSupprimeSélectionCourante (FI_ESPACE_TRAVAIL.PROCEDURE.__MGRExécuteSupprimeSélectionCourante), ligne 33 Procédure locale MGRSupprimeSélection (FI_ESPACE_TRAVAIL.PROCEDURE.MGRSupprimeSélection), ligne 19 Clic sur BTN_SUPPR (FI_ESPACE_TRAVAIL.FI_ESPACE_TRAVAIL.BTN_SUPPR), ligne 3
Cette erreur n'apparaît pas si j'enregistre avant et que le fil devient transparent.
Une idée? |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 10 messages |
|
Posté le 20 décembre 2019 - 21:02 |
Bon, j'ai trouvé pour la suppression. Voici le code de la procédure modifiée.
Procedure JL_CréeFil(sWnom_lien,wchamp_départ,wchamp_arrivee est un Champ)
MonFil est un Champ MonFil <- ChampCrée(sWnom_lien, typFil) MonFil..ChampDépart = wchamp_départ MonFil..ChampArrivée = wchamp_arrivee MonFil..NbMaxSegment=3 MonFil..Epaisseur=1 MonFil..Couleur=iNoir MonFil..FormeExtrémitéDépart = formeAucune MonFil..FormeExtrémitéArrivée = formeAucune
MonFil..Altitude = 0
MonFil..Altitude=100
FenEdDo(MGREspace, __CréeObjet) PROCEDURE INTERNE __CréeObjet() Empile(PileActions, "Créer") MGRObjetAjoute(MonFil) sNom est une chaîne = MonFil..Nom FenEdDéclareUndo(__AnnuleCréeObjet) PROCEDURE INTERNE __AnnuleCréeObjet() Dépile(PileActions) __MGRObjetSupprime(sNom) FIN RENVOYER Vrai FIN
RENVOYER MonFil
Reste que j'ai toujours le fil qui disparaît quand j'enregistre. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 10 messages |
|
Posté le 07 janvier 2020 - 20:53 |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|