Announcement

Collapse
No announcement yet.

TSpeedButton abwandeln (maussensitiv)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TSpeedButton abwandeln (maussensitiv)

    Hallo,<br>
    wie kann man den Text eines SpeedButton Blau einfärben, wenn man über den Button fährt und als Standard Flat:= true festlegen?
    Ich habe hier schon mal früher ein Beispiel zum abändern von Buttons gesehen, doch ich finde es nicht mehr. Kann mir jemand helfen und hat vielleicht auch einen Tipp zu einen Buch hierfür?

    Danke Alex.

  • #2
    Moin Alex,<br>probier mal diese Komponente:
    <pre>
    <font size="1" face="Verdana">unit JsELSpeedButton;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    Buttons;

    type
    TJsELSpeedButton = class(TSpeedButton)
    private
    fMouseLeave: TNotifyEvent;
    fMouseEnter: TNotifyEvent;
    { Private-Deklarationen }
    protected
    { Protected-Deklarationen }
    procedure CMMouseEnter(Var Message : TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(Var Message : TMessage); message CM_MOUSELEAVE;
    public
    { Public-Deklarationen }
    constructor Create(AOwner : TComponent); override;
    published
    { Published-Deklarationen }
    property OnMouseEnter : TNotifyEvent read fMouseEnter write fMouseEnter;
    property OnMouseLeave : TNotifyEvent read fMouseLeave write fMouseLeave;
    end;

    procedure Register;

    implementation

    procedure Register;
    begin
    RegisterComponents('MyComps', [TJsELSpeedButton]);
    end;

    { TJsELSpeedButton }

    procedure TJsELSpeedButton.constructor Create(AOwner : TComponent);
    begin
    inherited Create(AOwner);
    Flat:=True;
    end;

    procedure TJsELSpeedButton.CMMouseEnter(var Message: TMessage);
    begin
    inherited;
    If Enabled then
    begin
    Font.Color:=clBlue;
    If Assigned(fMouseEnter) then fMouseEnter(Self);
    end;
    end;

    procedure TJsELSpeedButton.CMMouseLeave(var Message: TMessage);
    begin
    inherited;
    Font.Color:=clBlack;
    If Enabled then
    If Assigned(fMouseLeave) then fMouseLeave(Self);
    end;

    end.
    </font></pre>
    <br>Die Sache mit Font.Color könnte man noch etwas geschickter lösen.
    Z.B. die original Farbe irgendwo speichern.
    <br>:-) Jens Schuman

    Comment


    • #3
      Hallo,
      vielen Dank

      Comment

      Working...
      X