DELPHI 5 : Aperçu avant impression

Résolu
johspi Messages postés 19 Date d'inscription mardi 15 juin 2004 Statut Membre Dernière intervention 7 septembre 2010 - 1 sept. 2010 à 13:12
johspi Messages postés 19 Date d'inscription mardi 15 juin 2004 Statut Membre Dernière intervention 7 septembre 2010 - 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

3 réponses

ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
1 sept. 2010 à 19:45
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.
3
johspi Messages postés 19 Date d'inscription mardi 15 juin 2004 Statut Membre Dernière intervention 7 septembre 2010
2 sept. 2010 à 13:06
Ok merci pour toute ces informations , desque je peux je regade tous sa ....


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