Clipboard Probleme ?

Résolu
programiest Messages postés 11 Date d'inscription mardi 2 septembre 2008 Statut Membre Dernière intervention 27 novembre 2008 - 2 sept. 2008 à 16:13
programiest Messages postés 11 Date d'inscription mardi 2 septembre 2008 Statut Membre Dernière intervention 27 novembre 2008 - 4 sept. 2008 à 14:40
Salut

j ai un Problème avec le Graphique de Clipboard
voila mon Code :
{$R *.dfm}

1- je copie un Graphique de Microsoft Paint dans Clipboard avec Ctrl+V

2-
procedure TForm1.Button2Click(Sender: TObject);

begin
if Clipboard.HasFormat(CF_BITMAP) then

Image2.Picture.Assign(Clipboard);

end;

3- Le Problème est ici :
procedure TForm1.Button1Click(Sender: TObject);

begin


Image1.Canvas.StretchDraw(Rect(10,10,200,200), Image2.Picture.Bitmap);

end;

Resultat : Un Image Blanc !!!!!!
mais si je fais ça avec cette forme sa marche :
Image1.Picture.Assign(Image2.Picture);

s.v.p essaye ?

10 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
4 sept. 2008 à 14:19
Paint renvoi bien un format Bitmap  ... entres autres ...

il faut donc soit forcer le bon format ... soit s'adapter

{Ici on s'adapte au Format}
Procedure TForm2.Button2Click(Sender:
TObject);
Begin
  If
Clipboard.HasFormat(cf_Bitmap) Or
ClipBoard.HasFormat(CF_METAFILEPICT)
    Or ClipBoard.HasFormat(CF_ENHMETAFILE) Then
      Image2.Picture.Assign(ClipBoard);

End;

{On utilise l'objet Graphic}
Procedure TForm2.Button1Click(Sender: TObject);

Begin

  Image1.Canvas.StretchDraw(Rect(10,10,200,200),
Image2.Picture.Graphic);
End;

{Ici on force le bon format}
Procedure TForm2.Button2Click(Sender:
TObject);
Begin
  If
Clipboard.HasFormat(cf_Bitmap) Then

    Image2.Picture.Bitmap.Assign(ClipBoard);
End;

{On utilise le l'objet Bitmap}
Procedure
TForm2.Button1Click(Sender: TObject);
Begin
  Image1.Canvas.StretchDraw(Rect(10,10,200,200),
Image2.Picture.Bitmap);
End;

 
@+
Cirec

<hr siz="" />
3
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
2 sept. 2008 à 17:06
salut,

ce code fonctionne très bien !!!!
je viens de le tester sous D7

essaye peut être en fixant la taille du TImage

Image1.Width := 210;
Image1.Height := 210;
Image1.Canvas.StretchDraw(Rect(10,10,200,200), Image2.Picture.Bitmap);

 
@+
Cirec

<hr siz="" />
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
2 sept. 2008 à 19:00
  if clipboard.HasFormat(clipbrd.CF_PICTURE) then
  begin
    image1.Picture.Assign(ClipBoard);
    image2.Picture.Bitmap.Assign(Image1.Picture.Bitmap);
  end;

image1.Picture.Bitmap.Width := 320;
image1.Picture.Bitmap.Height := 240;
image1.Picture.Bitmap.Canvas.StretchDraw(Rect(0,0,319,239), Image2.Picture.Bitmap);

<hr size="2" width="100%" />
0
programiest Messages postés 11 Date d'inscription mardi 2 septembre 2008 Statut Membre Dernière intervention 27 novembre 2008
2 sept. 2008 à 19:11
Sa ne marche pas
tu a déjà testée ?!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
3 sept. 2008 à 04:08
oui et ça fonctionne trés bien...

ton problème doit venir d'ailleurs.

<hr size="2" width="100%" />
0
programiest Messages postés 11 Date d'inscription mardi 2 septembre 2008 Statut Membre Dernière intervention 27 novembre 2008
3 sept. 2008 à 10:44
Quel Delphi Version ?
j ai D7
peut tu faire un Demo pour moi ;) (delphi project). merci
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
3 sept. 2008 à 12:40
 

les 3 codes fonctionnes parfaitement ...
fait un essais toi même avec rien d'autre que 2 TImage et deux TButton et ça devrait aussi marcher chez toi.

@+
Cirec
0
programiest Messages postés 11 Date d'inscription mardi 2 septembre 2008 Statut Membre Dernière intervention 27 novembre 2008
3 sept. 2008 à 14:22
[ les 3 codes fonctionnes parfaitement ] !!!
je suis sur que tu n' as pas essayée de copie un Graphique de MS Paint
MS Paint utilise un autre format ( wmf)
tu as peut être essayée avec Bitmap en Clipboard
alors tu peut essayée de copie le Graphique en MS Paint ou bien de photoshop avec Ctrl+C
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
3 sept. 2008 à 23:52
WMF = Windows Meta File, supporté par Delphi et TImage.

non le probleme ne viens pas de la, le code est bon, est fonctionne avec la plupart des logiciel graphique même avec Word et Writer. mais pas avec Paint (j'avais tester avec Paint.Net, rien a voir avec MSPaint)

C'est juste que Paint, lors du copier coller ne renvois pas un Bitmap, ni même un JPEG, non plus un WMF... il renvois ... autre chose ... dans un format totalement grotesque et injurieux, on dirait presque du MSP (MicroSoft Paint) le format natif de Paint 1.0 et 2.0.

<hr size="2" width="100%" />
0
programiest Messages postés 11 Date d'inscription mardi 2 septembre 2008 Statut Membre Dernière intervention 27 novembre 2008
4 sept. 2008 à 14:40
Salut
j l ai testée. maintenant sa marche très bien  :  )
merci beaucoup
0
Rejoignez-nous