IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

Redimensionner la fenetre Acrobat


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 59
    Par défaut Redimensionner la fenetre Acrobat
    Bonjour,

    Je viens de passer de la version 6 à la 7 de Adobe Acrobat. J'ai pu conserver le code à l'identique dans les applications qui l'utilisent, mais j'ai un problème, l'affichage du document ne se redimensionne plus avec la fenêtre. J'ai un cadre blanc qui suit la dimension de la fenetre mais la partie avec les boutons, le document pdf en lui meme et les signets restent de la meme taille. Je ne sais pas si je suis très clair, donc un peu de code vaut mieux que de grands discours

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [...]
     
      object Pdf1: TPdf
        Left = 0
        Top = 0
        Width = 509
        Height = 728
        Align = alClient
        TabOrder = 0
        ControlData = {100700009B3400003E4B0000}
      end
    end

    Et le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [...]
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
       Pdf1.LoadFile('C:\prog.pdf');
    end;
    end.
    Donc en utilisant le meme code avec la version 6 le comportement est normal c'est à dire l'affichage suit la fenetre, par contre avec la version 7 ca ne vas plus...

    Comment résoudre cela?



    Merci
    Lucas


    Edit: Je travaille sur Delphi 6, Win XP, et le composant TPdf créé à partir de l'activeX d'AcrobatReader

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 59
    Par défaut
    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? ).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure TForm1.RedimensionnePDF;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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é à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure TForm1.FormResize(Sender: TObject);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ^^

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2005
    Messages : 59
    Par défaut
    Bon je laisse tomber. Je catch l'evenement WM_EXITSIZEMOVE et je recharge le fichier... Pas propre mais le seul qui marche vraiment.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    private
       { Déclarations privées }
       procedure WMExitSizeMove(var Message: TMessage); Message WM_EXITSIZEMOVE;
     
    [...]
     
    procedure TForm1.WMExitSizeMove(var Message: TMessage);
    begin
       //RedimensionnePDF;
       Pdf1.LoadFile('C:\prog.pdf');
    end;

    Mais je reste ouvert a toute idée plus intelligente

Discussions similaires

  1. Positionner et redimensionner une fenetre d'un exécutable
    Par cquadjul dans le forum C++Builder
    Réponses: 1
    Dernier message: 07/08/2006, 16h15
  2. Redimensionner la fenetre autour d'un fieldset
    Par avogadro dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/07/2006, 10h27
  3. Réponses: 3
    Dernier message: 26/04/2006, 11h13
  4. redimensionner une fenetre
    Par iamhere dans le forum C++Builder
    Réponses: 6
    Dernier message: 13/04/2006, 22h02
  5. redimensionnement de fenetre
    Par grand's dans le forum OpenGL
    Réponses: 2
    Dernier message: 31/07/2005, 10h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo