if dm.dmPelsWidth<>0 then dm.dmFields := DM_PELSWIDTH
Нет точки с запятой в конце if dm.DisplayFrequency<>0 then dm.dmFields := dm.dmFields or DM_DISPLAYFREQUENCY;
Должно быть так if dm.dmDisplayFrequency<>0 then dm.dmFields := dm.dmFields or DM_DISPLAYFREQUENCY;
MSDN писал(а),
У меня 32. а там про это ненаписано