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

📄 graphicsresourceform.pas

📁 學習資料網上下載
💻 PAS
字号:
(*======================================================================*
 | GraphicsResourceForm                                                 |
 |                                                                      |
 | Remember:                                                            |
 |                                                                      |
 | The thumbnail image (Image1) contains the master image.  It is in    |
 | the correct format, has the correct palette, is the correct graphic  |
 | type, etc.                                                           |
 |                                                                      |
 | The BitmapEditor image is a pf24Bit format bitmap regardless of the  |
 | thumbnail image's type and format, so it can display non-palette     |
 | color backgrounds for images with palettes.                          |
 |                                                                      |
 | Version  Date        By    Description                               |
 | -------  ----------  ----  ------------------------------------------|
 | 1.0      05/01/2001  CPWW  Original                                  |
 *======================================================================*)

unit GraphicsResourceForm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ResourceForm, cmpPropertyListBox, ExtCtrls, cmpBitmapEditor, unitResourceGraphics,
  cmpColorSelector, unitExIcon, ComCtrls, ImgList, ToolWin,
  cmpSizingPageControl, ActnList, Menus, GifImage;

const
  WM_STATUSBAR = WM_USER + $203;
  WM_ADDIMAGERESOURCE = WM_USER + $204;

type
  TfmGraphicsResource = class(TfmResource)
    pnlLeft: TPanel;
    Splitter1: TSplitter;
    PropertyListBox1: TPropertyListBox;
    Splitter2: TSplitter;
    sbThumbnail: TScrollBox;
    Image1: TImage;
    Panel1: TPanel;
    ScrollBox2: TScrollBox;
    BitmapEditor1: TBitmapEditor;
    SizingPageControl1: TSizingPageControl;
    pnlGraphics: TPanel;
    ImageList1: TImageList;
    pnlColours: TPanel;
    shpBack: TShape;
    shpFore: TShape;
    ColorSelector1: TColorSelector;
    pnlTransparent: TPanel;
    TrackBar1: TTrackBar;
    ToolBar1: TToolBar;
    tbSelectRect: TToolButton;
    tbSelectShape: TToolButton;
    tbDropper: TToolButton;
    tbEraser: TToolButton;
    tbFloodFill: TToolButton;
    tbMagnifier: TToolButton;
    tbPencil: TToolButton;
    tbBrush: TToolButton;
    tbAirbrush: TToolButton;
    ToolButton10: TToolButton;
    ToolButton11: TToolButton;
    ToolButton12: TToolButton;
    tbFrameRect: TToolButton;
    tbFillRect: TToolButton;
    tbRect: TToolButton;
    tbFrameRoundRect: TToolButton;
    tbFillRoundRect: TToolButton;
    tbRoundRect: TToolButton;
    tbFrameEllipse: TToolButton;
    tbFillEllipse: TToolButton;
    tbEllipse: TToolButton;
    MainMenu1: TMainMenu;
    ActionList1: TActionList;
    mnuImage: TMenuItem;
    actImageZoomIn: TAction;
    actImageZoomOut: TAction;
    ZoomIn1: TMenuItem;
    ZoomOut1: TMenuItem;
    ColorDialog1: TColorDialog;
    actImageToolsPalette: TAction;
    actImageColorsPalette: TAction;
    N1: TMenuItem;
    ToolPalettes1: TMenuItem;
    ColorsPalette1: TMenuItem;
    ToolsPalette1: TMenuItem;
    actImageAddImage: TAction;
    AddImage1: TMenuItem;
    N2: TMenuItem;
    PopupMenu1: TPopupMenu;
    AddImage2: TMenuItem;
    N3: TMenuItem;
    ZoomIn2: TMenuItem;
    ZoomOut2: TMenuItem;
    N4: TMenuItem;
    ToolPalettes2: TMenuItem;
    ColorsPalette2: TMenuItem;
    DrawingToolsPalette1: TMenuItem;
    procedure FormShow(Sender: TObject);
    procedure SizingPageControl1DockDrop(Sender: TObject;
      Source: TDragDockObject; X, Y: Integer);
    procedure SizingPageControl1UnDock(Sender: TObject; Client: TControl;
      NewTarget: TWinControl; var Allow: Boolean);
    procedure ColorSelector1ColorSelect(Sender: TObject);
    procedure tbPencilClick(Sender: TObject);
    procedure actImageZoomInExecute(Sender: TObject);
    procedure actImageZoomOutExecute(Sender: TObject);
    procedure ColorSelector1DblClick(Sender: TObject);
    procedure BitmapEditor1EndChange(Sender: TObject);
    procedure BitmapEditor1Change(Sender: TObject);
    procedure pnlTransparentMouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure pnlTransparentDblClick(Sender: TObject);
    procedure BitmapEditor1DrawToolChange(Sender: TObject);
    procedure PropertyListBox1PropertyChanged(Sender: TObject);
    procedure TrackBar1Change(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure actImageColorsPaletteExecute(Sender: TObject);
    procedure actImageToolsPaletteExecute(Sender: TObject);
    procedure mnuImageClick(Sender: TObject);
    procedure BitmapEditor1SelectionRectChange(Sender: TObject);
    procedure PopupMenu1Popup(Sender: TObject);
    procedure actImageAddImageExecute(Sender: TObject);
  private
    fPCWidth : Integer;
    details : TGraphicsResourceDetails;

    procedure SetPaletteForPixelFormat (reset : Boolean);
  protected
    procedure SetObject(const Value: TObject); override;
    function GetMenuItem : TMenuItem; override;
    function GetImportExportType: TImportExportType; override;

    function GetCanCut : Boolean; override;
    function GetCanCopy : Boolean; override;
    function GetCanPaste : Boolean; override;
    function GetCanSelectAll : Boolean; override;
    function GetCanDelete : Boolean; override;

  public
    procedure PreviewKey (var key : Word; shift : TShiftState); override;
    procedure SaveResource (const undoDetails : string);
    procedure SelectAll; override;
    procedure EditDelete; override;
    procedure Copy; override;
    procedure Cut; override;
    procedure Paste; override;
  end;

var
  fmGraphicsResource: TfmGraphicsResource;

implementation

uses ClipBrd, Jpeg;

{$R *.DFM}

resourcestring
  rstPaletteChange = 'change palette';          // 'Undo' descriptions
  rstRotate270     = 'rotate 90

⌨️ 快捷键说明

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