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 :

[Linux] Comportement étrange du TPageControl


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 139
    Billets dans le blog
    5
    Par défaut [Linux] Comportement étrange du TPageControl
    Salut à tous

    Sur une Form j'ai mis un TPageControl comportant de 3 TTabSheet (Page1,Page2 et Page3). Sur ces pages un bouton qui lorsqu'il est actionné affiche une autre page.
    Voilà ce qui se passe
    Page1->Page2 pas de problème la Page1 disparaît et Page2 s'affiche
    Page2->Page1 pas de problème la Page2 disparaît et Page1 s'affiche
    Page2->Page3 pas de problème la Page2 disparaît et Page3 s'affiche
    Page3->Page2 problème la Page3 disparaît et la Page2 ne s'affiche pas

    Voici le code

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
     
    unit Unit1;
     
    {$mode objfpc}{$H+}
     
    interface
     
    uses
      Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
      StdCtrls;
     
    type
     
      { TForm1 }
     
      TForm1 = class(TForm)
        Btnpg2: TButton;
        Btnpg1: TButton;
        Btnpg3: TButton;
        Btnpg32: TButton;
        LesPages: TPageControl;
        Page1: TTabSheet;
        Page2: TTabSheet;
        Page3: TTabSheet;
        procedure Btnpg1Click(Sender: TObject);
        procedure Btnpg2Click(Sender: TObject);
        procedure Btnpg32Click(Sender: TObject);
        procedure Btnpg3Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { private declarations }
        procedure AffichePage(LaPage: TTabSheet);
      public
        { public declarations }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.lfm}
     
    { TForm1 }
     
     
    procedure TForm1.AffichePage(LaPage: TTabSheet);
    var
      i: integer;
    begin
      LesPages.ActivePage := LaPage;
      for i := 0 to LesPages.PageCount - 1 do
      begin
        if LesPages.Pages[i] = LaPage then
          LesPages.Pages[i].TabVisible := True
        else
          LesPages.Pages[i].TabVisible := False;
      end;
    end;
     
    procedure TForm1.Btnpg2Click(Sender: TObject);
     
    begin
      AffichePage(Page2);
    end;
     
    procedure TForm1.Btnpg32Click(Sender: TObject);
    begin
      AffichePage(Page2);
    end;
     
    procedure TForm1.Btnpg3Click(Sender: TObject);
    begin
      AffichePage(Page3);
    end;
     
    procedure TForm1.Btnpg1Click(Sender: TObject);
    begin
      AffichePage(Page1);
    end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      AffichePage(Page1);
    end;
     
    end.
    Sous windows ce problème ne se pose pas

  2. #2
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Salut

    Ca semble être un bug ... Ton code est correct sous Delphi ... Tentes un Refresh dans AfficherPage() ....

    Sinon, une petite amélioration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.AffichePage(LaPage: TTabSheet);
    begin
      LesPages.ActivePage.TabVisible:=false;
      LaPage.TabVisible:=true;
      LesPages.ActivePage := LaPage;
    end;

  3. #3
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 139
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par mick605 Voir le message

    Ca semble être un bug ... Ton code est correct sous Delphi ... Tentes un Refresh dans AfficherPage() ....
    Je confirme c'est un bug car sous windows ça marche sans problème par contre sous linux ce n'est pas le cas.

    J'ai posté le problème sur le forum officiel de Lazarus et j'ai plus ou moins pu contourner le bug (voir ici)

Discussions similaires

  1. Comportement étrange ksh sur linux
    Par hugo123 dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 09/08/2006, 10h55
  2. comportement étrange d'une jointure ...
    Par amenis dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 10/02/2005, 21h27
  3. [JFrame] [Win/Linux] Comportement keyPressed/keyReleased
    Par plegat dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 23/11/2004, 18h27
  4. [Système][Runtime][Exec] Comportement étrange au lancement de BeSweet
    Par divxdede dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 06/06/2004, 09h54
  5. Réponses: 2
    Dernier message: 22/09/2003, 11h23

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