begin process at 2010 02 10 02:14:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Réseau & Internet

 > 

Internet

 > 

drag and drop d'une image d'une page web lancée depuis un webbroswer


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

drag and drop d'une image d'une page web lancée depuis un webbroswer

jeudi 21 décembre 2006 à 09:12:29 | drag and drop d'une image d'une page web lancée depuis un webbroswer

chrisledeveloppeur

Bonjour, comme le titre l'indique, je recherche une solution possible quand à un drag and drop d'une image contenue dans une page web  lancée dans un webbrowser vers un composant TImage. J'ai déjà trouvé une solution intermédiare qui est de répertorier toutes les images dans une liste d'images grace à l'OLE  puis de faire le drag and drop depuis cette liste à la place du webbrowser. Mais je souhaitrai le faire directement sur le webbrowser. Je sais que n'importe quel navigateur peut le faire. On glisse une image de la page web lancée vers n'importe quelle destination. Alors si dans la pratique on peut le faire, dans le développement aussi. Merci de votre aide si vous avez la solution. Je répéte ce qui m'intéresse : le drag and drop d'une image contenue dans une page web lancée depuis un webbrowser vers une composant TImage.
Chrisledeveloppeur.
jeudi 21 décembre 2006 à 20:43:06 | Re : drag and drop d'une image d'une page web lancée depuis un webbroswer

WhiteHippo

Membre Club
Réponse acceptée !
Bonsoir,
Peut être une solution pour toi ici : [ Lien ]



Cordialement.


L'imbécile prétentieux est celui qui se croit plus intelligent que ceux qui sont aussi bêtes que lui.

jeudi 21 décembre 2006 à 20:43:48 | Re : drag and drop d'une image d'une page web lancée depuis un webbroswer

Francky23012301

Membre Club
Salut, Avec un peu de recherche on trouve en 2 min le source suivant : Déposer deux boutons, un TWebbrowser et un TImage procedure TForm1.Button1Click(Sender: TObject); begin WebBrowser1.Navigate('http://www.google.fr'); end; procedure TForm1.Button2Click(Sender: TObject); var ShellDocObjectView: HWND; InternetExplorerServer: HWND; WebCanvas: TCanvas; begin ShellDocObjectView := FindWindowEx(WebBrowser1.Handle, 0, 'Shell DocObject View', nil); InternetExplorerServer := FindWindowEx(ShellDocObjectView, 0, 'Internet Explorer_Server', nil); WebCanvas := TCanvas.Create; WebCanvas.Handle := GetDC(InternetExplorerServer); InvalidateRect(InternetExplorerServer, nil, True); WebCanvas.Lock; Image1.Canvas.Lock; try Image1.Canvas.CopyRect(Rect(0, 0, Image1.Width, Image1.Height), WebCanvas, Rect(0, 0, WebBrowser1.Width, WebBrowser1.Height)); finally Image1.Canvas.Unlock; WebCanvas.Unlock; ReleaseDC(InternetExplorerServer, WebCanvas.Handle); WebCanvas.Handle := 0; WebCanvas.Free; end; end; Il te suffit d'adapter ce code pour un drap&drop
jeudi 21 décembre 2006 à 20:46:13 | Re : drag and drop d'une image d'une page web lancée depuis un webbroswer

Francky23012301

Membre Club
Désolé pour la mise en page : je reposte procedure TForm1.Button1Click(Sender: TObject); begin WebBrowser1.Navigate('http://www.google.fr'); end; procedure TForm1.Button2Click(Sender: TObject); var ShellDocObjectView: HWND; InternetExplorerServer: HWND; WebCanvas: TCanvas; begin ShellDocObjectView := FindWindowEx(WebBrowser1.Handle, 0,'shell DocObject View',nil); InternetExplorerServer := FindWindowEx(ShellDocObjectView, 0,'Internet Explorer_Server',nil); WebCanvas := TCanvas.Create; WebCanvas.Handle := GetDC(InternetExplorerServer); InvalidateRect(InternetExplorerServer, nil, True); WebCanvas.Lock; Image1.Canvas.Lock; try Image1.Canvas.CopyRect(Rect(0, 0, Image1.Width, Image1.Height), WebCanvas,Rect(0, 0, WebBrowser1.Width,WebBrowser1.Height)); finally Image1.Canvas.Unlock; WebCanvas.Unlock; ReleaseDC(InternetExplorerServer, WebCanvas.Handle); WebCanvas.Handle := 0; WebCanvas.Free; end; end; Chercher ne veut pas dire une petite recherche de 5 min : Normalement on devrait poster uniquement apres plusieurs jours de recherche ;).
vendredi 22 décembre 2006 à 09:34:21 | Re : drag and drop d'une image d'une page web lancée depuis un webbroswer

chrisledeveloppeur

Bonjour et merci de vos réponses. Je vous assure que j'ai mis pas mal de temps de recherches avant de songer à mon idée intermédiaire de liste d'images pris par l'ole du webbrowser; peut être que mes recherches ne possédaient pas les bons mots clés en dépis du grand nombre de mots clés que j'ai employé. Toutefois mon idée intermédiaire satisfait au final mon patron depuis hier, peu aprés mon post, car cela sécurise mieux le contenu de l'application pour des raison que je n'ai pas besoin de préciser ici. Mais, comme j'étais parti au début pour cette manipulation, je reste sur ma faim ^^.
Alors Francky, pour ta solution je l'ai adapté (peut être pas correctement mais si ceci est bien en employant les handle, çà ne devrai pas poser de problème), mais toutefois, elle ne solutionne pas mon problème (là j'ai peut être mal formulé mon problème), en effet, ta proposition fait une capture écran en image de tout le webbrowser, Or je recherche à glissser-déposer uniquement une image particulière de la page web chargée. Mais c'est peut être moi qui ai mal adapté mon code, je vais réanalyser le code de plus prés, voir si j'ai bien tout cerné.
Whitehyppo, ta solution se rapproche un peu plus de mon problème, en effet, elle permet de prendre une image, plus exactement il en prend son fichier si on le drop par exemple sur le bureau, ce qui est parfait. Mais il faut encore que je résoud le problème de la remettre dans le picture du Timage destinataire. Mais cela devrait se résoudre rapidement, je vois comment faire.
Encore merci à vous deux et je vous tiens au courant rapidement de la résolution complète du problème en bouclant ce topic.
samedi 23 décembre 2006 à 07:50:35 | Re : drag and drop d'une image d'une page web lancée depuis un webbroswer

cincap

Réponse acceptée !

Bonjour,

Le lien de la solution de l'ami Whitehippo est la solution demandée à moins que je n'ai pas compris la demande.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
  private
    { Déclarations privées }
    originalPanelWindowProc : TWndMethod;
     procedure PanelWindowProc (var Msg : TMessage) ;
     procedure PanelImageDrop (var Msg : TWMDROPFILES) ;

  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses ShellApi;


procedure TForm1.FormCreate(Sender: TObject);
begin
 originalPanelWindowProc := Panel1.WindowProc;
   Panel1.WindowProc := PanelWindowProc;

   DragAcceptFiles(Panel1.Handle,true) ;

end;
procedure TForm1.PanelWindowProc(var Msg: TMessage) ;
begin
   if Msg.Msg = WM_DROPFILES then
     PanelImageDrop(TWMDROPFILES(Msg))
   else
     originalPanelWindowProc(Msg) ;
end; (*PanelWindowProc*)

procedure TForm1.PanelImageDrop(var Msg: TWMDROPFILES) ;
var
   numFiles : longInt;
   buffer : array[0..MAX_PATH] of char;
begin
   numFiles := DragQueryFile(Msg.Drop, $FFFFFFFF, nil, 0) ;
   if numFiles > 1 then
   begin
     ShowMessage('You can drop only one image file at a time!') ;
   end
   else
   begin
     DragQueryFile(Msg.Drop, 0, @buffer, sizeof(buffer)) ;
     try
       Image1.Picture.LoadFromFile(buffer) ;
     except
       on EInvalidGraphic do ShowMessage('Unsupported image file, or not an image!') ;
     end;
   end;
end; (*PanelImageDrop*)

end.

En effet, ce code permet de copier une image présente sur un site mais aussi à partir de l'exploreur, sur une forme contenant un Timage.

Il ne faut pas oublier de mettre dans l'uses de la fiche au moins jpeg car c'est le format en général.

Et pour d'autres formats que le jpeg l'indiquer aussi (png, gif) avec le composant récepteur adéquat.

