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 :

Je ne peut pas déplacer ma form en BorderSytle = bsNone


Sujet :

Langage Delphi

  1. #1
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 25
    Points : 8
    Points
    8
    Par défaut Je ne peut pas déplacer ma form en BorderSytle = bsNone
    Salut à tous,
    Voila, je ne peut pas déplacer ma form en BorderSytle = bsNone.
    Je voudrais savoir pourquoi ?
    Merci d'avance.

  2. #2
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut Re: Je ne peut pas déplacer ma form en BorderSytle = bsNone
    j'ai pas la réponse mais le remède est simple:
    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
     
    procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
    active:=true;
    xo:=x;
    yo:=y;
    end;
     
    procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
    if active then begin
    top:=y-yo+top;
    left:=x-xo+left;
    end;
    end;
     
    procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
    active:=false;
    end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    active:=false;
    end;

  3. #3
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    Tout simplement que c'est uniquement la zone de barre de titre qui a le comportement...

    Le remède dans la

    => http://delphi.developpez.com/faq/?pa...#deplacerfiche
    "Si vous voulez être l’esclave des banques et payer pour financer votre propre esclavage, alors laissez les banquiers créer la monnaie" - Josiah Stamp, 1920, Gouverneur de la Banque d’Angleterre
    "Qui ne peut acheter ruine qui voudrait vendre" - Jacques Duboin.
    "Nous n'héritons pas la terre de nos parents, nous l'empruntons à nos enfants." - Antoine de Saint Exupéry

  4. #4
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 25
    Points : 8
    Points
    8
    Par défaut
    Il y en a aucuns qui marchent.

  5. #5
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    Si ta form est "remplie" de composants la recouvrant ainsi entièrement, c'est normal que cela ne fonctionne pas...
    Il faut appliquer le code à un des controls de ta form (un panel ou autre WinControl... comme le suggère la faq "Cette méthode peut aussi être appliquée à tous les descendants de TWinControl." )
    "Si vous voulez être l’esclave des banques et payer pour financer votre propre esclavage, alors laissez les banquiers créer la monnaie" - Josiah Stamp, 1920, Gouverneur de la Banque d’Angleterre
    "Qui ne peut acheter ruine qui voudrait vendre" - Jacques Duboin.
    "Nous n'héritons pas la terre de nos parents, nous l'empruntons à nos enfants." - Antoine de Saint Exupéry

  6. #6
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 25
    Points : 8
    Points
    8
    Par défaut
    On peut le mettre directement dans le code du projet ?

  7. #7
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    dans ton unit!
    je n'ai pas essayé le code plus succinct de la faq par contre le mien ne peut que fonctionner à condition que ta form ne soit pas remplie.
    alors il faut lier tes événements onmouse... à un élément de ta form comme te le suggère neilbgr.

  8. #8
    Inactif
    Inscrit en
    Janvier 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 25
    Points : 8
    Points
    8
    Par défaut
    Je ne comprend toujours pas désoler les amis.

  9. #9
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Citation Envoyé par neilbgr
    Tout simplement que c'est uniquement la zone de barre de titre qui a le comportement...

    Le remède dans la

    => http://delphi.developpez.com/faq/?pa...#deplacerfiche


    Bonjour!

    L'exemple de la FAQ ne fonctionne pas pour les fiches sans bordures (enfin pas pour moi ).

    Implémente un événement OnMouseDown sur ta fiche et mets ce code dedans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    const
      SC_DRAGMOVE = $F012;
     
    begin
      if Button = mbLeft then
      begin
        ReleaseCapture;
        Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);
      end;
    end;
    A+!
    -Slimjoe

  10. #10
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    Citation Envoyé par slimjoe
    Citation Envoyé par neilbgr
    Tout simplement que c'est uniquement la zone de barre de titre qui a le comportement...

    Le remède dans la

    => http://delphi.developpez.com/faq/?pa...#deplacerfiche


    Bonjour!

    L'exemple de la FAQ ne fonctionne pas pour les fiches sans bordures (enfin pas pour moi ).
    Je confirme que le premier code de la FAQ n'est pas élégant et ne réponds pas à la question.
    En revanche, le second code fonctionne très bien à la condition que la form est des zones cliquables (donc comme je disais plus haut, pas complétement recouverte)

    Enfin, le code de slimjoe répond parfaitement à la question.
    Je te suggères meme d'aller demander au responsable de la FAQ si ce topic pourrait etre mis à jour. ( il me semble que c'est par là http://www.developpez.net/forums/vie...751972#1751972 )
    "Si vous voulez être l’esclave des banques et payer pour financer votre propre esclavage, alors laissez les banquiers créer la monnaie" - Josiah Stamp, 1920, Gouverneur de la Banque d’Angleterre
    "Qui ne peut acheter ruine qui voudrait vendre" - Jacques Duboin.
    "Nous n'héritons pas la terre de nos parents, nous l'empruntons à nos enfants." - Antoine de Saint Exupéry

Discussions similaires

  1. [Dojo] Ne peut pas écrire dans dijit.form.TextBox
    Par cfried dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 11/06/2009, 09h04
  2. Ubuntu ne peut pas démarrer serveur X
    Par Invité4 dans le forum Applications et environnements graphiques
    Réponses: 8
    Dernier message: 02/07/2005, 15h57
  3. [CR8.5] Ne peut pas insérer de carte dans un rapport
    Par liberio dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 14/06/2004, 22h07
  4. Réponses: 6
    Dernier message: 03/09/2003, 10h29

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