unit4.pas

来自「3d snake 游戏编程源码」· PAS 代码 · 共 101 行

PAS
101
字号
unit Unit4;

interface

uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, Buttons, StdCtrls, ExtCtrls, Unit2, ComCtrls;

type
   TFormOption = class(TForm)
      PageControl1: TPageControl;
      TabSheet1: TTabSheet;
      TabSheet2: TTabSheet;
      btnCancel: TSpeedButton;
      Label1: TLabel;
      TrackBarAlpha: TTrackBar;
      ListBoxColors: TListBox;
      Label2: TLabel;
      ColorBox: TColorBox;
      Label3: TLabel;
      Label4: TLabel;
      Label5: TLabel;
      Label6: TLabel;
      chkShowGrid: TCheckBox;
      Label7: TLabel;
      Label8: TLabel;
      Label9: TLabel;
      Label10: TLabel;
      chkLightOn: TCheckBox;
      btnOk: TSpeedButton;
      chkShowAidLine: TCheckBox;
      procedure btnOkClick(Sender: TObject);
      procedure ColorBoxSelect(Sender: TObject);
      procedure ListBoxColorsMouseDown(Sender: TObject; Button: TMouseButton;
         Shift: TShiftState; x, y: Integer);
      procedure FormShow(Sender: TObject);
      procedure ListBoxColorsMouseUp(Sender: TObject; Button: TMouseButton;
         Shift: TShiftState; x, y: Integer);
    procedure btnCancelClick(Sender: TObject);
   private
    { Private declarations }
   public
      tmpColors: GameOptionColors;
   end;

var
   FormOption: TFormOption;

implementation
uses Unit1, Unit3;
{$R *.dfm}

procedure TFormOption.btnOkClick(Sender: TObject);
begin
   with GameOption do begin
      WallAlpha := Round(TrackBarAlpha.Position / 100 * 255);
      GameOption.ShowGrid := chkShowGrid.Checked;
      LightOn := chkLightOn.Checked;
      ShowAidLine := chkShowAidLine.Checked;
      GameOption.Colors := tmpColors;
      RGBGameColors;
   end;
   Close;
end;

procedure TFormOption.ColorBoxSelect(Sender: TObject);
begin
   tmpColors[ObjNames(ListBoxColors.ItemIndex)] := ColorBox.Selected;
end;

procedure TFormOption.FormShow(Sender: TObject);
begin
   TrackBarAlpha.Position := Round(GameOption.WallAlpha / 255 * 100);
   tmpColors := GameOption.Colors;
   ListBoxColors.Selected[0] := True;
   ColorBox.Selected := tmpColors[obj_Wall];
   chkShowGrid.Checked := GameOption.ShowGrid;
   chkLightOn.Checked := GameOption.LightOn;
   chkShowAidLine.Checked := GameOption.ShowAidLine;
end;

procedure TFormOption.ListBoxColorsMouseDown(Sender: TObject;
   Button: TMouseButton; Shift: TShiftState; x, y: Integer);
begin
   ColorBox.Selected := tmpColors[ObjNames(ListBoxColors.ItemIndex)];
end;

procedure TFormOption.ListBoxColorsMouseUp(Sender: TObject;
   Button: TMouseButton; Shift: TShiftState; x, y: Integer);
begin
   ColorBox.Selected := tmpColors[ObjNames(ListBoxColors.ItemIndex)];

end;

procedure TFormOption.btnCancelClick(Sender: TObject);
begin
   Close;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?