![]() |
BitBlt und Assign() - Exception?!
Hallo Leute,
folgendes Problem: In einem Thread läuft immer nur diese Funktion ab:
Delphi-Quellcode:
Das Hauptprogramm startet einfach nur den Thread und hat 2 TBitmaps welche beide an den Thread übergeben werden (Image1 und FImage).
procedure TRefresh_2.Execute;
begin with FWorkImage do begin PixelFormat := pf8bit; Width := Image1.Width; Height := Image1.Height; end; // // LOOP starts here... // while not Self.Terminated do begin try BitBlt(FWorkImage.Canvas.Handle, 0, 0, Image1.Width, Image1.Height, Image1.Canvas.Handle, 0, 0, SRCCOPY); Synchronize(Sync); Sleep(20); except raise Exception.Create('EXECUTE Counter at: ' + IntToStr(FCounter)); end; end; end; procedure TRefresh_2.Sync; begin try Inc(FCounter); FImage.Assign(FWorkImage); except raise Exception.Create('SYNC Counter at: ' + IntToStr(FCounter)); end; end; Das Programm läuft und läuft...solange man die Maus nicht bewegt oder die GUI resized. Dann knallts mit der Exception: Nicht genügend Speicher verfügbar. Jemand eine Idee? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz