Thema: Delphi Bitmaps in DLL..

Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5
  Alt 12. Jul 2002, 22:30
Moin movax,

TBitmaps haben die unangehme Eigenschaft, dass man erst einmal ihre Grösse setzen muss, bevor man sie erfolgreich füllen kann.
Das müsste dann ungefähr so aussehen.

Code:
[b]procedure[/b] TForm1.Button1Click(Sender: TObject);
[b]var[/b]
  bild: tbitmap;
[b]begin[/b]
  bild := tbitmap.Create;
  [b]try[/b]
    bild.Height := Tiles.Height;
    bild.Width := Tiles.Width;
    Tiles.GetBitmap(0, bild);
    Image1.Canvas.Draw(0, 0, bild);
  [b]finally[/b]
    FreeAndNil(bild);
  [b]end[/b];
[b]end[/b];
Ausserdem hab' ich das Objekt auch wieder freigegeben.
Da durch das Erzeugen eines Objektes Resourcen belegt werden, müssen diese auch, nach Gebrauch, wieder freigegeben werden, um Speicherlecks zu vermeiden.
Dazu dient der try/finally Block. (sogenannter Resourcenschutzblock).
Würde zwischen try und finally irgendetwas schiefgehen (Exception), würde finally in jedem Falle ausgeführt werden (hoffentlich ), und somit die durch TBitmap.Create belegten Resourcen wieder freigegeben.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat