Thema: Delphi Transparente Checkbox

Einzelnen Beitrag anzeigen

Schauries

Registriert seit: 6. Mär 2005
Ort: Essen
5 Beiträge
 
#3

Re: Transparente Checkbox

  Alt 6. Mär 2005, 18:23
Hallo,
vielen Dank für die schnelle Antwort!
Also dass mit dem WinControl geht schon. Ich mach das über:

TMyCheckBox = class(TCustomControl)

gekürzt...

Delphi-Quellcode:
  private
    procedure CMEnabledChanged(var Msg: TMessage); message CM_ENABLEDCHANGED;
    procedure CMDialogChar(var Msg: TCMDialogChar); message CM_DIALOGCHAR;
    procedure CMFontChanged(var Msg: TMessage); message CM_FONTCHANGED;
    procedure CMTextChanged(var Msg: TMessage); message CM_TEXTCHANGED;
    procedure CMSysColorChange(var Msg: TMessage); message CM_SYSCOLORCHANGE;
    procedure CMCtl3DChanged(var Msg: TMessage); message CM_CTL3DCHANGED;
    procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS;
    procedure WMKillFocus(var Message: TWMKillFocus); message WM_KILLFOCUS;
    procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN;
    procedure WMMouseMove(var Message: TWMMouseMove); message WM_MOUSEMOVE;
    procedure WMLButtonUp(var Message: TWMLButtonUp); message WM_LBUTTONUP;
    procedure WMRButtonDown(var Message: TWMLButtonDown); message WM_RBUTTONDOWN;
    procedure WMLButtonDblClk(var Message: TWMLButtonDblClk); message WM_LBUTTONDBLCLK;
    procedure WMEraseBkgnd(var Message: TWmEraseBkgnd); message WM_ERASEBKGND;
    procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
    procedure WMSize(var Message: TWMSize); message WM_SIZE;
    procedure WMMove(var Message: TWMMove); message WM_MOVE;
    procedure WMPaint(var Message: TWMPaint); message WM_PAINT;

und…
  protected
    procedure Paint; override;
    procedure Click; override;
    procedure CreateWnd; override;
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
    procedure Toggle; virtual;
Aber es zeichnet sich nicht immer sauber in den Vordergrund. Lege ich die Checkbox auf ein Image und erhält das Image ein Invalidate, ist meine Checkbox weg. Erst durch anklicken oder Fokuserhalt tritt sie wieder in den Vordergrund.
Ich zeichne auch den Ankreuzhaken selber mit einem kleinen Bitmap. Das ganze hat also mit einer ursprünglichen Checkbox nichts mehr zu tun.

Ich würde auf mein Selbstgebasteltes gerne verzichten, wenn ich doch eine Alternative fände ...
Gruß,
Dirk Schauries

[edit=sakura] [delphi]Tags. Mfg, sakura[/edit]
Schauries
  Mit Zitat antworten Zitat