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 :

Redimensionner un composant avec l'API Win32


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 38
    Points : 46
    Points
    46
    Par défaut Redimensionner un composant avec l'API Win32
    Bonjour,

    J'utilise l'API Win32 pour redimensionner un panel en runtime en utilisant la méthode expliqué sur http://www.delphi-central.com/resize.aspx.
    Voici un extrait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    const
      sizeBorder = 2;
      sc_SizeBottom = $F006;
     
    procedure TAnalysisControl.MouseDown( Button : TMouseButton; Shift : TShiftState; X, Y : integer);
    begin
       WinProcs.ReleaseCapture;
        if Not((X <= sizeBorder) or (X >= Width -sizeBorder)) And (Y >= Height - sizeBorder) // CONDITIONS
      then  Self.Perform(WM_SysCommand, sc_SizeBottom , 0)
    end;
    Mon problème vient du fait que je veux limiter le redimensionnement (non pas en dimension du composant, mais en position). Par exemple je veux empecher que le composant dépasse la position 400 de ma Form : mais lorsqu'on envoie un message (ex:WM_SysCommand), les conditions sont vérifiées avant l'envoie du message mais lorque le redimensionnement se fait je ne peux pas le limiter en position (les conditions ne sont pas vérifiées pendant l'éxecution du message).

    Y-a-t'il un moyen d'interrompre un message (comme ici le redimensionnement) ?

    Bonne journée!

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 45
    Points : 34
    Points
    34
    Par défaut
    Un petit schéma serait le bienvenu ... :-)

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 38
    Points : 46
    Points
    46
    Par défaut
    Bon alors en clair voila mon objectif : Réaliser un planning sur une journée avec des événements ou je peux redimensionner chaque événement à la souris grâce aux poignées grises (la hauteur correspond à une durée) et ce que je cherche respecter comme conditions:

    - 2 événements ne peuvent pas se superposer
    - il peut y avoir un espace vide entre 2 événements


  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 45
    Points : 34
    Points
    34
    Par défaut
    Je ferais un truc du genre :
    - utiliser les tags pour numéroter tes panels
    - qd tu déplaces le haut d'un panel, tu vérifies qu'il ne dépasse pas le bas du panel du dessus
    - et inversément dans l'autre cas
    (attention que le haut d'un panel ne dépasse pas le bas du même panel)

    Et tu gères tout cas dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    procedure WMSize (var Message: TWMSize) ; message WM_SIZE ;

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 38
    Points : 46
    Points
    46
    Par défaut
    La procedure qui me sauve! J'avais pas pensé à l'utiliser!
    Merci Castagnems ! T'es un chef

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 45
    Points : 34
    Points
    34
    Par défaut
    J'avoue avoir proposé ca ainsi sans l'avoir testé, si ca marche tant mieux :-)

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 14/10/2014, 13h42
  2. Réponses: 3
    Dernier message: 23/08/2014, 10h11
  3. modifier le thème d'une fenêtre avec l'API win32
    Par d'Oursse dans le forum Windows
    Réponses: 9
    Dernier message: 19/02/2012, 16h03
  4. Petit probleme avec l'API win32
    Par spiky31 dans le forum Windows
    Réponses: 3
    Dernier message: 24/01/2006, 16h01
  5. faire dérouler une image avec l'api win32
    Par gdkenny dans le forum Windows
    Réponses: 6
    Dernier message: 26/11/2005, 21h46

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