Comme vous pourrez le voir dans mon code, j'ai un problème de
positionnement topIndex dans un évènement reSize de la Form...
En effet, j'ai bêtement mis une variable qui récupère le topIndex en
début de code (topI), et qui le restitue en fin de code, seulement je viens
de m'apercevoir que ça ne marche pas, car la liste (même si le click n'est
pas lâché), prend successivement les topIdex, ce qui ruine mes espoirs,
lol...
J'ai une vague idée, mais je ne sais trop comment m'y prendre, il
faudrait conjuguer sûrement plusieurs évènements (mouseUp, ReSize, SetFocus
+ une varible qui teste tout ça ?), etc... Mais je ne sais trop comment m'y
prendre, si quelqu'un à un truc qui arche, merci de me dire :o)
Le but est quand on retaille la feuille, avec une liste dedans (qui suit
le mouvement), le but donc, est de retrouver son topIndex (autant que
possible) ???
Sub Form_Resize() 'hauteur liste
Dim maxiV As Long
Dim miniV As Long
Dim H As Long
Dim HmaxiL As Long
Dim LmaxiL As Long
Dim topF As Long
Dim hf As Long
Dim topI As Long
'
topI = List1.TopIndex
miniV = 5000 ' minimum vertical form1
maxiV = 10320 ' maximum vertical form1
H = 11535 ' maximum horizontal form1
HmaxiL = 7260 ' maximum vertical list1
LmaxiL = 11415 ' maximum horizontal list1
topF = 8400 ' départ Top frame2
hf = 975 ' hauteur frame2
'
On Error GoTo erreur
If Form1.Height <= miniV Then Form1.Height = miniV ' hauteur
If Form1.Height >= maxiV Then Form1.Height = maxiV
If Form1.Width <= H Then Form1.Width = H 'largeur
If Form1.Width >= H Then Form1.Width = H
'
List1.Height = HmaxiL - (maxiV - Form1.Height) ' resize vertical
Frame2.top = topF - (maxiV - Form1.Height) ' move frame2
Frame2.Height = hf ' hauteur fixe frame2
If List1.ListCount > 0 Then List1.TopIndex = topI
Exit Sub
'
erreur:
If Err = 384 Then Exit Sub
End Sub
--
Merci, au revoir et à bientôt.
--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
LE TROLL
J'ai trouvé ça, ça à l'air de marcher, si quelqu'un voix un truc encore mieux ???
J'en déduis que ReSize se déclenche avant MouseX... Par contre, j'ai aussi par popMenu un rétrécissement et agrandissement vertical, et là, bien que ce ne soit pas dans mon code, le TopIndex de la liste à l'intérieur de la form, demeure bon (toujours positionné sur le même), là je ne m'explique pas, sauf si c'est un mécanisme automatique ???
Dim topI As Long Dim reSize As Boolean ' Sub Form_Resize() 'hauteur liste reSize = True End Sub ' Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If reSize = True Then reSize = False If List1.ListCount > 0 Then List1.TopIndex = topI End If End Sub ' Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If reSize = True Then topI = List1.toplist End Sub ------------------
"LE TROLL" <le a écrit dans le message de news: %239c$sSW%
Bonjour,
Comme vous pourrez le voir dans mon code, j'ai un problème de positionnement topIndex dans un évènement reSize de la Form...
En effet, j'ai bêtement mis une variable qui récupère le topIndex en début de code (topI), et qui le restitue en fin de code, seulement je viens de m'apercevoir que ça ne marche pas, car la liste (même si le click n'est pas lâché), prend successivement les topIdex, ce qui ruine mes espoirs, lol...
J'ai une vague idée, mais je ne sais trop comment m'y prendre, il faudrait conjuguer sûrement plusieurs évènements (mouseUp, ReSize, SetFocus + une varible qui teste tout ça ?), etc... Mais je ne sais trop comment m'y prendre, si quelqu'un à un truc qui arche, merci de me dire :o)
Le but est quand on retaille la feuille, avec une liste dedans (qui suit le mouvement), le but donc, est de retrouver son topIndex (autant que possible) ???
Sub Form_Resize() 'hauteur liste Dim maxiV As Long Dim miniV As Long Dim H As Long Dim HmaxiL As Long Dim LmaxiL As Long Dim topF As Long Dim hf As Long Dim topI As Long ' topI = List1.TopIndex miniV = 5000 ' minimum vertical form1 maxiV = 10320 ' maximum vertical form1 H = 11535 ' maximum horizontal form1 HmaxiL = 7260 ' maximum vertical list1 LmaxiL = 11415 ' maximum horizontal list1 topF = 8400 ' départ Top frame2 hf = 975 ' hauteur frame2 ' On Error GoTo erreur If Form1.Height <= miniV Then Form1.Height = miniV ' hauteur If Form1.Height >= maxiV Then Form1.Height = maxiV If Form1.Width <= H Then Form1.Width = H 'largeur If Form1.Width >= H Then Form1.Width = H ' List1.Height = HmaxiL - (maxiV - Form1.Height) ' resize vertical Frame2.top = topF - (maxiV - Form1.Height) ' move frame2 Frame2.Height = hf ' hauteur fixe frame2 If List1.ListCount > 0 Then List1.TopIndex = topI Exit Sub ' erreur: If Err = 384 Then Exit Sub End Sub --
Merci, au revoir et à bientôt. -- ng75 arobase noos.fr ------------------------------------------------------------ LE TROLL, éleveur de trolls depuis César, qui disait : Avec une hache, celui qui tient le manche a toujours raison !
J'ai trouvé ça, ça à l'air de marcher, si quelqu'un voix un truc
encore mieux ???
J'en déduis que ReSize se déclenche avant MouseX... Par contre, j'ai
aussi par popMenu un rétrécissement et agrandissement vertical, et là, bien
que ce ne soit pas dans mon code, le TopIndex de la liste à l'intérieur de
la form, demeure bon (toujours positionné sur le même), là je ne m'explique
pas, sauf si c'est un mécanisme automatique ???
Dim topI As Long
Dim reSize As Boolean
'
Sub Form_Resize() 'hauteur liste
reSize = True
End Sub
'
Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As
Single)
If reSize = True Then
reSize = False
If List1.ListCount > 0 Then List1.TopIndex = topI
End If
End Sub
'
Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As
Single)
If reSize = True Then topI = List1.toplist
End Sub
------------------
"LE TROLL" <le troll@paris.fr> a écrit dans le message de news:
%239c$sSW%23EHA.1408@TK2MSFTNGP10.phx.gbl...
Bonjour,
Comme vous pourrez le voir dans mon code, j'ai un problème de
positionnement topIndex dans un évènement reSize de la Form...
En effet, j'ai bêtement mis une variable qui récupère le topIndex en
début de code (topI), et qui le restitue en fin de code, seulement je
viens de m'apercevoir que ça ne marche pas, car la liste (même si le click
n'est pas lâché), prend successivement les topIdex, ce qui ruine mes
espoirs, lol...
J'ai une vague idée, mais je ne sais trop comment m'y prendre, il
faudrait conjuguer sûrement plusieurs évènements (mouseUp, ReSize,
SetFocus + une varible qui teste tout ça ?), etc... Mais je ne sais trop
comment m'y prendre, si quelqu'un à un truc qui arche, merci de me dire
:o)
Le but est quand on retaille la feuille, avec une liste dedans (qui
suit le mouvement), le but donc, est de retrouver son topIndex (autant que
possible) ???
Sub Form_Resize() 'hauteur liste
Dim maxiV As Long
Dim miniV As Long
Dim H As Long
Dim HmaxiL As Long
Dim LmaxiL As Long
Dim topF As Long
Dim hf As Long
Dim topI As Long
'
topI = List1.TopIndex
miniV = 5000 ' minimum vertical form1
maxiV = 10320 ' maximum vertical form1
H = 11535 ' maximum horizontal form1
HmaxiL = 7260 ' maximum vertical list1
LmaxiL = 11415 ' maximum horizontal list1
topF = 8400 ' départ Top frame2
hf = 975 ' hauteur frame2
'
On Error GoTo erreur
If Form1.Height <= miniV Then Form1.Height = miniV ' hauteur
If Form1.Height >= maxiV Then Form1.Height = maxiV
If Form1.Width <= H Then Form1.Width = H 'largeur
If Form1.Width >= H Then Form1.Width = H
'
List1.Height = HmaxiL - (maxiV - Form1.Height) ' resize vertical
Frame2.top = topF - (maxiV - Form1.Height) ' move frame2
Frame2.Height = hf ' hauteur fixe frame2
If List1.ListCount > 0 Then List1.TopIndex = topI
Exit Sub
'
erreur:
If Err = 384 Then Exit Sub
End Sub
--
Merci, au revoir et à bientôt.
--
ng75 arobase noos.fr
------------------------------------------------------------
LE TROLL, éleveur de trolls depuis César, qui disait :
Avec une hache, celui qui tient le manche a toujours raison !
J'ai trouvé ça, ça à l'air de marcher, si quelqu'un voix un truc encore mieux ???
J'en déduis que ReSize se déclenche avant MouseX... Par contre, j'ai aussi par popMenu un rétrécissement et agrandissement vertical, et là, bien que ce ne soit pas dans mon code, le TopIndex de la liste à l'intérieur de la form, demeure bon (toujours positionné sur le même), là je ne m'explique pas, sauf si c'est un mécanisme automatique ???
Dim topI As Long Dim reSize As Boolean ' Sub Form_Resize() 'hauteur liste reSize = True End Sub ' Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If reSize = True Then reSize = False If List1.ListCount > 0 Then List1.TopIndex = topI End If End Sub ' Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If reSize = True Then topI = List1.toplist End Sub ------------------
"LE TROLL" <le a écrit dans le message de news: %239c$sSW%
Bonjour,
Comme vous pourrez le voir dans mon code, j'ai un problème de positionnement topIndex dans un évènement reSize de la Form...
En effet, j'ai bêtement mis une variable qui récupère le topIndex en début de code (topI), et qui le restitue en fin de code, seulement je viens de m'apercevoir que ça ne marche pas, car la liste (même si le click n'est pas lâché), prend successivement les topIdex, ce qui ruine mes espoirs, lol...
J'ai une vague idée, mais je ne sais trop comment m'y prendre, il faudrait conjuguer sûrement plusieurs évènements (mouseUp, ReSize, SetFocus + une varible qui teste tout ça ?), etc... Mais je ne sais trop comment m'y prendre, si quelqu'un à un truc qui arche, merci de me dire :o)
Le but est quand on retaille la feuille, avec une liste dedans (qui suit le mouvement), le but donc, est de retrouver son topIndex (autant que possible) ???
Sub Form_Resize() 'hauteur liste Dim maxiV As Long Dim miniV As Long Dim H As Long Dim HmaxiL As Long Dim LmaxiL As Long Dim topF As Long Dim hf As Long Dim topI As Long ' topI = List1.TopIndex miniV = 5000 ' minimum vertical form1 maxiV = 10320 ' maximum vertical form1 H = 11535 ' maximum horizontal form1 HmaxiL = 7260 ' maximum vertical list1 LmaxiL = 11415 ' maximum horizontal list1 topF = 8400 ' départ Top frame2 hf = 975 ' hauteur frame2 ' On Error GoTo erreur If Form1.Height <= miniV Then Form1.Height = miniV ' hauteur If Form1.Height >= maxiV Then Form1.Height = maxiV If Form1.Width <= H Then Form1.Width = H 'largeur If Form1.Width >= H Then Form1.Width = H ' List1.Height = HmaxiL - (maxiV - Form1.Height) ' resize vertical Frame2.top = topF - (maxiV - Form1.Height) ' move frame2 Frame2.Height = hf ' hauteur fixe frame2 If List1.ListCount > 0 Then List1.TopIndex = topI Exit Sub ' erreur: If Err = 384 Then Exit Sub End Sub --
Merci, au revoir et à bientôt. -- ng75 arobase noos.fr ------------------------------------------------------------ LE TROLL, éleveur de trolls depuis César, qui disait : Avec une hache, celui qui tient le manche a toujours raison !