Einzelnen Beitrag anzeigen

Benutzerbild von Pflaumi
Pflaumi

Registriert seit: 21. Mai 2019
Ort: Reichenschwand
36 Beiträge
 
Delphi 7 Professional
 
#1

DirectDrawSurface auf anderes Surface zeichnen

  Alt 16. Dez 2020, 18:55
Hallo zusammen, ich habe mal wieder eine Frage zu DelphiX:

Ich würde gerne mehrere Bilder auf ein Surface von DelphiX malen
Code:
procedure TForm1.Draw;
var a: TDirectDrawSurface;
begin
  DXImageList1.Items[0].Draw(a, 0, 0, 0);
end;
Da das Bild alle 100 Millisekunden immer gemalt wird, will ich Bilder, die sich eh nie ändern, ganz am Anfang zeichen und dann alle 100 Millisekunden nur das fertige Bild zeichnen.
Jetzt mache ich so weiter:
Code:
procedure TForm1.Draw;
var a: TDirectDrawSurface;
var r: TRect;
begin
  DXImageList1.Items[0].Draw(a, 0, 0, 0);
  a.SetSize(100, 100);
  r := Rect(0, 0, 100, 100);
  a.Draw(0, 0, r, DXDraw1.Surface, false);
  DXDraw1.Flip;
end;
Dann erscheint immer diese Fehlermeldung:

Zugriffsverletzung bei Adresse 004615C8 in Modul "Projekt1.exe".
Lesen von Adresse C08BC38F.


Und dann bleibt der Bildschirm schwarz...

Ich würde mich freuen, wenn jemand dazu eine Lösung hat !

PS: Kann man hier irgentwo seinen Namen (Nickname) ändern?
Felix
  Mit Zitat antworten Zitat