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

Lazarus Pascal Discussion :

TBGRABitmap : problème de copie d'écran [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre du Club

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 15
    Points : 53
    Points
    53
    Par défaut TBGRABitmap : problème de copie d'écran
    Bonjour,
    je cherche à faire une copie d'écran avec la bib sympa TBGRABitmap 9.2 sous Ubuntu16 / Laz 1.6.
    Le code est le suivant, et fonctionne bien sous Winchose 7 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var
      ScreenDC : HDC;
      bmp: TBGRABitmap;
    Begin
      try
        bmp:= TBGRABitmap.Create;
        ScreenDC := GetDC(0); // récupère le handle de l'écran
        bmp.LoadFromDevice(ScreenDC);
        ReleaseDC(handle,ScreenDC);
        bmp.SaveToFile('testscreencopy.bmp');
      finally
        bmp.free
      end;
    end;
    Ce code, donc, qui marche très bien sous winchose, marche aussi très bien sous ubuntu si j'utilise un classique bitmap.
    Par contre, sous ubuntu, avec un bgrabitmap, il me génère un malheureux fichier de 54octets complètement inadéquat (!).
    Dans le même registre, la fonction bmp.TakeScreenshotOfPrimaryMonitor me donne le même pov fichier de 54bytes.
    Peut on me dire quel est le souci sous Ubuntu please ?
    Merci d'avance
    ludo

  2. #2
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 953
    Points : 9 283
    Points
    9 283
    Par défaut
    hello,
    je suis sur le problème voir ici

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  3. #3
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Salut J.P,

    Citation Envoyé par jurassic pork Voir le message
    je suis sur le problème voir ici
    je te réponds ici car là-bas je n'ai pas de compte.
    If in all the files of the tbgrabitmap package, i replace DC : System.THandle by : DC : PtrUInt TakeScreenshot works.
    Is it a good idea ?
    J'aurais tendance à dire "oui" car j'utilise DC pour faire de la copie d'écran, et avec des Ctrl-Clic pour "remonter", j'arrive là, dans LCLtype :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      {$ifndef WINDOWS}
      PInt = ^integer;
      THandle = type PtrUInt; // define our own, because the SysUtils.THandle = System.THandle is a longint
      HANDLE = THandle;
      PHandle = ^THandle;
     
      { Provided for compatibility with Windows registry ONLY }
      HKEY  = Integer;
      HDC   = type THandle;
    Bon, je ne suis surement pas une référence, avec tous les problèmes de vieilles versions et 32bits que je trimballe, mais si ça peut t'inspirer, chez moi c'est
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #4
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 953
    Points : 9 283
    Points
    9 283
    Par défaut
    Ok merci Jipété , j'attends que le concepteur de BgraBitmap (circular qui est français je crois) passe dans le forum officiel de Lazarus pour voir ce qu'il en pense et propose éventuellement une correction.

    Ami calmant, J.P (santé)
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #5
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 953
    Points : 9 283
    Points
    9 283
    Par défaut
    hello,
    circular a pris en compte la modification que je lui ai suggérée dans la version dev-bgrabitmap de bgrabitmap.
    Ok. I applied changes following this idea in "dev-bgrabitmap" branch. Does it fix the problem?
    Pour l'obtenir, aller sur https://github.com/bgrabitmap/bgrabitmap cliquer sur le bouton branch: master et choisir dev-bgrabitmap et télécharger la version en cliquant sur le bouton vert clone or download

    En tout cas avec cette version le TakeScreenShot fonctionne pour moi sous Ubuntu 16.04 64 bits Lazarus 1.8RC3 64 bits.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  6. #6
    Membre du Club

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 15
    Points : 53
    Points
    53
    Par défaut Résolu !
    Big merci, la version dev-bgrabitmap marche nickel chez moi aussi
    Ubuntu 16.04 x64 Lazarus 1.6
    ludo

    Résolu !

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

Discussions similaires

  1. Problème copie d'écran des champs déroulants
    Par PhilLU dans le forum Delphi
    Réponses: 1
    Dernier message: 26/05/2017, 20h21
  2. Problème CFileDialog et copie d'écran
    Par tyrahell dans le forum MFC
    Réponses: 2
    Dernier message: 31/05/2010, 14h58
  3. Problème de copie d'écran
    Par Lalanne dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/07/2007, 09h10
  4. problème de formatage à l'écran
    Par bidson dans le forum XMLRAD
    Réponses: 13
    Dernier message: 11/07/2003, 18h02

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