home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 23 / IOPROG_23.ISO / SOFT / DELPHIX.ZIP / Samples / Graphic / DisplayModeChanger / Unit1.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1998-10-06  |  1.7 KB  |  83 lines

  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   Menus, DXDraws, DXClass, StdCtrls;
  8.  
  9. type
  10.  
  11.   TForm1 = class(TDXForm)
  12.     DXDraw: TDXDraw;
  13.     MainMenu1: TMainMenu;
  14.     FileMenu: TMenuItem;
  15.     FileExit: TMenuItem;
  16.     ModesMenu: TMenuItem;
  17.     procedure FileExitClick(Sender: TObject);
  18.     procedure DXDrawInitialize(Sender: TObject);
  19.   private
  20.     procedure ModeItemClick(Sender: TObject);
  21.   end;
  22.  
  23. var
  24.   Form1: TForm1;
  25.  
  26. implementation
  27.  
  28. {$R *.DFM}
  29.  
  30. procedure TForm1.FileExitClick(Sender: TObject);
  31. begin
  32.   Close;
  33. end;
  34.  
  35. procedure TForm1.ModeItemClick(Sender: TObject);
  36. var
  37.   s: string;
  38.   i, AWidth, AHeight, ABitCount: Integer;
  39. begin
  40.   DXDraw.Finalize;
  41.  
  42.   s := TMenuItem(Sender).Caption;
  43.  
  44.   i := Pos('x', s);
  45.   AWidth := StrToInt(Copy(s, 1, i-1));
  46.   s := Copy(s, i+1, Length(s));
  47.  
  48.   i := Pos('x', s);
  49.   AHeight := StrToInt(Copy(s, 1, i-1));
  50.   s := Copy(s, i+1, Length(s));
  51.  
  52.   ABitCount := StrToInt(s);
  53.  
  54.   DXDraw.Display.Width := AWidth;
  55.   DXDraw.Display.Height := AHeight;
  56.   DXDraw.Display.BitCount := ABitCount;
  57.   DXDraw.Options := DXDraw.Options + [doFullScreen];
  58.   DXDraw.Initialize;
  59. end;
  60.  
  61. procedure TForm1.DXDrawInitialize(Sender: TObject);
  62. var
  63.   i: Integer;
  64.   MenuItem: TMenuItem;
  65. begin
  66.   for i:=ModesMenu.Count-1 downto 0 do
  67.     ModesMenu.Items[0].Free;
  68.  
  69.   for i:=0 to DXDraw.Display.Count-1 do
  70.   begin
  71.     MenuItem := TMenuItem.Create(ModesMenu);
  72.     with MenuItem do
  73.     begin
  74.       Caption := Format('%dx%dx%d', [DXDraw.Display.Modes[i].Width,
  75.         DXDraw.Display.Modes[i].Height, DXDraw.Display.Modes[i].BitCount]);
  76.       OnClick := ModeItemClick;
  77.     end;
  78.     ModesMenu.Add(MenuItem);
  79.   end;
  80. end;
  81.  
  82. end.
  83.