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

Interfaces Graphiques Discussion :

Probleme utilisation d'activeX, taille de l'objet


Sujet :

Interfaces Graphiques

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Points : 28
    Points
    28
    Par défaut Probleme utilisation d'activeX, taille de l'objet
    Bonjour tout le monde
    Je veux utilisé un active X dans une Gui et j'essaye donc de l'intégré dans (remplir) une figure le problem c'est que je n'y arrive pas et je ne pense pas que ce soit possible.
    J'essaye donc de récupérer la taille de cette figure et de placer l'activeX par dessus, mais là aussi j'ai un soucci je n'arrive pas a récupérer la taille de celui ci

    ma méthode:
    get (figue,'Position')
    et c'est là que se trouve le principal problemen, en effet je me suis rendu compte que quelque soit ma facon de creer ma figure prncipale la taille restait tjrs la meme a l'affichage, qulquesoit le parametre de position que j'utilise.

    voila ce que j'execute:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     'Name','maFigure',...
      'NumberTitle','off', ...
      'Units','pixels',...
      'Toolbar','figure',...
      'WindowStyle','docked',...
      'Visible','on',...
      'Position',[1 200 200 200]);
    ou Bien en relatif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      fi=figure(...
      'Name','maFigure',...
      'NumberTitle','off', ...
      'Units','normalized',...
      'Toolbar','figure',...
      'WindowStyle','docked',...
      'Visible','on',...
      'Position',[0 0 1 1]);
    et dans les deux cas la fenetre ne fait pas la bonne taille (200x200 ou bien tout l'ecran)
    En espérant avoir été assez clair, si quelqu'un pouvait m'aider a creer de bonne fenetre et a en répurérer la taille dynamiquement
    Ou bien si il existe un moyen our "remplir' une ffigure avec un activeX (un positionnement relatif en gros)

    Merci



    Hors ma fenetre ne fait pas

  2. #2
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Le problème vient de là :
    Si tu demandes à MATLAB de "docker" (inclure serait peut-être la traduction) la figure il la redimensionne automatiquement.
    Essaye en supprimant cette ligne.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    OK je te remercie, mon code fonctionne bien maintenant avec un bon positionnement de mon activeX

    J'en profite pour posser une autre question sur le meme sujet:
    J'ai utilisé un callBack dans le cas ou je redimensionne ma figure parente ('ResizeFcn',@resizeActiveX)

    Ma fonction marche bien et j'obtient le resultat attendu cependant le temps de réaction est extrèment lent 2 à 3 secondes pour simplement faire 8 multiplication et un deplacement, je pense que je n'utilise pas bien les callback et mes variables, j'ai impriqué mon callback dans une autre fonction pour pouvoir avoir acces a certaines variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    fonction créationActiveX(...)
    %creation de l'activeX et branchement du callback
     
    <div style="margin-left:40px">fonction callBack(src,evt)
    %resize
    end</div>end
    Mes question sont donc:
    -Est ce comme ca qu'il faut faire (imbriqué mon callback) ou existe til une syntaxe pour passer des variable a mon callback
    -D'ou peu venir ce temps de réponse si lent (probleme de renderer??)

    Remarque: lorsque je restaure ma fenetre le redimensionnement est instantanné

    Encore merci

  4. #4
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Citation Envoyé par Tiéry Voir le message
    -Est ce comme ca qu'il faut faire (imbriqué mon callback) ou existe til une syntaxe pour passer des variable a mon callback
    C'est en effet une des solutions et la plus simple à mon avis.
    Citation Envoyé par Tiéry Voir le message
    -D'ou peu venir ce temps de réponse si lent (probleme de renderer??)
    Difficile à savoir sans le code.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    Oui bon en fait je suis juste un gros boulet, j'avais laissé des logs qui bouffait toutes mes ressources

    Et encore merci

  6. #6
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    Finalement mon probleme n'est pas vraiment résolu

    Il faut que ma figure soit docké et dans ce cas la impossible de répurérer la taille réelle de celle ci, le mieux qu'on puisse faire c'est une évaluation .... et encore...

    C'est tout de meme étrange qu'on ne puisse pas remplir un objet graphic avec un activeX, si quelqu'un a des idées, le probleme n'est pas très courrant au vu des rares info que j'ai pu trouver sur le net

  7. #7
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Citation Envoyé par Tiéry Voir le message
    C'est tout de meme étrange qu'on ne puisse pas remplir un objet graphic avec un activeX, si quelqu'un a des idées, le probleme n'est pas très courrant au vu des rares info que j'ai pu trouver sur le net
    Je ne suis pas sure de tout bien comprendre.
    L'objet activex (je ne connais pas bien) doit bien avoir une propriété Position, dans ce cas si tu le mets en unités noramlized et position [0 0 1 1] il devrait remplir toute ta figure (même dockée).

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    h=figure('windowsty','docked');u=uicontrol('units','normalized','position',[0 0 1 1],'style','listbox')
    PS : Quel est l'intérêt d'avoir une figure "dockée" ?
    (1 c'est moche et 2....euh c'est moche )

  8. #8
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 304
    Points : 52 882
    Points
    52 882
    Par défaut
    Tu pourrais peut être "docker" la Figure après avoir insérer le controle ActiveX :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    fig = figure('units','pixels','position',[0 0 200 200],...)
     
    actx = actxcontrol(...)
     
    set(fig,'windowstyle','docked')

  9. #9
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    J'ai besoin de docker ma figure pour avoir une pseudo navigation par onglet avec d'autre figure
    Et pour la position de l'activeX et le normalized c'est ca le probleme principale (j'aurai peut etre du le précisé plus tot ), on ne peut le positionner qu'avec une position absolu en pixel d'apres mes tests

    Enfin en ce qui concerne le re-docking de la figure et bien j'ai deja essayé et ca ne fonctionne pas, le positionnement se fait par rapport au dimension de la figure si elle n'était pas docker mais celle ci sont fausse vu qu'elle est docker..............ouf

  10. #10
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Dans ce cas plutôt que de chercher une solution au problème généré par ta solution (), autant chercher une solution à ton problème de départ : avoir des onglets.

    Tu pourrais tout mettre sur une fenêtre avec des onglets en utilisant les fonctions uitabgroup et uitab.
    Ok elles ne sont pas documentées et MATLAB te met un warning quand tu demandes l'aide dessus, mais en les éditant tu peux voir comment elles fonctionnent.
    Comme activex n'a pas beaucoup d'aide non pus tu devrais t'en sortir

    Ou alors sur le FEX : Simple tab panel

  11. #11
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    uitab ne permet malheuresement pas d'utiliser les activeX

    J'ai deja essayé des codes trouvé sur FEX rien ne me satisfait je suis assez difficile
    Pour le Simple tab panel le pb est que c'est un peu de la bidouille avec GUIDE

    mais Je vais continuer a chercher de ce coté là, avec d'autre source

  12. #12
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Citation Envoyé par Tiéry Voir le message
    uitab ne permet malheuresement pas d'utiliser les activeX
    Ah bon ? Pourquoi ? (là tout de suite je n'ai pas MATLAB alors je ne peux pas vérifier).

    De toute façon quoique tu fasses ce sera de la "bidouille".
    Autre chose, fais-tu cette application uniquement pour toi ou pour d'autres utilisateurs ?
    Car dans le 2ème cas de toute manière le système de docking ne sera jamais la solution puisque les utilisateurs pourront "undocker" les fenêtres (je n'aime vraiment pas ce terme mais ne trouve pas de traduction satisfaisante).

    Au bout d'un certain nombre d'années de pratique tu te rendras compte que de toute façon il vaut mieux coder soi-même à la mimine les choses et éviter d'utiliser les nouveautés de MATLAB (GUIDE ou le système de dock).

  13. #13
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    Apparement y'aurai un bug du coté des uitab et les activeX ne fonctionnerai pas, j'ai arrété de chercher de ce coté là, je pense que je vais simpplement créer mon activeX dans un nouvelle feneter undocker

    En tout cas merci pour l'aide

Discussions similaires

  1. Probleme utilisation d'Objets managé grace a gcroot
    Par pepefourras dans le forum MFC
    Réponses: 4
    Dernier message: 16/05/2006, 00h26
  2. Problème de limitation de taille d'un processus.
    Par vince3320 dans le forum Administration système
    Réponses: 3
    Dernier message: 23/03/2006, 13h48
  3. utiliser un script pour inserer des objets 3D
    Par s_mihai dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/08/2005, 13h52
  4. Taille d'un objet
    Par DeusXL dans le forum DirectX
    Réponses: 7
    Dernier message: 02/09/2004, 11h21
  5. [Image] Probleme de diminution de taille
    Par cameleon2002 dans le forum 2D
    Réponses: 2
    Dernier message: 08/07/2004, 09h32

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