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

Langage Delphi Discussion :

Comment désactiver la souris ?


Sujet :

Langage Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 47
    Points : 35
    Points
    35
    Par défaut Comment désactiver la souris ?
    Bonjour,

    Est il possible d'inactiver la souris, puis de la réactiver ?
    En l'occurrence il s'agit d'éviter un post automatique en cours d'édition, dans un dbgrid en cliquant sur une autre ligne, par un instruction du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    procedure TForm1.DataSource2StateChange(Sender: TObject);
    begin
      if datasource2.State in ([dsInsert,dsEdit]) then
          Mouse.enabled := False
          else
          Mouse.enabled := True;
    end;

  2. #2
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    pas testé
    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
     
    Je pense que t’utilise un Tbutton pour posté les modification
    Alors utlise un variable boolean,
    Par example
    Procedure  TForm1.DataSource2beforpost ;
    begin
    If not ok then abort
    Else
      Begin
        ....
        ok=false;
      End;
    End;
    procedure TForm1.DataSource2StateChange(Sender: TObject); 
    begin 
      if datasource2.State in ([dsInsert,dsEdit]) then 
          ok := false;
    end; 
    procedure TForm1.buttonOKclik(Sender: TObject);  
    begin
           ok:=true;
           table.post;
    end;
    procedure TForm1.buttonannulclik(Sender: TObject);  
    begin
           ok:=false;
           table.cancel;
    end;

  3. #3
    DMO
    DMO est déconnecté
    Membre averti
    Avatar de DMO
    Profil pro
    Inscrit en
    Février 2004
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 290
    Points : 343
    Points
    343
    Par défaut
    Je crois comprendre que le comportement que tu souhaites éviter est le suivant : tu édites une ligne d'un DBGrid, et tu ne veux pas que l'utilisateur puisse poster en cliquant sur une autre ligne du DBGrid avec la souris.

    Si c'est bien cela, je ne crois pas que tu puisses obtenir ce que tu cherches simplement, sans utiliser un autre composant que le DBGrid qui rendrait cela optionnel (je n'ai pas de suggestion, d'autres en ont peut-être), ou en développant ton propre DBGrid qui redéfinirait la procédure MouseDown, sans appeler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FDatalink.MoveBy(Y - Row);
    qui est à l'origine du post.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 47
    Points : 35
    Points
    35
    Par défaut
    C'est exactement ça: je souhaite, après édition d'une ligne dans le dbgrid, mettre à jour automatiquement d'autres enregistrements. Les événements déclenchés par Post ou Update ou Insert sont inutilisables car ils entrainent une "boucle" infinie. Je suis donc obligé de "bloquer" toute possibilité de Post non controlé.
    Je crois que je vais faire cette mise à jour dans un fiche ou seul apparaitra l'enregistrement à modifier, la "sortie" se faisant obligatoirement par une validation ( avec les mises à jour complémentaires en arriére plan ) ou une annulation.

    Merci de votre aide précieuse .

  5. #5
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    tu as vu mon poste

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 47
    Points : 35
    Points
    35
    Par défaut
    tu as vu mon poste
    Oui bien sût et je t'en remercie. Cette solution fonctionne, mais je souhaite garder une interface cohérente dans toute l'application, en utilisant un DBNavigator standard, sans ajout de "boutons" supplémentaires pour poster dans le IBdataset. Seul apparaît un message "OK" "Annuler" pour confirmer le Commit sur la base.

    Merci encore.

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/02/2010, 08h20
  2. comment désactiver le click droit de la souris
    Par Lyli dans le forum Langage
    Réponses: 6
    Dernier message: 14/03/2006, 04h54
  3. [Warning] comment désactiver un Warning précis?
    Par bigboomshakala dans le forum MFC
    Réponses: 5
    Dernier message: 01/06/2004, 16h07
  4. Réponses: 8
    Dernier message: 24/07/2003, 10h45
  5. Comment désactiver Ctrl+Alt+Del sous Windows XP
    Par ETOKA dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 04/06/2003, 13h34

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