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

📄 addpicdlg.pas

📁 delphi 皮肤控件
💻 PAS
字号:
unit AddPicDlg;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Buttons, StdCtrls, ExtCtrls, bsPropertyEditor, ExtDlgs;

type
  TLoadPicForm = class(TForm)
    Panel1: TPanel;
    LoadButton: TButton;
    ClearButton: TButton;
    ScrollBox1: TScrollBox;
    PB: TPaintBox;
    PD: TOpenPictureDialog;
    BitBtn1: TBitBtn;
    procedure LoadButtonClick(Sender: TObject);
    procedure PBPaint(Sender: TObject);
    procedure ClearButtonClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormHide(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    { Private declarations }
  public
    { Public declarations }
    SelfB: TBitMap;
    B: TBitMap;
    P: TbsProperty;
    PictureName: String;
  end;

var
  LoadPicForm: TLoadPicForm;


  procedure Execute(AB: TBitMap; AP: TbsProperty; APictureName: String;
                    CBEnabled: Boolean);

implementation

{$R *.DFM}

  Uses bsUtils;

procedure Execute;
begin
  with LoadPicForm do
  begin
    B := AB;
    P := AP;
    ClearButton.Enabled := CBEnabled;
    PictureName := APictureName;
    ShowModal;
  end;
end;


procedure TLoadPicForm.LoadButtonClick(Sender: TObject);
begin
  if PD.Execute
  then
    begin
      PictureName := ExtractFileName(PD.FileName);
      if P <> nil then P.Value := PictureName;
      SelfB.LoadFromFile(PD.FileName);
      if B <> nil then B.Assign(SelfB);  
      PB.Width := SelfB.Width;
      PB.Height := SelfB.Height;
      PB.Repaint;
    end;
end;

procedure TLoadPicForm.PBPaint(Sender: TObject);
begin
  if (SelfB <> nil) and not SelfB.Empty
  then
    PB.Canvas.Draw(0, 0, SelfB);
end;

procedure TLoadPicForm.ClearButtonClick(Sender: TObject);
begin
  if B <> nil then B.Assign(nil);
  SelfB.Assign(nil);
  PictureName := '';
  if P <> nil then P.Value := '';
  PB.RePaint;
end;

procedure TLoadPicForm.FormShow(Sender: TObject);
begin
  SelfB := TBitMap.Create;
  SelfB.Assign(B);
  if SelfB.Empty
  then
    begin
      PB.Width := 0;
      PB.Height := 0;
    end
  else
    begin
      PB.Width := SelfB.Width;
      PB.Height := SelfB.Height;
    end;
end;

procedure TLoadPicForm.FormHide(Sender: TObject);
begin
  SelfB.Free;
end;

procedure TLoadPicForm.BitBtn1Click(Sender: TObject);
begin
  Close;
end;

end.

⌨️ 快捷键说明

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