Einzelnen Beitrag anzeigen

Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#35

Re: Maus auf ein Ereignis reagieren lassen

  Alt 15. Apr 2007, 21:10
Ich habe noch eine andere Funktion geschrieben, kannst ja mal testen ob die anders ist:
Delphi-Quellcode:
function ColorToleranz(SollColor, IstColor: TColor; Toleranz: Byte): boolean;
var
  rSoll, gSoll, bSoll, rIst, gIst, bIst: byte;
begin
  Result:= false;
  SollColor := ColorToRgb(SollColor);
  rSoll := GetRvalue(SollColor);
  gSoll := GetGvalue(SollColor);
  bSoll := GetBvalue(SollColor);

  IstColor := ColorToRgb(IstColor);
  rIst := GetRvalue(IstColor);
  gIst := GetGvalue(IstColor);
  bIst := GetBvalue(IstColor);
  if (rIst >= rSoll- Toleranz) and (rIst <= rSoll + Toleranz) and
    (gIst >= gSoll- Toleranz) and (gIst <= gSoll + Toleranz) and
    (bIst >= bSoll- Toleranz) and (bIst <= bSoll + Toleranz) then
      Result := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  DCFarbe: TColor;
begin
  DCFarbe := GetPixel(DesktopDC, Mouse.CursorPos.X, Mouse.CursorPos.Y);
  if ColorToleranz(clGreen, DCFarbe, 20) then//max 255
  begin
    mouse_event(MOUSEEVENTF_RIGHTDOWN, Mouse.CursorPos.X, Mouse.CursorPos.Y, 0, 0);
    mouse_event(MOUSEEVENTF_RIGHTUP, Mouse.CursorPos.X, Mouse.CursorPos.Y, 0, 0);
  end;
end;
Obwohl was ist denn das $B5D4F19E für eine Farbe?
z.B. Blau = $FF0000

Es kann natürlich auch sein, dass es so eine Funktion schon irgendwo gibt.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat