Hallo Forengemeinde,
Ich habe ein kleines Problem in einem alten Projekt, dass leider noch auf Delphi 7 basiert und mir fehlt die Zeit es für eine neuere Version neu zuschreiben.
Trotzdem möchtet ich es gerade etwas auf hübschen und anpassen.
Und zwar nutze ich folgenden Funktion relativ häufig in meinem Code, doch leider ist sieh recht leistungsintensiv, weshalb ich sie gerne in ein Thread hätte.
Delphi-Quellcode:
function _ImageSearch(findImage: string; tolerance: Integer; delay: Integer): Boolean;
var
ergebnis : PChar;
ergebnis2 : TStringList;
oldPos : TPoint;
begin
if (tolerance > 0) then findImage := '*' + inttostr(tolerance) + ' ' + findImage;
ergebnis := ImageSearch(0,0,Screen.Width ,Screen.Height ,PCHAR(findImage));
if (ergebnis[0] = '1') then
begin
ergebnis2 := split(ergebnis, '|', true);
sleep(delay);
x := StrToInt(ergebnis2[1]) + round(StrToInt(ergebnis2[3])/2);
y := StrToInt(ergebnis2[2]) + round(StrToInt(ergebnis2[4])/2);
oldPos := mouse.CursorPos;
mouse.CursorPos := point(x+Zufallszahl(-5,5),y+Zufallszahl(-5,5));
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
mouse.CursorPos := oldPos;
//showmessage('found' + inttostr(x) + ' ' + inttostr(y));
result := true
end
else
begin
result := false
end;
end;
Leider habe ich Delphi Threads nie so richtig verstanden deshalb hoffe ich auf eure Hilfe. Am liebsten wäre mir eine Funktion, die einen Thread erstellt, die Funktion laufen lässt den Thread schließt und mir die Rückgabe liefert.
Ich hoffe ihr könnt mir dabei weiter helfen.
Danke und einen lieben Gruß,
Fredyy
Frederick B.