[Delphi] Probleme mit TImage und dessen Properties

almdudler777

Well-known member
ID: 115892
L
21 Mai 2006
45
1
Hallo Leute,

zuerst: ich bin relativ neu in der Delphi materie und lerne es aus eigenem Interesse, da ich es im Info unterricht ganz cool fand.

Nun mein kleines Problem mit dem ich mich rumschlage. Ich möchte ein kleines Malprogramm machen, dazu habe ich mir ne Klasse mDrawinglayer gemacht, damit man in ebenen zeichnen kann. Dieser DrawingLayer hat nen TImage um bilder zu laden und drauf zu zeichnen.

Wenn ich nun ein Bild geladen habe, möchte ich es auch wieder löschen können. Nur wie entfernt man ein Bild (JPEG oder BMP) das man mittels LoadFromFile geladen hat, aus dem Steuerelment UND ausm Speicher. Ich mein ich könnte ja alle Pointer auf nil setzen ist aber nicht sauber ;) Ich poste mal nen code, der Funktioniert soweit super bei JPG nur bei Bitmaps nicht die bleiben aufm Bildschirm kp warum?!

könnte mir einer den Unterschied zwischen TGraphic (Image.Picture.Graphic) und TBitmap (Image.Picture.Bitmap) erklären? Speichert er evtl. BMP dateien wo anders?

Code:
procedure TDrawingLayer.loadImage(Data: string);
begin
  if not (hatImage.Picture.Bitmap.HandleAllocated) then showmessage('Es is nen Bitmap drin'); //self.deleteImage;
  if not (hatImage.Picture.Graphic.Empty) then showmessage('Es is ne Graphic drin'); //self.deleteImage;
  self.Image.Picture.LoadFromFile(Data);
  self.Image.Repaint;
end;

procedure TDrawingLayer.deleteImage;
var Bitmap : TBitmap;
begin
  self.Image.Picture.Bitmap.Free;
  self.Image.Picture.Bitmap.Assign(TBitmap.Create);
  self.Image.Picture.Graphic.Free;
  self.Image.Picture.Graphic.Assign(TGraphic.Create);
  self.Image.Repaint;
end;