Comment utiliser CopyRect méthode Delphi

Je suis de chargement d'une image à partir du disque et que vous souhaitez copier (en partie) à un deuxième TImage:

Image1.Picture.LoadFromFile(S);
with Image1.Picture.Bitmap do
  Image2.Canvas.CopyRect(Image2.Canvas.ClipRect, Canvas, Canvas.ClipRect);

Image2 montre juste un rectangle blanc, et Image1 n'affiche pas le fichier à partir du disque. Si je supprime le deuxième déclaration Image1 montre l'image. (Chose la plus étrange: si je ne le commentaire de la CopyRect déclaration et de laisser le "avec" en ligne (instruction vide) Image1 ne montre pas non plus!)

Comment puis-je utiliser CopyRect copier une partie d'une image?

modifier

Quand je divise les deux états en deux actions distinctes (les boutons), les événements suivants se produise:

  1. Chargements d'Image et montre dans Image1
  2. Image1 disparaît(!), et Image2 montre un rectangle blanc.

BTW, je suis en utilisant Delphi 2009.

  • Je copypasted votre code et il fonctionne très bien pour moi. Essayez de séparer les deux états (2 boutons) et voir ce qui se passe
  • Il n'est pas étrange: Image1.Picture.Bitmap forces le type de graphique à tenir une 'bitmap'. Si Image1.Picture n'est pas déjà une image bitmap (qui semble donc bien que manquant dans la question), le graphique de la libère et crée une image bitmap.
  • Merci, mais ne semble pas fonctionner. J'ai ajouté à ma question.
  • C'est pourquoi @Magie du code de travail, il est le chargement d'un 'bitmap'.
  • Quel est le code par Magie parlez-vous?
  • Le même code, c'est seulement qu'il est le chargement d'une image bitmap et vous êtes en train de charger un autre type de graphique. Soit que.., ou je vais supprimer tous mes commentaires.. 🙂
  • Pouvez-vous confirmer veuillez vous n'êtes pas le chargement d'une image bitmap, et que si votre code fonctionne si s points d'un fichier bitmap?
  • Je me sens forcé de l'utilisation de l'image des biens, car je ne peux pas charger une image de la toile. Mais alors je ne peux pas utiliser l'image de la toile pour la copie. Franchement je suis un peu confus par la différence entre l'image et de la toile.
  • Quel est le nom de fichier S? En particulier, quelle est l'extension du fichier? Est-il 'bmp', 'png', 'jpg', ... ?
  • c'est un jpg

InformationsquelleAutor stevenvh | 2011-12-02