⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fmain.pas

📁 很好的源代码
💻 PAS
字号:
unit FMain;

interface

uses
  Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs, ToolWin,
  ImgList, ActnList, StdActns, ComCtrls, ExtCtrls, AppEvnts, Menus;

type
  TFrmMain = class(TForm)
    Images: TImageList;
    ActFileOpen: TFileOpen;
    ActFileExit: TFileExit;
    StatusBar: TStatusBar;
    ApplicationEvents: TApplicationEvents;
    ActWindowClose: TWindowClose;
    ActWindowCascade: TWindowCascade;
    ActWindowTileHorizontal: TWindowTileHorizontal;
    ActWindowTileVertical: TWindowTileVertical;
    ActWindowMinimizeAll: TWindowMinimizeAll;
    ActFileSaveAs: TAction;
    ActFileTestCodecs: TAction;
    Actions: TActionList;
    MainMenu: TMainMenu;
    MenuFile: TMenuItem;
    MenuFileOpen: TMenuItem;
    MenuFileSaveAs: TMenuItem;
    N1: TMenuItem;
    MenuFileTestCodecs: TMenuItem;
    N2: TMenuItem;
    MenuFileExit: TMenuItem;
    MenuWindow: TMenuItem;
    MenuWindowClose: TMenuItem;
    N3: TMenuItem;
    MenuWindowCascade: TMenuItem;
    MenuWindowTileHorizontally: TMenuItem;
    MenuWindowTileVertically: TMenuItem;
    N4: TMenuItem;
    MenuWindowMinimizeAll1: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure ActFileOpenAccept(Sender: TObject);
    procedure ApplicationEventsHint(Sender: TObject);
    procedure ActFileSaveAsExecute(Sender: TObject);
    procedure ActFileTestCodecsExecute(Sender: TObject);
    procedure ActionsUpdate(Action: TBasicAction; var Handled: Boolean);
  private
    { Private declarations }
    procedure CMShowingChanged(var Message: TMessage); message CM_SHOWINGCHANGED;
    procedure OpenFile(const Filename: String);
  public
    { Public declarations }
  end;

var
  FrmMain: TFrmMain;

implementation

{$R *.dfm}

uses
  EvBFileFormatPNM, EvBFileFormatJP2, EvBFileFormatJPG, EvBFileFormatAIC,
  EvBGraphics, FImage, FSave, FTester;

procedure TFrmMain.FormCreate(Sender: TObject);
begin
  ActFileOpen.Dialog.Filter := TEvBBitmap.GetFilterString([fsoAllSupportedFiles]);
end;

procedure TFrmMain.ActFileOpenAccept(Sender: TObject);
begin
  OpenFile(ActFileOpen.Dialog.FileName);
end;

procedure TFrmMain.OpenFile(const Filename: String);
var
  Frm: TFrmImage;
  Bitmap: TEvBBitmap;
begin
  Bitmap := TEvBBitmap.Create;
  Screen.Cursor := crHourGlass;
  try
    Bitmap.LoadFromFile(Filename);
    Frm := TFrmImage.Create(Application);
    Frm.Initialize(Bitmap,Filename);
  finally
    Bitmap.Free;
    Screen.Cursor := crDefault;
  end;
end;

procedure TFrmMain.CMShowingChanged(var Message: TMessage);
begin
  inherited;
  if Showing and (ParamCount > 0) then
    OpenFile(ParamStr(1));
end;

procedure TFrmMain.ApplicationEventsHint(Sender: TObject);
begin
  StatusBar.SimpleText := Application.Hint;
end;

procedure TFrmMain.ActFileSaveAsExecute(Sender: TObject);
var
  Frm: TFrmImage;
begin
  if Assigned(ActiveMDIChild) then begin
    Frm := (ActiveMDIChild as TFrmImage);
    SaveFileDialog(Frm.Image.Picture.Bitmap);
  end;
end;

procedure TFrmMain.ActFileTestCodecsExecute(Sender: TObject);
var
  Frm: TFrmImage;
begin
  if Assigned(ActiveMDIChild) then begin
    Frm := (ActiveMDIChild as TFrmImage);
    AlgorithmTesterDialog(Frm.Image.Picture.Bitmap);
  end;
end;

procedure TFrmMain.ActionsUpdate(Action: TBasicAction;
  var Handled: Boolean);
begin
  ActFileSaveAs.Enabled := Assigned(ActiveMDIChild);
  ActFileTestCodecs.Enabled := Assigned(ActiveMDIChild);
end;

end.

⌨️ 快捷键说明

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