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
3832
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
17 février 2022
48
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
3832
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
17 février 2022
48
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
38
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
38
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
3832
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
17 février 2022
48
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
38
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