Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Hovereffekt bei Editfeldern/Buttons/usw. (https://www.delphipraxis.net/61146-hovereffekt-bei-editfeldern-buttons-usw.html)

arest 17. Jan 2006 16:23


Hovereffekt bei Editfeldern/Buttons/usw.
 
Hallo Leute,

hab ne kurze und wahrscheinlich sehr simple Frage. Wie kann ich diesen "Hovereffekt" erzeugen, der in diversen Programmen vorkommt? Sprich, ich fahre mit der Maus über ein Editfeld und dadurch verändert sich der "Rand" also, der Border, auf eine blaue Farbe. (Nix Code?!)

(bin nicht sicher, wie die programmiersprache ist -.- ich benutze halt borland delphi 6 :D )

mfg arest

Schaedel 17. Jan 2006 16:25

Re: Hovereffekt bei Editfeldern/Buttons/usw.
 
Herzlich Willkommen!

Ich denke das schaffst du nur wenn du den Button im Canvas neu zeichnest.

arest 17. Jan 2006 18:35

Re: Hovereffekt bei Editfeldern/Buttons/usw.
 
okay, canavas habe ich weniger als 0 ahnung von... gibt es sonst noch irgendeine andere möglichkeit dies umzusetzen?!

marabu 17. Jan 2006 18:42

Re: Hovereffekt bei Editfeldern/Buttons/usw.
 
Hi, ich vermute fast, dass du die ganz normalen XP Standard Animationen meinst, die man in eigenen Programmen über das XPManifest aktiviert. Wenn nicht, dann ignoriere einfach diesen Beitrag.

Grüße vom marabu

arest 17. Jan 2006 18:57

Re: Hovereffekt bei Editfeldern/Buttons/usw.
 
ich hab ja ne ganze weile gesucht, aber keine ahnung, was du mit diesem xp-manifest meinst -.- kannst de das maybe bisschen erläutern?!

Sharky 17. Jan 2006 19:02

Re: Hovereffekt bei Editfeldern/Buttons/usw.
 
Hai arest,

wenn Du zufällig die aktuelle Version der Jedi-VCL installiert hast ist dort ein Edit dabei welches das so macht wie Du möchtest.

arest 17. Jan 2006 19:03

Re: Hovereffekt bei Editfeldern/Buttons/usw.
 
herje, dass die leute hier immer so unschlüssige sachen zum besten geben :D woher soll ich (guck mal wieviele beiträge ich habe) denn wissen was das ist? any help is welcome^^

Sharky 17. Jan 2006 19:10

Re: Hovereffekt bei Editfeldern/Buttons/usw.
 
:stupid:

Die JVCL ist eine Sammlung von visuellen Komponenten welche man, wenn man sie denn verwenden möchte, installieren muss.

marabu 17. Jan 2006 19:13

Re: Hovereffekt bei Editfeldern/Buttons/usw.
 
Und XPManifest ist eine Komponente aus der Win32-Palette (bei D7) - trag mal möglichst bald die von dir verwendete Delphi-Version in deinem Profil ein, damit man weiß, wie man dir helfen muss.

marabu

Sharky 17. Jan 2006 19:24

Re: Hovereffekt bei Editfeldern/Buttons/usw.
 
@marabu:

Ist dieser "Hovereffekt" nicht eine Eigenschaft von .NET Edits und Co?

marabu 17. Jan 2006 19:38

Re: Hovereffekt bei Editfeldern/Buttons/usw.
 
Vielleicht - aber doch nicht ausschließlich. Allerdings ist der Hover-Effekt von XP nicht blau, sonder eher caramel.

marabu

Sharky 17. Jan 2006 19:40

Re: Hovereffekt bei Editfeldern/Buttons/usw.
 
So oder so,

ich habe hier mal schnell etwas getippelt:

Delphi-Quellcode:
const
  HoverColor: TColor = TColor($00733800);
  FocusColor: TColor = clBlue;

procedure DrawControlRect(AHandel: HWND; AColor: TColor);
 // Diese Procedure habe ich im großen und ganzen bei
 // den Jedis "geklaut"
var
  LHDC:   HDC;
  LRect:  TRect;
  LCanvas: TCanvas;
begin

  LHDC := GetWindowDC(AHandel);
  try
    GetWindowRect(AHandel, LRect);
    OffsetRect(LRect, -LRect.Left, -LRect.Top);
    LCanvas := TCanvas.Create;
    with LCanvas do
    begin
      try
        Handle := LHDC;
        Brush.Color := AColor;
        FrameRect(LRect);
        InflateRect(LRect, -1, -1);
        FrameRect(LRect);
      finally
        Free;
      end;
    end;
  finally
    ReleaseDC(AHandel, LHDC);
  end;
end;

procedure TForm1.AllEditEdit(Sender: TObject);
begin
  DrawControlRect((Sender as TWinControl).Handle, FocusColor);
end;

procedure TForm1.AlleditExit(Sender: TObject);
begin
  (Sender as TWinControl).Perform(CM_RECREATEWND, 0, 0);
end;

procedure TForm1.AllEditMouseEnter(Sender: TObject);
begin
  with (Sender as TWinControl) do
  begin
    if not (Focused) then
    begin
      DrawControlRect(Handle, HoverColor);
    end;
  end;
end;

procedure TForm1.AllEditMouseLeave(Sender: TObject);
begin
  with (Sender as TWinControl) do
  begin
    if not (Focused) then
    begin
      (Sender as TWinControl).Perform(CM_RECREATEWND, 0, 0);
    end;
  end;
end;

arest 17. Jan 2006 20:05

Re: Hovereffekt bei Editfeldern/Buttons/usw.
 
danke für eure hilfe, ich verstehe zwar nicht so recht, was du da alles machst, aber ich gucke es mir noch in ruhe an, im übrigen habe ich jetzt dieses xpmenu gefunden un installiert... es funktioniert halbwegs so wie ich es mir vorgestellt habe. ich brauche keine weitere hilfe mehr. ihr dürft natürlich weiter diskutieren (großzügig oder? :D)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 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