uoptionspage.pas

来自「FMA is a free1 powerful phone editing to」· PAS 代码 · 共 108 行

PAS
108
字号
unit uOptionsPage;

{
*******************************************************************************
* Descriptions: Edit Options custom page settings
* $Source: /cvsroot/fma/fma/Attic/uOptionsPage.pas,v $
* $Locker:  $
*
* Todo:
*
* Change Log:
* $Log: uOptionsPage.pas,v $
*
*******************************************************************************
}

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, TntStdCtrls, ComCtrls, TntComCtrls, uOptions, ExtCtrls;

type
  TfrmOptionsPage = class(TForm)
    btnPageOK: TTntButton;
    btnPageCancel: TTntButton;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure btnPageOKClick(Sender: TObject);
  private
    { Private declarations }
    FOptions: TfrmOptions;
  public
    { Public declarations }
    function ShowPageModal(ATab: TTntTabSheet; ACaption: WideString = ''): Integer; virtual;
    property Options: TfrmOptions read FOptions;
  end;

var
  frmOptionsPage: TfrmOptionsPage;

implementation

uses
  gnugettext, gnugettexthelpers, uDialogs;

{$R *.dfm}

procedure TfrmOptionsPage.FormCreate(Sender: TObject);
begin
  gghTranslateComponent(self);

  FOptions := TfrmOptions.Create(nil);

  ClientWidth := FOptions.OptionPages.Width;
  ClientHeight := FOptions.OptionPages.Height + 33;

  FOptions.OptionPages.Parent := Self;
  FOptions.OptionPages.Left := 0;
  FOptions.OptionPages.Top := 0;

  FOptions.btnDefaults.Parent := Self;
  FOptions.btnDefaults.Top := btnPageOK.Top;

  FOptions.OptionPages.Height := ClientHeight - 33;
{$IFNDEF VER150}
  Form1.ThemeManager1.CollectForms(Self);
{$ENDIF}
end;

procedure TfrmOptionsPage.FormDestroy(Sender: TObject);
begin
  FOptions.OptionPages.Parent := FOptions;
  FOptions.btnDefaults.Parent := FOptions;
  FOptions.Free;
end;

function TfrmOptionsPage.ShowPageModal(ATab: TTntTabSheet; ACaption: WideString): Integer;
var
  i,j,h: Integer;
begin
  if ACaption = '' then ACaption := WideFormat(_('%s Options'),[ATab.Caption]);
  Caption := ACaption;

  { Adjust window height according to Tab widgets }
  h := 0;
  for i := 0 to ATab.ControlCount-1 do begin
    with ATab.Controls[i] do j := Top + Height;
    if j > h then h := j;
  end;
  if h <> 0 then begin
    ClientHeight := h + 49;
    FOptions.OptionPages.Height := h + 16;
  end;
  FOptions.OptionPages.ActivePage := ATab;
  FOptions.OptionPagesChange(nil);

  Result := ShowModal;
end;

procedure TfrmOptionsPage.btnPageOKClick(Sender: TObject);
begin
  Options.SanityCheck;
  ModalResult := mrOk;
end;

end.

⌨️ 快捷键说明

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