AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Canvas und Icons

Ein Thema von Martin K · begonnen am 5. Mai 2006 · letzter Beitrag vom 5. Mai 2006
Antwort Antwort
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#1

Canvas und Icons

  Alt 5. Mai 2006, 22:34
Hi,

habe ein Icon in ein TImage geladen.
Dann wollte ich mit Canvas darauf zeichnen und es kommt diese Meldung:
Code:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EInvalidOperation aufgetreten. Meldung: 'Ein Bild kann nur geändert werden, wenn es ein Bitmap enthält'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK  Hilfe  
---------------------------
Frage:
Wie kann man auf Icons zeichnen, also ähnlich wie mit Canvas
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Canvas und Icons

  Alt 5. Mai 2006, 22:41
Hallo Martin,

die Fehlermeldung sagt es schon: eine Zeichenfläche (Canvas) gibt es nur, wenn das TImage-Objekt eine Bitmap enthält:

Zitat von Delphi-Hilfe:
Canvas ist nur verfügbar, wenn die Eigenschaft Picture ein TBitmap-Objekt enthält. Wenn Picture einen anderen Grafiktyp darstellt, führt der Versuch, Canvas zu lesen, zu einer EInvalidOperation-Exception.
Du wirst also dein Icon in eine Bitmap umwandeln müssen. Vielleicht findest du über die Suchfunktion in der DP einen entsprechenden Code.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Canvas und Icons

  Alt 5. Mai 2006, 22:44
Hmm...
Also gibt es überhaupt keine Möglichkeit direkt auf ein TIcon zu zeichnen...?!?
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Canvas und Icons

  Alt 5. Mai 2006, 22:50
Hier wurde ein ähnliches Problem besprochen. Möglicherweise hilft es dir ja weiter.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Canvas und Icons

  Alt 5. Mai 2006, 23:09
Jo, danke schonmal.

Aber wie kann ich abfragen, ob mein TImage ein Bitmap oder ein Icon enthält ?

Dann lasse ich das Zeichnen halt einfach nur zu, wenn das TImage ein Bitmap ist...
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Canvas und Icons

  Alt 5. Mai 2006, 23:19
Du kannst die Eigenschaft Graphic überprüfen:

Delphi-Quellcode:
if (Image1.Picture.Graphic = nil) then
  // kein Bild enthalten
else
  if (Image1.Picture.Graphic is TBitmap) then
    // bitmap
  else
    if (Image1.Picture.Graphic is TJPEGImage) then
      // jpg
    else
      ...
Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Canvas und Icons

  Alt 5. Mai 2006, 23:26
Zitat von Hawkeye219:
Du kannst die Eigenschaft Graphic überprüfen:

Delphi-Quellcode:
if (Image1.Picture.Graphic = nil) then
  // kein Bild enthalten
else
  if (Image1.Picture.Graphic is TBitmap) then
    // bitmap
  else
    if (Image1.Picture.Graphic is TJPEGImage) then
      // jpg
    else
      ...
Gruß Hawkeye
Sicher, dass das so geht ?

Bei der Überprüfung auf ein TBitmap kommt diese Fehlermeldung:
Zitat:
[Fehler] Unit1.pas(158): Operator ist auf diesen Operandentyp nicht anwendbar
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Canvas und Icons

  Alt 5. Mai 2006, 23:28
Du mußt darauf achten, daß in der USES-Anweisung die Unit "Windows" vor der Unit "Graphics" aufgeführt wird, da beide den Bezeichner TBitmap definieren. Hier wird aber die Definition aus der Unit Graphics benötigt.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Canvas und Icons

  Alt 5. Mai 2006, 23:33
Danke, das war's
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz