Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: n-Dame: Darstellung schlägt fehl

  Alt 17. Jan 2006, 11:06
.... und das dann noch in Try-Finally Blöcke kapseln und Du hast ein wirklich robustes Programm.
Delphi-Quellcode:
PROCEDURE Damen_visualisieren (spalte,zeile:integer);
var
  damebild:TBitmap;

begin
  damebild:=TBitmap.Create;
  Try // ***********
    damebild.LoadFromFile('dame.bmp');
    DrawGrid1.Canvas.Draw(((spalte*30)+spalte)-31,((zeile*30)+zeile)-31,damebild);
  Finally // ******
    damebild.Free; //Hier ...
  end; //*********
end;

PROCEDURE Damen_loeschen (spalte,zeile:integer);
var
  damebild:TBitmap;

begin
  damebild:=TBitmap.Create;
  Try // *******************
    damebild.LoadFromFile('leer.bmp');
    DrawGrid1.Canvas.Draw(((spalte*30)+spalte)-31,((zeile*30)+zeile)-31,damebild);
  Finally //****************
    damebild.Free; // ... und hier
  end; //******************
end;
Dann wird der Speicher auch dann freigegeben, wemm beim 'LoadFromFile' oder dem anschließenden Draw etwas schief geht.
Weiterhin könnte man einfach zwei Bitmaps global deklarieren (oder in der Form) und die beiden Bilder einmalig beim Programmstart laden. Dann erübrigt sich das Ganze sowieso.

Ach ja: Im FormDestroy die beiden Bitmaps wieder freigeben.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat