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

Delphi Discussion :

getdc et canvas


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 211
    Points : 55
    Points
    55
    Par défaut getdc et canvas
    bonjour
    je voudrais seulement copier le canvas d'un handle connu
    ici je fais des essais sur paint comme fenetre
    par la suite sa seras une fenêtre internet explorer pour récupérer des images
    qu'on ne peu pas télécharger

    déjà je voudrais savoir les dimensions que je dois mettre
    pour remplacer d'après exemple suivant (1500*1500) le width du canavas
    de la source ici ha.width mais sa n'existe pas
    merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    var
      Form1: TForm1;
        fen:thandle;
      ha:thandle;
      can:tcanvas;
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Button1Click(Sender: TObject);
     
     begin
       can:=tcanvas.Create;
     
      fen:=winapi.Windows.FindWindow(0,pchar('Sans titre - Paint'));
      if fen<>0 then begin
      label2.Caption:=inttostr(fen);
      ha:=getdc(fen);
      can.Handle:=ha;
      end;
     
    Image1.Canvas.CopyRect(Rect(0, 0, Image1.Width, Image1.Height),
                                   can,
                                    Rect(0, 0,1500,
                                    1500));
    can.Free;
    releaseDc(handle, ha);
     
    end;
     
    end.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    GetClipRect, GetWindowsRect, selon le Handle, tu as un peu toute sorte de fonction

    InternetExplorer vraiment ?
    Pas Edge ?
    le DOM ne donne rien ?

    Image non téléchargeable ? à cause de la session, authentification, droits applicatifs, un dessin en JS directement ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 211
    Points : 55
    Points
    55
    Par défaut
    bonjour j'ai trouve cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    procedure ScreenShotWindow;
    var
      c: TCanvas;
      r, t: TRect;
      h: THandle;
      Bild: TBitMap;
      large,haut:integer;
    begin
      c := TCanvas.Create;
      {h := FindWindow(nil, 'Microsoft Edge');  }
      h := FindWindow(nil, 'Sans titre - Paint');
      c.Handle := GetWindowDC(h);
      GetWindowRect(h, t);
        large:=(t.Right-t.Left)-20;
        haut:=(t.Bottom-t.Top)-150;
     
      t.Left:=t.Left+10;
      t.Top:=t.Top+150;
      try
        r := Rect(0, 0,large ,haut );
        Bild := TBitMap.Create;
        try
          Bild.Width  := large;
          Bild.Height := haut;
          Bild.Canvas.CopyRect(r, c, t);
          Bild.SaveToFile('test.bmp');
        finally
          Bild.Free;
        end;
      finally
        ReleaseDC(0, c.Handle);
        c.Free;
        form1.Image1.Picture.LoadFromFile('test.bmp');
      end;
    end;

Discussions similaires

  1. Timage et Canvas??
    Par vanack dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/04/2007, 11h38
  2. Ombres portées sur un canvas
    Par pifou02 dans le forum Langage
    Réponses: 2
    Dernier message: 23/11/2003, 19h03
  3. Comment mettre le curseur d'un Memo sur le Canvas d'une Form ?
    Par julie20 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 27/08/2003, 13h24
  4. [Canvas] Listbox, couleur et multiselect
    Par rbag dans le forum Composants VCL
    Réponses: 3
    Dernier message: 25/09/2002, 13h02
  5. Réponses: 2
    Dernier message: 17/05/2002, 20h37

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