Accueil > Forum > > > > drag and drop d'une image d'une page web lancée depuis un webbroswer
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
|
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
|
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
|
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
Livres en rapport
|
Derniers Blogs
MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|