Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Farbwerte von Elementen beim Darüberfahren auslesen (https://www.delphipraxis.net/50301-farbwerte-von-elementen-beim-darueberfahren-auslesen.html)

Opa Knack 23. Jul 2005 01:52


Farbwerte von Elementen beim Darüberfahren auslesen
 
Hallo,

ich möchte die Farbwerte verschiedener auf einer Form platzierter Shapes auslesen, sobald der Mauszeiger darüber fährt. Dabei sollen nur die Werte der Shapes, nicht aber von Images angegeben werden.

Hat jemand einen Tipp, wie ich dies bewerkstelligen könnte?

Danke
Opa

jensw_2000 23. Jul 2005 02:06

Re: Farbwerte von Elementen beim Darüberfahren auslesen
 
Schau dir den Thread von Pr0g mal an.
Ich denke da könnte was für dich dabei sein ...

http://www.delphipraxis.net/internal...ct.php?t=41577

Hier im Forum suchenfarbe and maus

Pr0g 23. Jul 2005 02:09

Re: Farbwerte von Elementen beim Darüberfahren auslesen
 
Hier nen einfaches Beispiel (da mit Timer):
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  fPos: TPoint; // Cursorposition
  i: Integer;
begin
  // Cursorposition ermitteln
  GetCursorPos(fPos);
  // Auf Clientposition umrechnen
  fPos := ScreenToClient(fPos);

  // Alle Controls auf der Form durchgehen und bei Shapes die Position
  // vergleichen
  for i := 0 to ComponentCount - 1 do
  begin
    if Components[i] is TShape then
    begin
      if PtInRect(TShape(Components[i]).BoundsRect, fPos) then
        Caption := 'Farbe: ' + IntToStr(TShape(Components[i]).Brush.Color);
    end;
  end;
end;
MfG Pr0g

TillWe 23. Jul 2005 02:14

Re: Farbwerte von Elementen beim Darüberfahren auslesen
 
Delphi-Quellcode:
procedure TForm1.Shape1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  c:TCanvas;
  pos: TPoint;
begin
  c:=TCanvas.create;
  c.handle:=GetWindowDC(GetDesktopWindow);
  result:=getpixel(c.handle,x,y);
  c.free;
  GetCursorPos(Pos);
  Panel1.Color:=DesktopColor(pos.x, pos.y);
end;

So oder ähnlich :?:

Oder meinst Du was ganz anderes :duck: ?

mfg

Edit: Upps...

Pr0g 23. Jul 2005 02:17

Re: Farbwerte von Elementen beim Darüberfahren auslesen
 
Wie wollt ihr denn bei nem Screenshot unterscheiden ob der Pixel zum Shape gehört? :mrgreen:

Edit: Und im Shape-MouseMove kannst du auch direkt TShape(Sender).Brush.Color abrufen :mrgreen:^2

TillWe 23. Jul 2005 02:25

Re: Farbwerte von Elementen beim Darüberfahren auslesen
 
Zitat:

Edit: Upps...
:spin:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz