Einzelnen Beitrag anzeigen

Cookiemaster

Registriert seit: 26. Dez 2005
7 Beiträge
 
#9

Re: Welche Farbe hat der Pixel?

  Alt 29. Dez 2005, 00:48
Sorry ^^ aber ich hab das auch nur auf die schnelle zusammengestrickt.

Als Entschädigung hier der richtige Code:
Delphi-Quellcode:
// Form1 enthält
// 1 TTimer Objekt, Intervall = 100
// 1 TEdit namens Koord
// 1 TEdit namens Color

// die OnTimer Prozedur des Timers sieht so aus:

procedure TForm1.Timer1Timer(Sender: TObject);
var
  hDesk : HWND;
  hdcDesktop : HDC;
  crefPixel : COLORREF;
  p : TPoint;
begin
  GetCursorPos(p);
  Koord.Text := 'X = ' + inttostr(p.x) + ' Y = ' + inttostr(p.y);

  hDesk := GetDesktopWindow;
  hdcDesktop := GetWindowDC(hDesk);

  crefPixel := GetPixel(hdcDesktop, p.x, p.y);
  color.Text := inttostr(crefPixel);
  ReleaseDC(hDesk, hdcDesktop);
end;
Allerdings schreibt HIER jemand, dass er bei einem ähnlichen Programm in Visual Basic ein Memory-Leak hat.
Hab das mal kurz getestet mit dem Task-Manager. Am Anfang braucht mein Programm 2004 kB Speicher, das wird dann auch tatsächlich immer mehr... immer wenn ich mit der Maus über ein "neues" Fenster drüberfahre (wo die Maus vorher noch nicht war) wird es mehr.
Nach einiger Zeit sind es dann 2388 KB Speicher.
  Mit Zitat antworten Zitat