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

📄 adfaxviewer.pas

📁 测试用例
💻 PAS
字号:
(***** BEGIN LICENSE BLOCK *****
 * Version: MPL 1.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is TurboPower Async Professional
 *
 * The Initial Developer of the Original Code is
 * TurboPower Software
 *
 * Portions created by the Initial Developer are Copyright (C) 1991-2002
 * the Initial Developer. All Rights Reserved.
 *
 * Contributor(s):
 *
 * ***** END LICENSE BLOCK ***** *)

unit AdFaxViewer;

interface

uses
  SysUtils, Classes, Controls, Forms, OoMisc, AdFaxCvt, Graphics, Messages, Windows;

type
  TAdCustomFaxViewer = class(TApdBaseScrollingWinControl)
  private
    { Private declarations }
    FCanvas : TCanvas;

    FUnpacker : TApdFaxUnpacker;
    FLoadWholeFax: Boolean;
    FRotation: Integer;
    FFaxFile: string;
    FFGColor: TColor;
    FBGColor: TColor;
    FBorderStyle: TBorderStyle;
    procedure SetBGColor(const Value: TColor);
    procedure SetFaxFile(const Value: string);
    procedure SetFGColor(const Value: TColor);
    procedure SetLoadWholeFax(const Value: Boolean);
    procedure SetRotation(const Value: Integer);
    procedure SetBorderStyle(const Value: TBorderStyle);

  protected
    { Protected declarations }
    procedure PaintWindow(DC : HDC); override;
    procedure RenderFax;
    procedure WMEraseBackground (var Msg : TWMERASEBKGND);
    procedure CMCtl3DChanged(var Message: TMessage); message CM_CTL3DCHANGED;
    procedure CreateParams(var Params: TCreateParams); override;
  public
    { Public declarations }
    constructor Create(AOwner : TComponent); override;
    destructor Destroy; override;
    property Canvas : TCanvas
      read FCanvas;

    property FaxFile : string read FFaxFile write SetFaxFile;
    property LoadWholeFax : Boolean read FLoadWholeFax write SetLoadWholeFax;
    property BGColor : TColor read FBGColor write SetBGColor;
    property FGColor : TColor read FFGColor write SetFGColor;
    property Rotation : Integer read FRotation write SetRotation;
    property BorderStyle: TBorderStyle read FBorderStyle write SetBorderStyle;

  end;


  TAdFaxViewer = class(TAdCustomFaxViewer)
  published
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TAdFaxViewer]);
end;

{ TAdCustomFaxViewer }

procedure TAdCustomFaxViewer.CMCtl3DChanged(var Message: TMessage);
begin
  if NewStyleControls and (FBorderStyle = bsSingle) then
    RecreateWnd;
  inherited;
end;

constructor TAdCustomFaxViewer.Create(AOwner: TComponent);
begin
  inherited;
  FUnpacker := nil;
end;

procedure TAdCustomFaxViewer.CreateParams(var Params: TCreateParams);
const
  BorderStyles: array[TBorderStyle] of DWORD = (0, WS_BORDER);
begin
  inherited CreateParams(Params);
  with Params do
  begin
    Style := Style or BorderStyles[FBorderStyle];
    if NewStyleControls and Ctl3D and (FBorderStyle = bsSingle) then
    begin
      Style := Style and not WS_BORDER;
      ExStyle := ExStyle or WS_EX_CLIENTEDGE;
    end;
  end;
end;

destructor TAdCustomFaxViewer.Destroy;
begin
  FUnpacker.Free;
  inherited;
end;

procedure TAdCustomFaxViewer.PaintWindow(DC: HDC);
var
  R : TRect;
begin
  FCanvas.Handle := DC;
  try
    R := ClientRect;
    InvalidateRect(Canvas.Handle, @R, True);
    RenderFax;
  finally
    Canvas.Handle := 0;
  end;
end;

procedure TAdCustomFaxViewer.RenderFax;
  { render the APF onto the canvas }
begin
  

end;

procedure TAdCustomFaxViewer.SetBGColor(const Value: TColor);
begin
  FBGColor := Value;
  Invalidate;
end;

procedure TAdCustomFaxViewer.SetBorderStyle(const Value: TBorderStyle);
begin
  if Value <> FBorderStyle then
  begin
    FBorderStyle := Value;
    RecreateWnd;
  end;

end;

procedure TAdCustomFaxViewer.SetFaxFile(const Value: string);
begin
  FFaxFile := Value;
  RenderFax;
end;

procedure TAdCustomFaxViewer.SetFGColor(const Value: TColor);
begin
  FFGColor := Value;
end;

procedure TAdCustomFaxViewer.SetLoadWholeFax(const Value: Boolean);
begin
  FLoadWholeFax := Value;
end;

procedure TAdCustomFaxViewer.SetRotation(const Value: Integer);
begin
  FRotation := Value;
end;

procedure TAdCustomFaxViewer.WMEraseBackground(var Msg: TWMERASEBKGND);
begin

end;

end.

⌨️ 快捷键说明

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