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 :

Capture d'une form non visible


Sujet :

Composants VCL Delphi

  1. #1
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut Capture d'une form non visible
    Je cherche à capturer l'image d'une form qui n'est pas visible.
    (Je crée la form, j'ai des graphiques et des panels à l'intérieur et je voudrais sauvegarder le tout dans une image, de pré&férence bmp)

    La méthode CopyRect malheureusement ne copie que ce qui est visible à l'écran.

    Merci pour vos solutions ou vos pistes.
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    NomFiche.GetFormImage.SaveToFile('e:\fiche2.bmp');
    Il faut que ta fiche soit créée avant de faire appel a cette fonction.
    Je viens d'essayer, ca marche(j'ai mis des buttons et panels) mais rien que les panels sont imprimés sur la photo .

    essayes tj.
    a+

  3. #3
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Le problème est dans la méthode PaintTo, celle-ci ne trace que les contrôles visibles. Or la gestion de la propriété Visible n'est pas toujours très claire : est-ce qu'un contrôle peut être considéré visible alors que la fenêtre ne l'est pas ?
    Une solution simple mais un peu sauvage consiste à positionner la fenêtre en dehors de l'écran et à la rendre visible pour récupérer son image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      oldLeft: Integer;
    begin
      oldLeft:= Form2.Left;
      Form2.Left:= - Form2.Width - 100;
      Form2.Visible:= true;
      image1.Picture.Bitmap:= Form2.GetFormImage;
      Form2.Visible:= false;
      Form2.Left:= oldLeft;
    end;

  4. #4
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    Merci j'ai opté pour cette solution en attendant de trouver quelque chose de moins sauvage
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/06/2008, 16h08
  2. Comment rendre un élément d'une ComboList non visible?
    Par The eye dans le forum Windows Forms
    Réponses: 10
    Dernier message: 18/01/2007, 00h32
  3. Réponses: 8
    Dernier message: 04/01/2007, 10h15
  4. [VB.net]une form toujours visible
    Par michel71 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 29/05/2006, 18h08
  5. Réponses: 1
    Dernier message: 29/12/2005, 18h04

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