![]() |
Farbpixel beim Mauszeiger feststellen?
Hi, ich wollte mal fragen ob es eine Möglichkeit gibt die Aktuelle Farbe vom Punkt des Mauszeigers
auslesen zu lassen. |
Re: Farbpixel beim Mauszeiger feststellen?
Hi,
hier hast du etwas Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var CurPos: TPoint; begin sleep(1000);//Zeit geben zum Maus bewegen GetCursorPos(CurPos); Color:= GetPixel(GetDC(0), CurPos.X, CurPos.Y); end; |
Re: Farbpixel beim Mauszeiger feststellen?
Danke dir, das hilft mir sehr weiter.. genau nach den begriff hab ich in delphi gesucht, hat nichts gefunden..
|
Re: Farbpixel beim Mauszeiger feststellen?
das Beispiel von BitSetter solltest du auf keinen Fall 1 zu 1 übernehmen da Ressourcen nicht frei gegeben werden!
|
Re: Farbpixel beim Mauszeiger feststellen?
ich hab natürlich mehrere codezeilen dazugemacht,
aber die grundbefehle Mouse.CursorPos := Point(x, y); GetPixel(GetDC(0), x, y); hab ich so übernommen. ich hab noch nicht so viele erfahrungen in delphi, daher weiß ich nicht wie man die resourcen wieder freigibt.. wie wirkt sich das den aus. |
Re: Farbpixel beim Mauszeiger feststellen?
genau die zweite Zeile ist der übeltäter. Wenn mit GetDC ein Handle geholt wird muss dieses auch wieder frei gegeben werden was aber nicht möglich ist wenn man das ganze nicht zwischenspeichert sondern direkt an die Funktion GetPixel übergibt.
Delphi-Quellcode:
var
lDC: HDC; begin lDC := GetDC(0); if (lDC > 0) then begin xyz := GetPixel(lDC, x, y); [...] ReleaseDC(0, lDC); end; |
Re: Farbpixel beim Mauszeiger feststellen?
Delphi-Quellcode:
hi, wollte fragen ob das so nun richtig ist.
Mouse.CursorPos := Point(300, 43);
Colorx:= GetPixel(lDC, 300, 43); ReleaseDC(0, lDC); ich habs vorher noch nicht gemacht, weil es auch ohne ging.. und ich ja nicht die negativen auswirkungen kenne, wenn ich es nicht tue^^ wollts aber vollständigkeitshalber trotzdem machen. den code oben hab ich dann noch ein paar mal im ganzen drin.. |
Re: Farbpixel beim Mauszeiger feststellen?
ist ok so, man muss wie gesagt nur darauf achten das man ein Handle auf einen DC das man mit GetDC geholt hat auch wieder mit ReleaseDC frei gibt wenn es nicht mehr benötigt wird. Ansonsten gehen Windows irgendwann diese Handles aus und es gibt keine graphiche Ausgabe mehr.
|
Re: Farbpixel beim Mauszeiger feststellen?
ok, reicht es wenn ich am ende der schleife das einmal schreibe, oder würde er wenn ich das z.b. 20x aufrufe nur einmal wieder freigeben.
|
Re: Farbpixel beim Mauszeiger feststellen?
Für jedes GetDC() musst du ein ReleaseDC() haben. :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:17 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-2025 by Thomas Breitkreuz