DELPHI 5 : Aperçu avant impression [Résolu]

johspi 19 Messages postés mardi 15 juin 2004Date d'inscription 7 septembre 2010 Dernière intervention - 1 sept. 2010 à 13:12 - Dernière réponse : johspi 19 Messages postés mardi 15 juin 2004Date d'inscription 7 septembre 2010 Dernière intervention
- 6 sept. 2010 à 14:03
Bonjour tout le monde !!!!!!!!


Mon souci est que la roulette de la souris (permettant normalement de faire défiler la scroll barre à droit) ne marche pas dans mes aperçus avant impression .

Je voudrait savoir s'il existe un paramètre ou une commande à rajouter à fin de la faire fonctionner .


Merci d'avance pour vos propositions
Afficher la suite 

3 réponses

Répondre au sujet
ThWilliam 424 Messages postés mardi 3 janvier 2006Date d'inscription 26 novembre 2013 Dernière intervention - 1 sept. 2010 à 19:45
+3
Utile
Bonjour.

Tu ne précises pas avec quel composant tu fais tes aperçus (éditeur de rapports ou compo perso ?). Donc impossible de dire si le composant a prévu le scrolling par roulette.

Tu as toujours la solution d'intercepter, au niveau de l'application, le message Windows WM_MOUSEWHEEL.

Pour ce faire :
1) dans la section private de la Form principale (disons Form1) de ton programme, tu déclares :
procedure AppMessage(var Msg: TMsg; var Handled: boolean);

2) dans l'événement OnCreate de Form1 :
Application.OnMessage:= AppMessage;

3) Voici un exemple de procedure AppMessage : faire défiler verticalement une deuxième Form, après avoir contrôlé que la souris était au dessus de cette Form :
procedure TForm1.AppMessage(var Msg: TMsg; var Handled: boolean);
var
  P, P2: TPoint;
  K: integer;
begin
  if (Msg.Message WM_MOUSEWHEEL) and (Screen.ActiveForm Form2) then
  begin
     P:= Mouse.CursorPos;
     with Form2 do
     begin
         P2:= ClientToScreen(Point(0,0));
         if PtInRect(Rect(P2.X, P2.Y, P2.X + Width, P2.Y + Height), P) then
         begin
             if Msg.wParam > 0 then K:= -30 else K:= 30;
             VertScrollBar.Position:= VertScrollBar.Position + K;
             Exit;
         end;
     end;
  end;
end;


Tu peux aussi faire défiler d'autres composants qui ont les propriétés ScrollBar (TScrollBox...).
Voici un autre code pour scroller un RichEdit :
http://www.mx-dev.net/delphi/snippets/37-trichedit-scroll-par-la-molette-de-la-souris.html

A +
Thierry

PS : je ne sais pas si la fonction PtInrect existe sous D5. Sinon, tu bricoles une fonction.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ThWilliam
johspi 19 Messages postés mardi 15 juin 2004Date d'inscription 7 septembre 2010 Dernière intervention - 2 sept. 2010 à 13:06
0
Utile
Ok merci pour toute ces informations , desque je peux je regade tous sa ....


ThWilliam
Commenter la réponse de johspi
johspi 19 Messages postés mardi 15 juin 2004Date d'inscription 7 septembre 2010 Dernière intervention - 6 sept. 2010 à 14:03
0
Utile
Encore merci pour ton explication , grace à sa , j'ai peu mettre en place les scroll barres
Commenter la réponse de johspi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.