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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

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

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    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 éclairé 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
    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

  3. #3
    Membre éclairé

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

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

    Merci

  4. #4
    Membre éclairé 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
    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 ;

  5. #5
    Membre éclairé

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

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    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 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    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 236
    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 : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    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