almdudler777
Well-known member
- 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?
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
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;