Bon... Apres plusieurs test, ca ressemble plus a un bug qu'autre chose -_-
L'affichage se redimensionne, si par exemple je change le type d'Align puis double clique sur la partie blanche, ou alors quand je clique sur certains endroits spéciaux (entre les onglets à droite) donc bref...
Je me suis donc fait un code de "Redimensionnement automatique" qui betement simule un clique (simple cette fois et sans changement d'align, louche non?
).
procedure TForm1.RedimensionnePDF;
1 2 3 4 5 6 7 8 9 10 11 12
|
var
PosAct, PosTemp : TPoint;
begin
PosTemp.X := Left + Round(Width / 2);
PosTemp.Y := Top + Round(Height / 2);
GetCursorPos(PosAct);
SetCursorPos(PosTemp.X, PosTemp.Y);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
SetCursorPos(PosAct.X, PosAct.Y);
end; |
En mettant ce code sur un bouton, j'obtiens ce que je veux. Maintenant je voudrais le lancer quand je redimensionne, donc j'appelle ce code dans le OnResize de ma fenêtre... Mais la ca ne va plus, à cause du SetCursorPos de ma procédure RedimensionnePDF (elle met le curseur au milieu de la fenêtre).
Donc en gros voila ce que je cherche, lancer RedimensionnePDF mais uniquement à la fin du redimensionnement et non pas a chaque pixel redimensionné.
J'avais pensé à
procedure TForm1.FormResize(Sender: TObject);
1 2 3 4
|
begin
If (GetAsyncKeyState(VK_LBUTTON)And $8000)=0 then RedimensionnePDF;
end; |
Si le bouton de la souris est relaché alors redimensionne, mais ca ne marche pas, car une fois le bouton relaché, on ne relance plus l'évenement OnResize...
Une idée ptete?
Merci ^^
Partager