Einzelnen Beitrag anzeigen

Benutzerbild von Fredyy
Fredyy

Registriert seit: 31. Mär 2005
Ort: Wilhelmshaven
46 Beiträge
 
Delphi 7 Personal
 
#1

Thread für einen Funktionsaufruf erstellen

  Alt 19. Sep 2012, 21:33
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.

Geändert von Fredyy (19. Sep 2012 um 21:38 Uhr)
  Mit Zitat antworten Zitat