Avatar billede kim_bille Nybegynder
01. januar 2000 - 17:34 Der er 4 kommentarer og
1 løsning

Opløsning på skærm

Hvordan ændres opløsning fra Delphi
Avatar billede retep Nybegynder
01. januar 2000 - 17:54 #1
Dette ændre skærmopløsningen til 1024*768 pixels...

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
procedure SetRes(XRes, YRes: DWord);
var
lpDevMode : TDeviceMode;
begin
EnumDisplaySettings(nil, 0, lpDevMode);
lpDevMode.dmFields:=DM_PELSWIDTH or DM_PELSHEIGHT;
lpDevMode.dmPelsWidth:=XRes;
lpDevMode.dmPelsHeight:=YRes;
ChangeDisplaySettings(lpDevMode, 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetRes(1024,768);
end;

end.
Avatar billede michaelras Nybegynder
03. januar 2000 - 16:13 #2
Retep: du ved vel ikke også hvordan man ændre antal farver ???

Har nemlig aldrig kunne får det til at virke...

Hvis ja skal jeg nok lave et spørgsmål til dig

Michael
Avatar billede retep Nybegynder
03. januar 2000 - 16:22 #3
Ikke lige umiddelbart... Prøv at stille spørgsmålet, det kan da sagtens være at der er andre der ved det...

Mvh
Retep :-)
Avatar billede michaelras Nybegynder
03. januar 2000 - 17:47 #4
Har gjort (et stykke tid siden) men forgæves også på experts-exchange også der forgæves

Michael
Avatar billede labomba Nybegynder
14. januar 2000 - 12:26 #5
Det er nøjagtigt det samme API kald du skal bruge, og nej, du behøver ikke at genstarte hvis du bare bruger win98, så deeet... Her er en opdateret version af proceduren:


Procedure SetWinRes(HardMaxX, HardMaxY, HardBPP: DWord);
var
WinRes : TDeviceMode;
begin
EnumDisplaySettings(nil, 0, WinRes);
WinRes.dmFields:=DM_PELSWIDTH or DM_PELSHEIGHT or DM_BITSPERPEL;
WinRes.dmPelsWidth :=HardMaxX;
WinRes.dmPelsHeight:=HardMaxY;
WinRes.dmBitsPerPel:=HardBPP;
ChangeDisplaySettings(WinRes, 0);
end;


HardMaxX og HardMaxY er skærmens bredde og vidde, og HardBPP er antal Bits Pr. Pixel, altså normalt 16 eller 24.
Eksempel: Får at sætte windows opløsning til 800*600 pixels med 16.777.216 (24 bit) farver skrives:

  SetWinRes(800,600,24);

Håber at det er svar nok på dit spørgsmål, og JA, det virker. Ihertfald på min bærbare win98 maskine.



-Rasmus -<BomB>-
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester