type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private-Deklarationen }
public
procedure WMNCPaint(var Msg: TMessage); message WM_NCPAINT;
procedure WMNCActivate(var MSG: TMessage); message WM_NCActivate;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
(*
uses UxTheme;
procedure TForm1.FormActivate(Sender: TObject);
begin
SetWindowTheme(Handle, '', '');
end;
*)
const
txt: string = 'Das ist mein Text';
links: integer = 32;
SchriftFarbeAktiv: TColor = clYellow;
SchriftFarbeInAktiv: TColor = clSilver;
SchriftName: string = 'Courier New';
SchriftGroesse: integer = 12;
SchriftStil = [fsBold, fsItalic];
var
DC: HDC;
cnv: TCanvas;
oben: integer;
procedure TForm1.FormCreate(Sender: TObject);
var
h: integer;
begin
DC := GetWindowDC(Handle);
cnv := TCanvas.Create;
with cnv do begin
handle := DC;
SetBkMode(handle, TRANSPARENT);
font.name := SchriftName;
font.size := Schriftgroesse;
font.style := SchriftStil;
h := Textheight(txt);
end;
oben := GetSystemMetrics(SM_CYFRAME) + (GetSystemMetrics(SM_CYCAPTION) - h) div 2;
caption := '';
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
cnv.Free;
ReleaseDC(Handle, DC);
end;
procedure TForm1.WMNCPaint(var Msg: TMessage);
begin
if GetForegroundWindow = Handle then
cnv.font.color := SchriftFarbeAktiv else
cnv.font.color := SchriftFarbeInAktiv;
inherited;
cnv.TextOut(links, oben, txt);
end;
procedure TForm1.WMNCActivate(var MSG: TMessage);
begin
inherited;
WMNCPaint(Msg);
end;