AGB  ·  Datenschutz  ·  Impressum  







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

TBitmap vom falschen Type

Ein Thema von sexmagic · begonnen am 21. Okt 2006 · letzter Beitrag vom 21. Okt 2006
Antwort Antwort
sexmagic

Registriert seit: 16. Sep 2006
56 Beiträge
 
Delphi 2006 Professional
 
#1

TBitmap vom falschen Type

  Alt 21. Okt 2006, 10:50
Hallo Leute,

ich habe ein Problem das ich einfach nicht verstehe, ich möchte im Grunde nichts anders tun als ein JPEG als BMP speichern.

Dazu habe ich diese Prozedure verwendet:
Code:
procedure TForm1.JPEGtoBMP(const FileName: TFileName);
var
  jpeg: TJPEGImage;
  bmp: TBitmap;
begin
  jpeg := TJPEGImage.Create;
  try
    jpeg.CompressionQuality := 100;
    jpeg.LoadFromFile(FileName);
    bmp := TBitmap.Create;
    try
      bmp.Assign(jpeg);
      bmp.SaveTofile(ChangeFileExt(FileName, '.bmp'));
    finally
      bmp.Free
    end;
  finally
    jpeg.Free
  end;
end;
Und aufrufen tu ichs so:
Code:
Jpeg2Bmp(Label5.Caption);
Das Probelm ist aber das bei mir TBitmap nivht von der Klasse Graphics abgeleitet wirds sonder von der aus Windows.
Ich habe also keine Methoden zur verfügung, kein create, assign, safetofile.
Was kann ich tun damit das vom richtigen Type abgewandelt wird, und vor allem warum ist das so, ist das vielleicht normal?

Ich habe viel gegooglet und gesucht aber irgendwie scheine ich der einzige zu sein der diesews Problem hat.

Mein lösungsversuch war dann vor der Procedure den Typ zu definieren, das hab ich so gemacht:
Code:
type TBitmap = class (Graphics.TGraphic);
Dann wird der richtige Typ verwendt, aber das is doch nicht normal oder?
Weiters bekomme ich dann immer eine Fehlermeldung: TJPEGImage kann nicht zu TBitmap zugewiesen werden.

Wäre für Hilfe sehr dankbar, ich komme selber nicht drauf.

Danke

SM
  Mit Zitat antworten Zitat
Hawkeye219

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

Re: TBitmap vom falschen Type

  Alt 21. Okt 2006, 11:08
Hallo,

der Fehler resultiert aus einer Überladung des Typs TBitmap, der in den Units Windows und Graphics definiert wird. Der Compiler verwendet immer die Definition, die als letzte in der Uses-Anweisung aufgeführt wird. Ändere daher die Reihenfolge so ab, daß Graphics nach Windows angegeben wird.

Gruß Hawkeye
  Mit Zitat antworten Zitat
sexmagic

Registriert seit: 16. Sep 2006
56 Beiträge
 
Delphi 2006 Professional
 
#3

Re: TBitmap vom falschen Type

  Alt 21. Okt 2006, 11:12
Danke für deine schnelle Antwort!

Das hat den Fehler behoben, nur komisch ist das Graphics hinter Windows war, ich hab Graphics nun an die letzte stelle gereiht und nun tuts!!!!


Vielen Dank dmait ist auch das andere Problem mit der Fehlermeldung gelöst!
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: TBitmap vom falschen Type

  Alt 21. Okt 2006, 11:18
Hi,
auch wenn du das Problem schon gelöst hast, noch eine Alternative:
Du kannst die Klasse auch mit der Unit qualifizieren, aus der sie stammt. Das ist z.B. dann nötig, wenn du die Graphics Unit im Interface, Windows aber im Implementation Teil hättest. Einfach den NameDerUnit.Klassenname und dann klappt das auch.
An sich empfiehlt es sich sogar, dass man dies immer dann macht, wenn man mit Konstanten arbeitet, die in einer Unit deklariert sind (vermeidet halt solche Fehler). Bei Klassen hat man halt den Vorteil, dass die zwar gleich heißen, aber häufig inkompatibel sind, bei Integer Werten sieht dass schon anders aus.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
sexmagic

Registriert seit: 16. Sep 2006
56 Beiträge
 
Delphi 2006 Professional
 
#5

Re: TBitmap vom falschen Type

  Alt 21. Okt 2006, 11:50
Sehr schön, danke für den Tip!
  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 22:29 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