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

📄 bspngimageeditor.pas

📁 BusinessSkinForm的控件包与实例
💻 PAS
字号:
{*******************************************************************}
{                                                                   }
{       Almediadev Visual Component Library                         }
{       BusinessSkinForm                                            }
{       Version 6.50                                                }
{                                                                   }
{       Copyright (c) 2000-2008 Almediadev                          }
{       ALL RIGHTS RESERVED                                         }
{                                                                   }
{       Home:  http://www.almdev.com                                }
{       Support: support@almdev.com                                 }
{                                                                   }
{*******************************************************************}

unit bsPngImageEditor;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, bsSkinCtrls, bsPngImage, Buttons;

type
  TbsPNGEditorForm = class(TForm)
    Button1: TButton;
    Button2: TButton;
    OD: TOpenDialog;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    PaintPanel: TbsskinPaintPanel;
    procedure PaintPanelOnPaint(Cnvs: TCanvas; R: TRect);
  public
    { Public declarations }
    FPngImage: TbsPngImage;
  end;

var
  bsPNGEditorForm: TbsPNGEditorForm;

  procedure ExecutePngEditor(AEditImage: TbsPngImage);

implementation

{$R *.DFM}

procedure ExecutePngEditor(AEditImage: TbsPngImage);
var
  F: TbsPNGEditorForm;
begin
  F := TbsPNGEditorForm.Create(Application);
  F.Position := poScreenCenter;
  F.FPngImage.Assign(AEditImage);
  if F.ShowModal = mrOk
  then
    begin
      AEditImage.Assign(F.FPngImage);
    end;
  F.Free;
end;

procedure TbsPNGEditorForm.FormCreate(Sender: TObject);
begin
  FPngImage := TbsPngImage.Create;
  PaintPanel := TbsSkinPaintPanel.Create(Self);
  PaintPanel.SetBounds(96, 8, 251, 251);
  PaintPanel.Parent := Self;
  PaintPanel.OnPanelPaint := PaintPanelOnPaint;
end;

procedure TbsPNGEditorForm.PaintPanelOnPaint(Cnvs: TCanvas; R: TRect);
begin
 Cnvs.Brush.Color := clWhite;
 Cnvs.Brush.Style := bsSolid;
 Cnvs.FillRect(R);
 if not FPngImage.Empty
 then
   begin
     FPngImage.Draw(Cnvs, R);
   end;
end;

procedure TbsPNGEditorForm.Button2Click(Sender: TObject);
begin
  FPngImage.Assign(nil);
  PaintPanel.RePaint;
end;

procedure TbsPNGEditorForm.Button1Click(Sender: TObject);
begin
  if OD.Execute
  then
    begin
      FPngImage.LoadFromFile(OD.FileName);
      PaintPanel.RePaint;
    end;
end;

procedure TbsPNGEditorForm.BitBtn1Click(Sender: TObject);
begin
  ModalResult := mrOk;
end;

procedure TbsPNGEditorForm.BitBtn2Click(Sender: TObject);
begin
  ModalResult := mrCancel;
end;

procedure TbsPNGEditorForm.FormDestroy(Sender: TObject);
begin
  FPngImage.Free;
end;

end.

⌨️ 快捷键说明

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