Mam jedno (proste?) pytanie: jak odczytać z czcianki systemowe Windowsa? (tzn. domyślną czcionkę messageboxów, editów, etc.)
Napisze Ci tylko tyle że 99% ustawień Windowsa jest w Rejstrze
Napisze Ci tylko tyle że 99% ustawień Windowsa jest w Rejstrze
przeskanowałem rejestr mojego w2k i wyraz Tahoma znalazłem tylko w otoczeniu nazw wszystkich innych czcionek. więc gdzie to siedzi?
[dopisane]
no cóż, nic dziwnego, że nie mogłem tego znaleźć w rejestrze.
Napisze Ci tylko tyle że 99% ustawień Windowsa jest w Rejstrze
przeskanowałem rejestr mojego w2k i wyraz Tahoma znalazłem tylko w otoczeniu nazw wszystkich innych czcionek. więc gdzie to siedzi?
Może to jest to 1% :)
W rejestrze to jest
HKEY_CURRENT_USER\Control Panel\Appearance\Schemes
Dzieki za odpowiedź... W końcu jednak znalazłem odpowiedź w helpie Windowsowskim (win32.hlp).
var ncm:NONCLIENTMETRICS;
begin
ncm.cbSize:=SizeOf(ncm);
SystemParametersInfo(SPI_GETNONCLIENTMETRICS,0,@ncm,0);
Button1.Font.Name:=ncm.lfMessageFont.lfFaceName;
end;
Ale problem jest dalej... :/ Akurat potrzebowałem czcionki, która jest pod ikonkami w explorerze, a w tym NONCLIENTMETRICS tego nie ma :/
Znalazłem te ustawienia w rejestrze (HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics), i wiem że są one zapisane tak jak w strukturze LOGFONT. Ale, jak piszę
var lf:LOGFONT;
begin
r.ReadBinaryData('IconFont',lf,SizeOf(lf));
end;
To mi wyskakuje "Invalid data type for 'IconFont'"... Mam winXP. A tak w ogóle, to nie wiem czy się da odczytywać "BinaryData" z rejestru, które zostały tam dodane przez windowsa (w winXP)... :/ [glowa]
O! Ten problem też już rozwiązałem, stosując funkcje WinAPI do obsługi rejestru... (RegOpenKeyEx, RegQueryValueEx...)