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

C++Builder Discussion :

Suppression ligne dessiner par canvas


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de bhahmed
    Inscrit en
    Août 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2006
    Messages : 84
    Par défaut Suppression ligne dessiner par canvas
    bonjour,
    j'ai des lignes qui relient des images.
    j'aimerai sélectionner la ligne dessinée et pouvoir la supprimer par la touche "suppr"

    pour le dessiner les lignes j'utilise une fonction qui utilise une matrice si le noeud 1 et le noeud 2 doivent etre relier donc il ya un 1 ds la case correspondante sinon 0.

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Je ne pense pas que l'on puisse supprimer une ligne dessinée, je crois que tu doit la redessiner avec la couleur du fond, elle sera donc invisible.

  3. #3
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    C'est effectivement ce qu'il faut faire, tu redessine la ligne a supprimer avec la couleur de fond, de la même maniere que tu as dessiné la ligne pour la faire apparaitre, en faisant attention au fait que des ligne peuvent se croiser, et donc faire attention à ne pas effacé un petit bout d'une autre ligne car il croisé la première.

  4. #4
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Je suis d'accord avec blondelle, il faut redessiner par dessus pour enlever la ligne.

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    En fait, si on se place à un autre niveau, on peut très bien utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Canvas->Pen->Mode = pmNot;
    Dessiner une fois, dessine.
    Dessiner une deuxième fois par dessus efface.

    L'avantage est que l'on peut faire dans ce cas abstraction de la couleur de fond, au cas où ce fond ne serait pas uniforme.

    A plus !

  6. #6
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    henderson a ecrit:
    Salut !

    En fait, si on se place à un autre niveau, on peut très bien utiliser :


    Code:
    Canvas->Pen->Mode = pmNot;
    Dessiner une fois, dessine.
    Dessiner une deuxième fois par dessus efface.

    L'avantage est que l'on peut faire dans ce cas abstraction de la couleur de fond, au cas où ce fond ne serait pas uniforme.
    A plus !
    Est-ce que avec ta methode il est tenu compte des croisements de lignes comme l'a fait remarquer precedemment " pottiez " pour ne pas effacer l'intersection des lignes.

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Avec pmCopy le croisement prend immédiatement la couleur de fond à la suite de l'effacement d'une ligne.

    Par contre avec pmNot, tout dépend de la parité du nombre de segments qui se croisent en ce point !
    Un nombre pair efface le point de croisement tandis qu'un nombre impair le rétablit.

    Celà dit, à défaut d'avoir pu en juger, je ne suis pas persuadé que tout ait été bien conçu dès le départ, même si celà ne regarde que l'auteur, simplement à la lecture des questions posées !

    L'auteur a t-il envisagé ce qui se passera si la fenêtre est redimensionnée ou redessinée ?

    Si celà avait été le cas, cette question n'aurait jamais été posée !

    A plus !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Suppression ligne par ligne avec confirmation
    Par memo11 dans le forum Langage
    Réponses: 41
    Dernier message: 09/09/2009, 09h49
  2. Suppression d'une ligne Access par erreur
    Par dsifm dans le forum Access
    Réponses: 1
    Dernier message: 13/05/2008, 11h49
  3. Suppression ligne List-Box par clavier
    Par mxh77 dans le forum 4D
    Réponses: 0
    Dernier message: 29/04/2008, 16h44
  4. Effacer une ligne dessinée par Graphics.DrawLine
    Par roshy dans le forum VB.NET
    Réponses: 2
    Dernier message: 12/03/2008, 13h46
  5. [access/vb.net] Suppression ligne par rapport date
    Par t1marlartiste dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 13/07/2007, 20h01

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