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

Composants VCL Delphi Discussion :

[TPageControl] OnChanging --> AllowChange


Sujet :

Composants VCL Delphi

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut [TPageControl] OnChanging --> AllowChange
    Bonjour,
    J'ai une serie d'onglets dans mon TPageControl. Dans certains cas (Type de comptes), j'aimerai autoriser l'accès à certaines pages.

    Donc, on dirait qu'il manque une petite var dans l'évenement OnChanging --> une var donnant l'index de l'onglet où l'utilisateur veut aller. Donc sans ca, je ne vois pas comment faire ?

    Avez vous une solution ?

    Merci d'avance

  2. #2
    Membre averti Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Points : 416
    Points
    416
    Par défaut
    Salut,
    moi j'ecrit lactivepageindex dans une Variable Globale OldIndex dans Levenement onChanging Comme suis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TOptionsFrame.PageControlChanging( Sender: TObject; var AllowChange: Boolean);
    begin
      OldIndex := PageControl.ActivePageIndex ;
    end;
    apres dans levenement onChange je traite les cas selon le OldIndex.
    Crd
    Apprends la science de celui qui sait, et enseigne ta science à celui qui ignore, comme ca, tu auras appris ce que tu ignores et utilisé ce que tu sais.

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Oui mais , niveau graphique, ca change quand même de page ! Pas très beau tout ca .

    Merci

  4. #4
    Membre averti Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Points : 416
    Points
    416
    Par défaut
    Oui ta raison m quand meme c une solution temporär
    ben moi jai fait comme ca Dans le OnChange event)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      if NOT Condition Then
        Obj.ActivePageIndex:= OldIndex ;
    Apprends la science de celui qui sait, et enseigne ta science à celui qui ignore, comme ca, tu auras appris ce que tu ignores et utilisé ce que tu sais.

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    C'est bon, j'ai la solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    procedure TMaint_Form.PageControl1Changing(Sender: TObject;
      var AllowChange: Boolean);
    Var
    P : TPoint;
    begin
    P := PageControl1.ScreenToClient(Mouse.CursorPos);//Converti les coordonnées écran en coordonnées sur le Pagecontrol1
    Old_Tab := PageControl1.IndexOfTabAt(P.X,P.Y); Indique l'index de page en fonction des coordonnées.
     
     
    If (User.Types = 2)And(Not (Old_Tab in [2,6]) ) then begin //Refuse le changement si la page est <> à 2 ou à 6.
    AllowChange := False;
    MessageDlg(RS_ACCESS_DENIED, mtError, [mbOK], 0);
    end;
    Je la trouve sympa cette solution . Peut être une petite place dans la FAQ

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Il ne serait pas plus simple de rendre invisible ces pages au moment de la connexion du compte, selon les droits qu'a l'utilisateur ?
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  7. #7
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Citation Envoyé par Malatar
    Il ne serait pas plus simple de rendre invisible ces pages au moment de la connexion du compte, selon les droits qu'a l'utilisateur ?
    Plus simple --> Surement
    Plus esthétique --> je ne trouve pas.

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

Discussions similaires

  1. Procedure d'evenement OnChange
    Par Alain Dionne dans le forum ASP
    Réponses: 2
    Dernier message: 26/05/2004, 21h59
  2. [struts] onchange et mapping
    Par k4eve dans le forum Struts 1
    Réponses: 7
    Dernier message: 26/04/2004, 16h21
  3. Supprimer la bordure d'un TPageControl
    Par Metrica dans le forum C++Builder
    Réponses: 10
    Dernier message: 09/02/2004, 08h34
  4. Rendre une page d'un TPageControl invisible
    Par DevelOpeR13 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 10/06/2003, 11h26

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