// Hiermit kann man
die Schriftart in der Captionbar aller Fenster ändern,
// ohne dass bei "Eigenschaft der Anzeige" das Schema geändert wird.
// Getestet mit D4 unter WinME
// --- Bei W7 muss man Windows-Theme abschalten.
Mit D2010: ---
uses
UxTheme;
procedure TForm2.FormActivate(Sender:
TObject);
begin
SetWindowTheme(Handle,
'',
'');
end;
// -----------------------------------------------------------
var
ncm: NONCLIENTMETRICS;
CaptionFontMerk: array[0..32] of char;
gemerkt: boolean = false;
procedure MerkCaptionFontName;
begin
if gemerkt then exit;
zeromemory(@CaptionFontMerk, sizeof(CaptionFontMerk));
ncm.cbSize := sizeof(NONCLIENTMETRICS);
systemparametersinfo(SPI_GETNONCLIENTMETRICS, 0, @ncm, 0);
lstrcpy(CaptionFontMerk, ncm.lfCaptionFont.lfFaceName);
gemerkt := true;
end;
procedure CaptionFontAendern(p: Pchar);
begin
if (p <> nil) and gemerkt then begin
lstrcpy(ncm.lfCaptionFont.lfFaceName, p);
systemparametersinfo(SPI_SETNONCLIENTMETRICS, 0, @ncm,
SPIF_UPDATEINIFILE);
end;
end;
// Schrift in Captionbar ändern
procedure TForm1.Button5Click(Sender: TObject);
begin
screen.cursor := crHourglass;
MerkCaptionFontName;
CaptionFontAendern('Courier New');
screen.cursor := crdefault;
end;
// Schrift in Captionbar zurücksetzen
procedure TForm1.Button6Click(Sender: TObject);
begin
screen.cursor := crHourglass;
CaptionFontAendern(CaptionFontMerk);
screen.cursor := crdefault;
end;
|