War schon länger nicht mehr hier, aber ein ungetestetes Codebeispiel bekommst du trotzdem:
Quelltext
1: 2: 3: 4: 5:
| var dm: TDevMode; ... dm.dmSize := sizeof(TDevMode); dm.dmDriverExtra := 0; EnumDisplaySettings(nil, ENUM_CURRENT_SETTINGS, @dm); |
Achtung: Borland deklariert sowas gerne anders. Wenn's nicht kompiliert, das @ einfach mal wegnehmen.
So, jetzt enthält dm.dmDisplayFrequency die aktuelle Bildwiederholfrequenz.
Diesen DEVMODE änderst du jetzt einfach ab, indem du die Member dmPelsWidth, dmPelsHeight und dmBitsPerPel änderst. Dann musst du das Member dmFields auf (DM_BITSPERPEL or DM_DISPLAYFREQUENCY or DM_PELSWIDTH or DM_PELSHEIGHT) setzen.
Und nun kannst du einfach wie gewohnt ChangeDisplaySettings() aufrufen. Ich empfehle als zweiten Parameter allerdings eine 0, aber da kommt's drauf an was du willst.
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.