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

Lazarus Pascal Discussion :

Z-order : tabsheet, panel , listbox, BitBtn et IMAGE [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Photographe
    Inscrit en
    Septembre 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Photographe
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2014
    Messages : 26
    Par défaut Z-order : tabsheet, panel , listbox, BitBtn et IMAGE
    Bonsoir,

    je peine à régler l'ordre (z-order) de divers éléments
    tout d'abord capture d'écran de l'inspecteur d'objet

    Nom : ua0qnJK.png
Affichages : 356
Taille : 8,1 Ko

    quand je vais dans l'ordre de tabulation et ... on n'y voit pas les images !
    Nom : fJO30le.png
Affichages : 351
Taille : 12,4 Ko

    peut être est ce normal mais voici ma question:

    je ne parviens pas à régler le z-order de mes images, je n'arrive pas à les mettre au même niveau que les BitBtn derrière les panels


    les panels sont visibles ou non pour laisser apparaitre des boutons masqués derrière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    If Not DirectoryExists('save1') then
    	  begin
              Panel7.Show;
    	  ShowMessage ('bla bla') ;
              end
            else
            begin
    	  Panel4.Hide;
              Panel7.Hide;
              Panel8.Show;
              Panel9.Show;
    donc selon le z-order les boutons apparaissent mais pas moyens de gérer la z-position des images pour faire apparaitre en dessous d'un panel: 1 image et 2 bitbtns

    qlq captures pour tenter d'illustrer:

    1. vue de base du tabsheet en question
    2. puis si clic bitbtn1
    3. puis ci clic sur bitbtn2, on ne voit que les 2 bitbtn mais pas l'image qui devrait être à leur gauche
    4. si je fais monter (forward one) d'un niv par 1 niv, soit images pas visibles soit image visible mais pas au même niveau z-order que les bitbtn


    Nom : etLyPQ8.png
Affichages : 358
Taille : 186,6 Ko

    pourriez vous m'aider et me conseiller ?

    (j'espère avoir été complet)

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2003
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 33
    Par défaut
    Salut,

    Juste un truc, les images n'ont pas le focus donc pas d'ordre de tabulation. Autre chose, très mauvaise idée de se servir de Tpanel pour masquer des composants, çà consomme de la ressource pour rien, un Panel est un conteneur qui est utilisé pour contenir d'autres composants pas pour les masquer, vaut mieux utiliser autre chose voir gérer l'apparition des boutons par programmation (visible := false ou true).

  3. #3
    Membre Expert

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Par défaut
    Bonjour.

    Comme l'a souligné SoftChris, on n'utilise pas un TPanel pour le placer au-dessus des composants afin de les masquer !
    Il suffit de les rendre invisibles (propriété Visible:= false).
    Quand on a beaucoup de composants à rendre invisibles, on les crée sur un TPanel (ou TGroupBox...). Il suffit de rendre invisible ce Panel.

    Concernant les images : idem
    Tu peux jouer en plus avec la propriété Parent du TImage.
    Pour rappel le Parent est le composant "fenêtré" (TForm, TPanel...) qui est chargé de l'affichage.
    Pour afficher une image sur le panel1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    with Image1 do
    begin
        Parent:= Panel1;
        Left:= 8;
        Top:= 8;
    end;
    Pour la déplacer sur le panel 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image1.Parent:= Panel2;
    Cordialement
    Thierry

  4. #4
    Membre averti
    Homme Profil pro
    Photographe
    Inscrit en
    Septembre 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Photographe
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2014
    Messages : 26
    Par défaut
    merci de vos réponses

    pour ce qui est de l'utilisation des tpanel pour faire du masquage, et bien j'avais trouvé un exemple sur le net de cela et comme je suis debutant, je ne puis que bidouiller à partir de code existant que je modifie adapte selon mes besoins.

    question:
    quand tu dis consommer des ressources ...
    ça veut dire augmenter la taille de l'executable et ainsi prendre de la mémoire vive de l'utilisateur ?
    mais est ce qu'un tpanel "consomme" tant que ça et est ce que l'élément tpanel consomme un forfait mem ou est ce que cela dépend de sa taille (dimension) ?

    et en général, qu'est ce qui alourdit un programme, le nombre de ligne de code et/ou le nombre d'élément ?

    merci pour les bouts de code de l'utilisation Parent du TImage, je vais essayer de voir ça ce soir

    je place RESOLU

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2003
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 33
    Par défaut
    Quand je parle de ressource, c'est à dire que le panel, qui a le focus, consomme de la mémoire et surtout du temps processeur, contrairement à un TBevel ou un TShape par exemple qui eux n'ont pas le focus. Il est toujours intéressant d'optimiser le fonctionnement de son programme sinon il rame et fait ramer les autres programmes en cours. Pour masquer un composant, on ne l'affiche tout simplement pas en réglant sa propriété "Visible" à False. Ensuite quand on doit l'afficher, on règle sa propriété à True par une simple ligne de code. Il est aussi possible de créer par programmation les composants au moment ou on en a besoin et les détruire ensuite...

  6. #6
    Membre averti
    Homme Profil pro
    Photographe
    Inscrit en
    Septembre 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Photographe
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2014
    Messages : 26
    Par défaut
    ok
    merci des précisions ...

    pascal 2 vs gilgamesh 0.5

    edit:
    en fait je n'avais jamais imaginé que cela pouvait être aussi simple par rapport aux éléments: Show or Hide
    je pensais que ce n'était que pour les tpanels.
    je viens de faire qlq essais qui s'avèrent concluant

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

Discussions similaires

  1. Flux vidéo via un panel et superposé une image
    Par JPras dans le forum C++Builder
    Réponses: 3
    Dernier message: 25/03/2014, 21h31
  2. insérer un petit formulaire sur le panel qui contient une image de fond
    Par amAtunisian dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 08/06/2012, 13h28
  3. Listbox afficher une image
    Par jojo86 dans le forum Langage
    Réponses: 29
    Dernier message: 08/07/2011, 14h27
  4. Réponses: 7
    Dernier message: 03/08/2007, 13h19
  5. Prob, images, Panels, et form.
    Par CaptainChoc dans le forum Composants VCL
    Réponses: 2
    Dernier message: 10/05/2003, 10h08

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