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 :

Problème d'affichage sous Linux [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 103
    Points : 1 063
    Points
    1 063
    Par défaut Problème d'affichage sous Linux
    Bonjour à toutes et à tous,

    Dans une "TForm" : "MaForm", je place un "TPanel" : "MonPanel" dans lequel j'ai déposé plusieurs composants.

    A l'exécution, aussi bien sous Windows que sous Linux, je vois bien ces composants.

    Maintenant, dans le "TPanel", je vais y placer des "TShape" que l'appelle "CoulCrb" (ou autre composant, le problème est le même), mais en les créant suite à l'appui sur un bouton . Le code ressemble à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        SetLength(CoulCrb, N);
        for i:= 0 to N-1 do
        begin
          CoulCrb[i]:= TShape.Create(Self); // Les CoulCrb[i] sont des TShape
          with CoulCrb[i] do
          begin
            Parent:= TWinControl(Self);
            SetBounds(710+40*i, InfoCrbs.Top+33, 20, 20);
            Brush.Color:= Couleur[i];
            Pen.Width:= 2;
            Pen.Color:= clWhite;
          end;
        end;
    Pas de problème sous Windows.

    A noter que Self représente "MaForm" et non "MonPanel".

    Si je remplace Self par le MonPanel dans le Create ou le parent ou dans les deux, il n'y a plus d'affichage.

    Maintenant, quelle que soit la combinaison des Self et/ou MonPanel, sous Linux, je n'ai jamais d'affichage.

    Une idée du problème ?

    Cordialement.

    Pierre.

  2. #2
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 103
    Points : 1 063
    Points
    1 063
    Par défaut
    Ça y est, c'est résolu.

    Sous Windows, j'avais remarqué que :

    Citation Envoyé par ChPr Voir le message
    ...A noter que Self représente "MaForm" et non "MonPanel". ...
    pour que ça fonctionne.

    Ça m'avait étonné, mais bon. Donc, pour afficher mes "CoulCrb", j'avais pris comme référence le haut du "MonPanel"+33, ce qui fonctionnait ... mais qui ne fonctionnait plus dès que je changeais Self en "MonPanel". En effet, la référence verticale ne devait plus inclure le haut de "MonPanel", mais seulement 33 puisque "MonPanel" était la référence.

    Sous Linux, la référence à Self ne fonctionnait pas ; ce qui est logique. Mais j'avais oublié d'enlever le haut de MonPanel dans le calcul de positionnement de mes composants lorsque je changeais "Self" en "MonPanel".

    Dés lors que j'ai enlevé 'haut de MonPanel" pour le calcul de placement de mes composants, tout est rentré dans l'ordre ; aussi bien sous Windows que Linux.

    Le code est maintenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        SetLength(CoulCrb, N);
        for i:= 0 to N-1 do
        begin
          CoulCrb[i]:= TShape.Create(InfoCrbs); // Les CoulCrb[i] sont des TShape
          with CoulCrb[i] do
          begin
            Parent:= TWinControl(InfoCrbs);
            SetBounds(710+40*i, 33, 20, 20); // Suppression de InfoCrbs.Top
            Brush.Color:= Couleur[i];
            Pen.Width:= 2;
            Pen.Color:= clWhite;
          end;
        end;
    Désolé pour le dérangement.

    Pierre.

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

Discussions similaires

  1. problème d'affichage sous linux
    Par abssef dans le forum Administration système
    Réponses: 3
    Dernier message: 15/04/2008, 16h17
  2. problème d'affichage sous linux
    Par Bornerdogge dans le forum OpenGL
    Réponses: 5
    Dernier message: 18/09/2007, 21h20
  3. pb affichage d'une page sous linux
    Par fessebleu dans le forum Langage
    Réponses: 6
    Dernier message: 27/09/2005, 15h05
  4. Affichage d'une image sous linux
    Par Braim dans le forum x86 32-bits / 64-bits
    Réponses: 5
    Dernier message: 25/03/2003, 11h41

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