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

WinDev Discussion :

Manipulation d'une image


Sujet :

WinDev

  1. #61
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 953
    Points : 763
    Points
    763
    Par défaut
    Vmolines,

    Il n'y a pas plus limpide.

    J'ai bien déclaré la variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CZonePlanRectangle est une classe
    	hérite de CRectangle
    	slibellé est une chaîne
    	QteStock est un entier
    FIN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PROCEDURE Constructeur(poPoint1 est un CPoint dynamique, poPoint2 est un CPoint dynamique, LOCAL psLibelle est une chaîne, LOCAL psStock est un entier)
    	Constructeur CRectangle(poPoint1, poPoint2)
    slibellé = psLibelle
    QteStock = psStock
    J'ai bien compris ou placer la variable:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Code appelant (lecture BDD) -> AjouterZonePlanRectangle -> Constructeur zone -> membre QteStock
    Ce que je ne comprends pas, c'est comment appeler la variable
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


  2. #62
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Pour moi tout est bon. Quand je disais "membre QteStock", il s'agissait bien du paramètre passé au constructeur et qui va dans le membre (ce que vous avez bien fait) :

    Vous avez un disfonctionnement lors de l'affichage des zones ?

    edit : je viens de voir où est le problème

    Dans la méthode dessiner de l'objet Zone, vous utilisez une variable locale QteStock. Mais ce n'est pas la peine car l'objet a déjà un membre QteStock. Pour utiliser le membre d'un objet dans le code de cet objet, il faut préfixer par ":" (deux points).

    Définition de la classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CClasse est une classe
        MonMembre est une chaine
    FIN
    Constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CONSTRUCTEUR CClasse (LOCAL psValeur est une chaine)
        :MonMembre = psValeur
    Code d'une méthode de la classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PROCEDURE MaMethodeDeClasse()
    Info(:MonMembre)
    Dans du code appelant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    oClasse est un CClasse dynamique
    oClasse = allouer un CClasse("Toto")
     
    oClasse:MaMethodeDeClasse() //va afficher :MonMembre donc "toto"

  3. #63
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 953
    Points : 763
    Points
    763
    Par défaut
    Vmolines,

    Je viens de comprendre l'exemple que vous m'avez communiqué.

    De là, je ne comprenais plus rien vu que je pensais avoir tout bon.....mais....parce qu'il y a toujours un "mais".....

    Je me suis aperçu, en relisant tout mon code, que la méthode "Dessiner" n'était pas dans la bonne classe.
    En fait, au lieu de la poser dans "CZonePlanrectangle", je l'ai posé dans "CRectangle".

    Mais vu que les efforts que vous avez fait pour que je n'ai d'autres choix que de comprendre ce que je faisais, il m'a été possible de détecter mon erreur.

    Au fait........Cela fonctionne.

    Alors de là, J'effectue mes différents tests (Réception de marchandises, affectation au stock..... et ensuite comme promis, je mettrais le code dans son intégralité avec une pièce jointe pour illustration.

    Même si je tire une très grande satisfaction à aboutir dans mes développements, il me faut rester humble devant l'aide immensément précieuse que vous m'avez apporté dans ce sujet.

    Pour tout cela, merci
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


  4. #64
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 953
    Points : 763
    Points
    763
    Par défaut Cloture du sujet
    Bonjour à Tous,

    Voici le code final accompagnée d'une pièce jointe

    NB: A noter:
    Serveur : SQL 2005 et 2008
    Connexion : ODBC

    1- La table SQL: PLANS_ZONES


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    - PLZ_SITE varchar(15)  = Nom du site (vu que plusieurs sites)
    - PLZ_NOM varchar(50)  = Nom de la zone (exp: Zone clients, boutiques)
    - PLZ_TYPE numéric(18,0) = 1 pour réception, 2 pour picking, 3 pour réservé..
    - PLZ_AFFECTATION varchar(50) = Nom de la travée (TRAVEE A61.....)
    - PLZ_X1 numéric(18,0)
    - PLZ_Y1 numéric(18,0)
    - PLZ_X2 numéric(18,0)
    - PLZ_Y2 numéric(18,0)
    LES CLASSES

    Pour le code:

    4 classes:
    -CPoint
    -Cplan
    -CRectangle
    -CZonePlanRectangle

    CPoint:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Déclaration:
     
    CPoint est une classe
     
    	X est un entier
    	Y est un entier	
     
    FIN
     
    Constructeur:
     
    PROCEDURE Constructeur(LOCAL pX est un entier, LOCAL pY est un entier)
     
    	:X = pX
    	:Y = pY
     
    Méthode:
     
    FONCTION EstDansRectangle(poRectangle est un CRectangle dynamique)
    RENVOYER =((:X >=poRectangle:oPoint1:X ET :X <+ poRectangle:oPoint2:X) ET (:Y >= poRectangle:oPoint1:Y ET :Y <= poRectangle:oPoint2:Y))
    CPlan:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Déclaration:
     
    CPlan est une classe
    sChampImage est une chaîne
    tabTaboZonePlan est un tableau de 0 CZonePlanRectangle dynamique
     
    FIN
     
    Constructeur:
     
    PROCEDURE Constructeur(LOCAL psChampImage est une chaîne)
     
    :sChampImage = psChampImage
     
    Méthode 1:
     
    PROCEDURE AjouterZonePlanRectangle(poZoneRectangle est un CZonePlanRectangle dynamique)
     
    TableauAjoute(:tabTaboZonePlan, poZoneRectangle)
     
    Méthode 2:
     
    PROCEDURE Dessiner()
    liFontSize est un entier = 8
    dDébutDessin(:sChampImage)
     
    dStylo(Noir,0,12)
    dPolice("Arial",liFontSize,iNormal,0)
     
    oZonePlanRectangle est une CZonePlanRectangle dynamique
    POUR TOUT ELEMENT oZonePlanRectangle DE :tabTaboZonePlan
    	oZonePlanRectangle:Dessiner()
     
    FIN

    CRectangle:

    [code]Déclaration:

    CRectangle est une classe
    oPoint1 est un CPoint dynamique
    oPoint2 est un CPoint dynamique
    FIN

    Constructeur:

    PROCEDURE Constructeur(poPoint1 est un CPoint dynamique, poPoint2 est un CPoint dynamique)
    :oPoint1 = poPoint1
    :oPoint2 = poPoint2


    CZonePlanRectangle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CZonePlanRectangle est une classe
    	hérite de CRectangle
    	slibellé est une chaîne
    	QteStock est une chaîne
    FIN

    Constructeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PROCEDURE Constructeur(poPoint1 est un CPoint dynamique, poPoint2 est un CPoint dynamique, LOCAL psLibelle est une chaîne, LOCAL psStock est une chaîne)
    	Constructeur CRectangle(poPoint1, poPoint2)
    slibellé = psLibelle
    :QteStock = psStock
    Méthode:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    PROCEDURE Dessiner()
     
     
    SI :QteStock = 0 ALORS
     
    	dRectangle(:oPoint1:X, oPoint1:Y, oPoint2:X, oPoint2:Y,Transparent,BleuFoncé)	
     
    SINON
     
    	SI :QteStock > 0 ALORS 
     
    		dRectangle(:oPoint1:X, oPoint1:Y, oPoint2:X, oPoint2:Y,RougeFoncé,RougeFoncé)
     
    	FIN
    FIN
    Dans le code de la déclaration globale de la fenêtre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    //CONSTRUCTION DE L'IMAGE
    oPlan est un CPlan(IMG_Image1..Nom)
    // INTERROGATION A LA BDD SQL- Affichage de l'ensemble des zones dans la table mémoire TABLES_PLZ
    sRequetePLZ est une chaîne
    sRequetePLZ="SELECT PLANS_ZONES1.PLZ_AFFECTATION, PLANS_ZONES1.PLZ_X1O, PLANS_ZONES1.PLZ_Y1O, PLANS_ZONES1.PLZ_X2O, PLANS_ZONES1.PLZ_Y2O, "+...
    "STOCKS.STOC_QUANTITE "+... 
    "FROM PLANS_ZONES1 "+...
    "LEFT JOIN STOCKS "+... 
    "ON STOCKS.STOC_EMPLACEMENT = PLANS_ZONES1.PLZ_AFFECTATION "
    SI EnModeTest() ALORS Trace("Construction", sRequetePLZ)
    SI SQLExec(sRequetePLZ,"ReqPLZ") ALORS
    	SQLTable("ReqPLZ",TABLE_PLZ)
    POUR TOUTE LIGNE DE TABLE_PLZ
    	oPlan:AjouterZonePlanRectangle(allouer un CZonePlanRectangle(allouer un CPoint(TABLE_PLZ.COL_PLZ_X10,TABLE_PLZ.COL_PLZ_Y10),allouer un CPoint(TABLE_PLZ.COL_PLZ_X20,TABLE_PLZ.COL_PLZ_Y20),TABLE_PLZ.COL_PLZ_AFFECTATION,TABLE_PLZ.COL_QUANTITE))
     
    	FIN	
    FIN
    oPlan:Dessiner()

    Et dans le code du CLIC du champ IMAGE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    oPointClic est un CPoint(SourisPosX(), SourisPosY())
    //oZoneClic est un CZonePlanRectangle dynamique = oPlan:ZoneRectangleDepuisPoint(oPointClic)
    oZoneClic est un CZonePlanRectangle dynamique = oPlan:ZoneRectangleDepuisPoint(oPointClic)
    SI oZoneClic <> Null ALORS
     
    	Message("Vous êtes sur  :   " +oZoneClic:slibellé)
     
    FIN
    Dans le code Clic sur IMG_Image1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    oPointClic est un CPoint(SourisPosX(), SourisPosY())
    oZoneClic est un CZonePlanRectangle dynamique = oPlan:ZoneRectangleDepuisPoint(oPointClic)
    SI oZoneClic <> Null ALORS
     
    	Message("Vous êtes sur  :   " +oZoneClic:slibellé)
     
    	sRequêteStocks est une chaîne
    	TableSupprimeTout(TABLE_STOCKS)
    	sRequêteStocks="SELECT PLZ_SITE,PLZ_AFFECTATION,ART_NOMAPPEL,ART_CODIM1,ART_CODIM2,STOC_QUANTITE,ART_CODE,ART_CODEBARRE,ART_PRIXACHAT, "+...
    	"ART_PRIXVENTE,ART_PAYSORIGINE,PLZ_X1O,PLZ_Y1O "+...
    	"FROM ARTICLES,STOCKS,PLANS_ZONES1 "+...
    	"WHERE ART_CODE=STOC_ARTICLE AND PLZ_AFFECTATION=STOC_EMPLACEMENT AND PLZ_AFFECTATION = '"+oZoneClic:slibellé+"' "+...
    	"GROUP BY PLZ_SITE,PLZ_AFFECTATION,ART_NOMAPPEL,ART_CODIM1,ART_CODIM2,STOC_QUANTITE,ART_CODE,ART_CODEBARRE,ART_PRIXACHAT,ART_PRIXVENTE, "+...
    	"ART_PAYSORIGINE,PLZ_X1O,PLZ_Y1O "
    	SI EnModeTest() ALORS Trace(sRequêteStocks)
    	SI SQLExec(sRequêteStocks,"ReqStocks") ALORS
    		SQLTable("ReqStocks",TABLE_STOCKS)
     
    	FIN
    FIN
    Voilà.
    Et avant de clôturer, encore merci à Vmolines, Hpascal et Guardian
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


Discussions similaires

  1. Visualisation et manipulation d'une image 3DS ?
    Par blackbird1 dans le forum OpenCV
    Réponses: 0
    Dernier message: 30/04/2014, 03h35
  2. manipulation d'une image, comment faire ?
    Par Virgile le chat dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 28/03/2009, 13h30
  3. [GD] Manipuler une image générée par php
    Par madvic dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 01/07/2008, 22h04
  4. Réponses: 19
    Dernier message: 04/03/2008, 10h36
  5. Manipulations autour d'une image
    Par ProgElecT dans le forum Vos contributions VB6
    Réponses: 4
    Dernier message: 30/11/2007, 11h01

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