Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.623 Beiträge
Delphi 12 Athens
|
Re: TrackBar Umrandung bzw. Tab entfernen?
12. Mär 2009, 16:37
Das mit WS_TABSTOP hat bei mir leider nicht funktioniert. Nach ein paar Versuchen (Delphi 5 unter XP SP 3) ist mein jetziger Stand dieser, scheint bisher zu funktionieren, Garantien übernehme ich aber keine:
Delphi-Quellcode:
unit Nix;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls;
type
TTrackBar = class(ComCtrls.TTrackBar)
private
FOldWnd: HWnd;
procedure WMSetFocus( var Msg: TWMSetFocus);
message WM_SETFOCUS;
procedure WMPaint( var Msg: TWMPaint);
message WM_PAINT;
end;
TForm1 = class(TForm)
TrackBar1: TTrackBar;
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TTrackBar.WMSetFocus( var Msg: TWMSetFocus);
begin
inherited;
FOldWnd := Msg.FocusedWnd;
end;
procedure TTrackBar.WMPaint( var Msg: TWMPaint);
var DC: hDC;
R: TRect;
begin
inherited;
if (GetFocus = self.Handle) and (FOldWnd <> self.Handle) then
begin
DC := GetWindowDC(self.Handle);
if DC <> 0 then
try
R := Rect(0,0,self.Width,self.Height);
DrawFocusRect( DC,R);
FOldWnd := self.Handle;
finally
ReleaseDC(self.Handle, DC);
end;
end;
end;
end.
Detlef "Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
|
|
Zitat
|