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

Windows Discussion :

[API] Supprimer un objet


Sujet :

Windows

  1. #1
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Points : 878
    Points
    878
    Par défaut [API] Supprimer un objet
    Bonjour à tous,

    je voudrais par API supprimer un objet. J'ai bien trouvé dans l'aide l'API "DeleteObject", mais je n'arrive pas à m'en servir.
    Citation Envoyé par API-Guide
    · hObject : Identifies a logical pen, brush, font, bitmap, region, or palette.
    ce hObject est le paramètre qui va avec l'API. mais je ne vois pas ce que c'est, ni comment l'obtenir à partir du nom de l'objet.

    Est-ce que quelqu'un a une idée?
    Zend PHP Certified Engineer, Certifié Symfony2
    blog : blog.lepine.pro
    Secrétaire de l'AFUP (Association des Utilisateurs de PHP)

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 938
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    Il s'agit du handle de l'objet.
    Ce handle a été renvoyé par la fonction qui a créé l'objet.

    Exemple d'un crayon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    HandleCrayon := CreatePen(ps_Solid, 0, RGB(255,0,0));
    ...
    DeleteObject(HandleCrayon);
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Points : 878
    Points
    878
    Par défaut
    Ok, mais... c'est quoi un crayon? Moi ce que je voudrais c'est supprimer un champ image de Windev 7... Je sais, je suis chiant, mais je débute .

    Il me faudrait un peu plus d'aide, parce que tout ce que je trouve comme aide sur Internet est en Anglais, et les textes de programmation traduits par des logiciels comme sur Trans.Voila donnent des trucs du style "Hwnd est la poignée...", un peu dur à comprendre, même quand on sait que Handle = poignée
    Zend PHP Certified Engineer, Certifié Symfony2
    blog : blog.lepine.pro
    Secrétaire de l'AFUP (Association des Utilisateurs de PHP)

  4. #4
    Membre émérite
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Points : 2 747
    Points
    2 747
    Par défaut
    deleteobject est pour un objet DGI, rien avoir avec ton pb.

    Pour ton pb, c'est directement lié au langage WinDev donc aucune idée
    il y a du linge sur la corde à linge

  5. #5
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Points : 878
    Points
    878
    Par défaut
    Non, ce n'est pas lié à Windev, enfin je ne crois pas. En windev on peut aussi utiliser les API, et je suis sûr qu'en Windev il n'y a pas de fonction pour supprimer un objet. J'en suis sûr puisque j'ai épluché l'aide pendant au moins 3 heures à ce sujet...
    Zend PHP Certified Engineer, Certifié Symfony2
    blog : blog.lepine.pro
    Secrétaire de l'AFUP (Association des Utilisateurs de PHP)

  6. #6
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Quel genre d'objet veux-tu supprimer ?
    Tu as delete, free, DeleteObject, tous font du nettoyage.
    Tu peux aussi mettre une propriété "Visible" de l'objet (je ne sais pas si elle existe sous Windev, mais il doit y a avoir l'équivalent) à false, comme celà l'objet est caché.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  7. #7
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Points : 878
    Points
    878
    Par défaut
    Pour le type d'objet, je l'ai precisé plus haut c'est un champ d'image. Mais pour la propriété Invisble, j'y ai pensé, mais je risque de me retrouver au bout d'un moment avec des milliers de champs images invisbles, soit énormement de mémoire vive. Je veux supprimer ce champ dans un but d'optimisation (indispensable)

    Sinon, pour Delete et Free, je ne les vois pas dans l'API-Guide. Et DeletObject, je n'arrive pas à m'en servir...
    Zend PHP Certified Engineer, Certifié Symfony2
    blog : blog.lepine.pro
    Secrétaire de l'AFUP (Association des Utilisateurs de PHP)

  8. #8
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Tu dis avoir des milliers de champs images invisibles, c'est donc que tu les crées quelque part avec un constructeur, donc tu dois pouvoir les détruire avec le destructeur correspondant (e.g. new => delete, malloc => free ...)
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  9. #9
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Points : 878
    Points
    878
    Par défaut
    Pour l'instant j'utilisais la fonction ChampClone de Windev, parce que je n'arrive pas à le faire par des API. Vus pouuriez me donner des exemples de création de champ image et de sa destruction?
    Zend PHP Certified Engineer, Certifié Symfony2
    blog : blog.lepine.pro
    Secrétaire de l'AFUP (Association des Utilisateurs de PHP)

  10. #10
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Désolé, ne connaissant pas WinDev, je ne peux pas t'aider.
    Dans la doc de Windev, il doit être indiquer comment on détruit les objets créés avec ChampClone tout de même ?
    Sur ce cher voilà ce que j'ai trouvé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ChampClone permet de créer une copie de champs existant dans une fenêtre.
    
    L'inverse est possible par l'API
    
    AppelDLL32('user32','DestroyWindow',handle(cNomChamp))
    
    
    Limites : 
    - Pour les champs composés (tables, onglets...) cela ne marche pas ! il faudrait disposer du handle du composant (colonne, volet) et tester.
    - Impossible de réutiliser un champ cloné puis supprimé. Si l'API supprime le contrôle dans la fenêtre, le contexte fenêtre de WinDev n'est pas rafraîchit (le champ existe encore).
    Pas l'air terrible le "ChampClone"
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  11. #11
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Points : 878
    Points
    878
    Par défaut
    Mais le ChampClone est bien pratique. Je vais utiliser cette API. Maintenant ce que je n'arrive pasà faire c'est à trouver le handle de l'objet. En Windev il y a la fonction SysFenHandle qui donne le Handle d'une fenêtre à partir de son titre, mais je ne vois rien pour trouver le handle d'un objet à partir de son nom...
    Zend PHP Certified Engineer, Certifié Symfony2
    blog : blog.lepine.pro
    Secrétaire de l'AFUP (Association des Utilisateurs de PHP)

  12. #12
    Rédacteur
    Avatar de Halleck
    Homme Profil pro
    Consultant PHP
    Inscrit en
    Mars 2003
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Consultant PHP

    Informations forums :
    Inscription : Mars 2003
    Messages : 597
    Points : 878
    Points
    878
    Par défaut
    C'est bon, j'ai trouvé. Une fonction de Windev permet de trouver le handle d'un objet très simplement:
    Handle(<Nomdelobjet>)
    . Je pensais que cette fonction ne donnait que le handle des fenêtres, et je viens seulement d'avoir l'idée qu'elle pouvait s'appliquer à un objet!

    Donc merci à tous pour votre aide. Ca faisait 2 semaines que je cherchais à supprimer un objet dans mon programme! Encore merci!
    Zend PHP Certified Engineer, Certifié Symfony2
    blog : blog.lepine.pro
    Secrétaire de l'AFUP (Association des Utilisateurs de PHP)

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/08/2006, 09h25
  2. Supprimer un objet de classe dans visual basic
    Par Access Newbie dans le forum Access
    Réponses: 4
    Dernier message: 02/08/2006, 20h26
  3. Comment supprimer des objets
    Par akrobat dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 17/06/2006, 11h48
  4. [debutant]Supprimer un objet instancié
    Par mikedavem dans le forum Général Java
    Réponses: 9
    Dernier message: 12/05/2006, 00h19
  5. Supprimer un objet
    Par ana2sb dans le forum Access
    Réponses: 1
    Dernier message: 21/11/2005, 20h34

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