N. B. Sans code, il est possible de déplacer une image d'un site vers le bureau de Windows.

@+,

Cincap
[url]mailto:[/url]

jeudi 28 décembre 2006 à 11:17:17 | Re : drag and drop d'une image d'une page web lancée depuis un webbroswer

chrisledeveloppeur

Bonjour Cincap^^. Cette solution proposée m'aide beaucoup merci, mais au final pour des raisons de changements de directives, elle ne me permet plus de récupérer des informations concernant l'image (directives nouvelles pour des besoin d'utilisation). Aussi, j'ai du rester sur l'OLE du webbrowser. Mais je valide cette solution car elle répond à ma question initiale. Merci à vous et à votre patience pour avoir montré du code source pour ma personne^^. Dans d'autres forums, les solutions qui s'en rapprochaient ne permettaient pas de remplir totalement ce que je cherchais. Peu importe, j'ai trouvé une solution alternative qui arrange encore mieux nos affaires dans la boite. Et aussi j'ajouterai que je serai aussi intéressé pour une opération de drag and drop d'un contenu de mail vers un container delphi. Il faut savoir que le logiciel de messagerie utilisé est outlook Express et que ce dernier ne permet pas l'automation. Cela est donc trés facheux pour la récupération des informations. Débutant en Delphi depuis même pas 2 mois, ma faible connaissance en ses ressources est insuffisante, en dépis des quelques applications pourtant pas simples que j'ai déjà développées. Et tous les composants intermédiaires permettant de le faire sont payants. Chose que nous préferons éviter. Cela n'est pas urgent dans l'immédiat mais nous sera peut être utile dans l'avenir. Je continue mes recherches mais si quelqu'un a déjà eu affaire sur ce sujet, sa réponse est la bienvenue^^.

PS: je ne créé pas de sujet supplémentaire à propos du problème de outlook express sauf avis contraire, bien entendu.



Cette discussion est classée dans : page, image, and, drag, drop


Répondre à ce message

Sujets en rapport avec ce message

DRAG AND DROP [ par minipod ] Très clairement: j'ai deux Form: Form1 et Form2 j'ai 2 RichEdit: RichViewEdit1 et RichViewEdit2 (composants trouvés sur trichview.com)sur Form1 j'ai R Drag and Drop depuis une DBGrid [ par MAURICIO ] Je voudrais après avoir seleccioné plusieurs lignes d' une DBGrid, les "Glisser" et les lâcher sur une TreeView. Le problème est que OnMouseDown de la drag and drop [ par Hnimsgern ] Lorsque je dérive un objet (par exemple un bouton)pourquoi les fonctions drag and drop ne fonctionnent-elles pas?HN Drag and Drop des pièces jointes Outlook 2000 en Delphi 7 [ par vbyoyo ] Je cherche à gérer le drag and drop des pièces jointes d'Outlook dans monappli.Avec Outlook Express, pas de problème : il utilise bien le messageWM_DR Faire un drag and drop depuis Internet Explorer vers un TListView [ par delphi77 ] Bonjour J'ai besoin de pouvoir récupérer par simple glisser-déposer deux choses d'après une fenêtre d'Internet Explorer affichée à l'écran : l'URL et Afficher une image pendant un drag&drop [ par OrsE ] Salut tout le monde, voilà je cherche à faire le même effet que dans l'explorateur quand on déplace un fichier, il y a une image qui suit le curseur d Drag&Drop avec une image [ par OrsE ] Salut tout le monde, Voilà, mon problème est simple, je veux faire un drag & drop (glisser/déposer) avec une mage qui suit le curseur. J'ai trouvé pl Drag and Drop [ par Rush_Beck ] Bonjour,J'utilise le drag and drop pour faire glisser un Panel au dessus d'une grille, J'ai positioné Panel1.Dragkind := dkDock sans quoi le glisser d drag and drop entre treeview [ par gilore ] bonjour,dans mon appli, j'utilise deux treeview ... le premier treeview est une base de donnée, le second est l'extrait de la base de donnée que je vo drag and drop [ par l0sth34d ] Bonjour!J'aimerais savoir comment on fait pour pouvoir utiliser le drag and drop entre 2 composants TListview différents qui on plusieurs colonnes (en


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales