chrisledeveloppeur
Messages postés8Date d'inscriptionlundi 6 novembre 2006StatutMembreDernière intervention 1 février 2007
-
21 déc. 2006 à 09:12
chrisledeveloppeur
Messages postés8Date d'inscriptionlundi 6 novembre 2006StatutMembreDernière intervention 1 février 2007
-
28 déc. 2006 à 11:17
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.
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.
chrisledeveloppeur
Messages postés8Date d'inscriptionlundi 6 novembre 2006StatutMembreDernière intervention 1 février 2007 22 déc. 2006 à 09:34
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.
chrisledeveloppeur
Messages postés8Date d'inscriptionlundi 6 novembre 2006StatutMembreDernière intervention 1 février 2007 28 déc. 2006 à 11:17
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.