zoukankan      html  css  js  c++  java
  • (原创)自己写的一个仿IMAGE功能的MEMO

    unit TestMemo;


    interface

    uses
      Windows, Classes, StdCtrls, Graphics, Controls, SysUtils, jpeg, Messages;

    type
      Test = class(TMemo)
      private
        Test: string;
        FCanvas: TCanvas;
        FPicture: TPicture;
        procedure SetPicture(Value: TPicture);
      published
        property Picture: TPicture read FPicture write SetPicture;
      public
        constructor Create(AOwner: TComponent); override;
        destructor Destroy; override;
        function LoadFromFile(FilePath: String; Memo: TWinControl): Boolean; overload;
        function LoadFromFile(FilePath: String): Boolean; overload;
        procedure Wmpiant(var Msg: Tmessage); message WM_PAINT;
      end;

    procedure Register;


    implementation

    procedure Register;
    begin
      RegisterComponents('Memo', [Test]);
    end;

    { Test }

    constructor Test.Create(AOwner: TComponent);
    begin
      inherited;
      FCanvas := TControlCanvas.Create;
      TControlCanvas(FCanvas).Control := Self;
      FPicture := TPicture.Create;
    end;

    //传入可视控件都可以
    function Test.LoadFromFile(FilePath: String; Memo: TWinControl): Boolean;
    begin
      if Not FileExists(FilePath) then
        Exit;
      TControlCanvas(FCanvas).Control := Memo;
      FPicture.LoadFromFile(FilePath);
      FCanvas.Draw(0,0, FPicture.Graphic);
    end;

    destructor Test.Destroy;
    begin
      FCanvas.Free;
      FPicture.Free;
      FCanvas := nil;
      FPicture := nil;
      inherited;
    end;

    function Test.LoadFromFile(FilePath: String): Boolean;
    begin
      if Not FileExists(FilePath) then
        Exit;
      FPicture.LoadFromFile(FilePath);
      FCanvas.Draw(0,0, FPicture.Graphic);
    end;

    procedure Test.SetPicture(Value: TPicture);
    begin
      FPicture.Assign(Value);
      FCanvas.Draw(0,0, FPicture.Graphic);
    end;

    procedure Test.Wmpiant(var Msg:Tmessage);
    begin
      if Msg.Msg = WM_PAINT then
      begin
        if Assigned(FPicture)  and Assigned(FCanvas) then
          FCanvas.Draw(0,0, FPicture.Graphic);
      end;
    end;

    end.

  • 相关阅读:
    如何编写一个shellcode
    SQL_MODE设置讲解
    centOS7 安装man中文手册
    CentOS Docker 安装
    windows下php的各个版本下载地址
    cnetos7最小化安装ifconfig命令找不到怎么办
    Linux netstat命令详解
    Linux查看磁盘占用率及文件大小
    Linux下ps命令详解 Linux下ps命令的详细使用方法
    支付接口中常用的加密解密以及验签rsa,md5,sha
  • 原文地址:https://www.cnblogs.com/chengxin1982/p/1364703.html
Copyright © 2011-2022 走看看