Hi erstmal,
mit folgender Funktion kann man die Farbe eines Pixels auf dem Desktop ermitteln:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| function DesktopColor(const x,y:integer):TColor; var c: TCanvas; begin c:=TCanvas.create; c.handle:=GetWindowDC(GetDesktopWindow); result:=getpixel(c.handle,x,y); c.free; end; |
Das Problem ist jedoch, dass ein Programm, welches in einer Schleife alle 10ms diese Funktion ausführt, stetig an (Arbeits-)Speicher zunimmt, bis es irgendwann abstürzt. Manchmal kommt die Fehlermeldung "Canvas does not allow drawing." (Es geht bei 1.900 MB los, und stürzt bei ca. 7.200 MB ab)
Ich habe den Quelltext mehrmals durchgesehen und garantiert nirgendwo vergessen irgendein Objekt freizugeben.
Woran kann das ganze liegen?
Danke im Vorraus,
phase