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:
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).
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;
Y-a-t'il un moyen d'interrompre un message (comme ici le redimensionnement) ?
Bonne journée!
Partager