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.

  • 相关阅读:
    Jmeter(七)Jmeter脚本优化(数据与脚本分离)
    Jmeter(六)Jmeter脚本包含要素及书写习惯
    Redis的持久化之AOF方式
    Redis的持久化之RDB方式
    Redis持久化介绍
    Redis Keys的通用操作
    Redis的数据结构之sorted-set
    Redis的数据结构之哈希
    Redis的数据结构之字符串
    Jedis 连接池实例
  • 原文地址:https://www.cnblogs.com/chengxin1982/p/1364703.html
Copyright © 2011-2022 走看看