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

📄 jvqpainterqbform.pas

📁 East make Tray Icon in delphi
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{******************************************************************************}
{* WARNING:  JEDI VCL To CLX Converter generated unit.                        *}
{*           Manual modifications will be lost on next release.               *}
{******************************************************************************}

{-----------------------------------------------------------------------------
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/MPL-1.1.html

Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for
the specific language governing rights and limitations under the License.

The Original Code is: JvPainterQBU.PAS, released on 2002-06-15.

The Initial Developer of the Original Code is Jan Verhoeven [jan1 dott verhoeven att wxs dott nl]
Portions created by Jan Verhoeven are Copyright (C) 2002 Jan Verhoeven.
All Rights Reserved.

Contributor(s): Robert Love [rlove att slcdug dott org].

You may retrieve the latest version of this file at the Project JEDI's JVCL home page,
located at http://jvcl.sourceforge.net

Known Issues:
-----------------------------------------------------------------------------}
// $Id: JvQPainterQBForm.pas,v 1.16 2004/09/10 22:05:59 asnepvangers Exp $

unit JvQPainterQBForm;

{$I jvcl.inc}

interface

uses
  SysUtils, Classes, QWindows, QMessages, QGraphics, QControls,
  QForms, QDialogs, QStdCtrls, QExtCtrls, QMenus, QComCtrls,
  JvQDrawImage, JvQComponent;

type
  TPainterQBForm = class(TJvForm)
    Bevel1: TBevel;
    qbpresets: TComboBox;
    presetspop: TPopupMenu;
    AddBackdrop1: TMenuItem;
    DeleteBackdrop1: TMenuItem;
    Panel1: TPanel;
    QBList: TListBox;
    UpdateBackdrop1: TMenuItem;
    redradio: TRadioButton;
    greenradio: TRadioButton;
    blueradio: TRadioButton;
    trkred: TScrollBar;
    trkgreen: TScrollBar;
    trkblue: TScrollBar;
    trkfactor: TScrollBar;
    Shape1: TShape;
    Shape2: TShape;
    Shape3: TShape;
    procedure QBListClick(Sender: TObject);
    procedure FormShow(Sender: TObject); 
    procedure qbpresetsClick(Sender: TObject);
    procedure SetLabels;
    procedure AddBackdrop1Click(Sender: TObject);
    procedure DeleteBackdrop1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure trkRedChange(Sender: TObject);
    procedure trkGreenChange(Sender: TObject);
    procedure trkBlueChange(Sender: TObject);
    procedure trkFactorChange(Sender: TObject);
    procedure UpdateBackdrop1Click(Sender: TObject);
    procedure redradioClick(Sender: TObject);
    procedure greenradioClick(Sender: TObject);
    procedure blueradioClick(Sender: TObject);
    procedure QuickBack; 
    procedure qbpresetsDrawItem(Sender: TObject; Index: Integer;
      Rect: TRect; State: TOwnerDrawState; var Handled: Boolean); 
  private
    FPainterForm: TJvDrawImage;
  public
    function StrToQuickBack(S: string): Boolean;
    procedure SetDrawImage(ADrawImage: TJvDrawImage);
  end;

var
  QBFile: string;
  QBDRed, QBDBlue, QBDGreen: Byte;

implementation

uses
  {$IFDEF UNITVERSIONING}
  JclUnitVersioning,
  {$ENDIF UNITVERSIONING}
  JvQConsts, JvQResources, JvQTypes;

{$R *.xfm}

type
  TColorProc = function(OutLoop, InLoop: Integer): Integer;

var
  RedBack, GreenBack, BlueBack: TColorProc;
  QBFuncs: array [0..50] of TColorProc;
  ImgDrawFactor: Byte;
  QBRedFn, QBGreenFn, QBBlueFn: Integer;
  ApplDir: string;

function BGProd(Inner, Outer: Integer): Integer;
begin
  Result := Outer * Inner mod ImgDrawFactor;
end;

function BGSum(Inner, Outer: Integer): Integer;
begin
  Result := (Outer + Inner) mod ImgDrawFactor;
end;

function BGSub(Inner, Outer: Integer): Integer;
begin
  Result := (Outer - Inner) mod ImgDrawFactor;
end;

function BGXor(Inner, Outer: Integer): Integer;
begin
  Result := (Outer xor Inner) mod ImgDrawFactor;
end;

function BGAnd(Inner, Outer: Integer): Integer;
begin
  Result := (Outer and Inner) mod ImgDrawFactor;
end;

function BGOutXor(Inner, Outer: Integer): Integer;
begin
  Result := Outer xor ImgDrawFactor;
end;

function BGInXor(Inner, Outer: Integer): Integer;
begin
  Result := Inner xor ImgDrawFactor;
end;

function BGOutAnd(Inner, Outer: Integer): Integer;
begin
  Result := Outer and ImgDrawFactor;
end;

function BGInAnd(Inner, Outer: Integer): Integer;
begin
  Result := Inner and ImgDrawFactor;
end;

function BGOutMod(Inner, Outer: Integer): Integer;
begin
  Result := Outer mod ImgDrawFactor;
end;

function BGInMod(Inner, Outer: Integer): Integer;
begin
  Result := Inner mod ImgDrawFactor;
end;

function BGProdXor(Inner, Outer: Integer): Integer;
begin
  Result := (Outer * Inner) xor ImgDrawFactor;
end;

function BGSumXor(Inner, Outer: Integer): Integer;
begin
  Result := (Outer + Inner) xor ImgDrawFactor;
end;

function BGSubXor(Inner, Outer: Integer): Integer;
begin
  Result := (Outer - Inner) xor ImgDrawFactor;
end;

function BGProdAnd(Inner, Outer: Integer): Integer;
begin
  Result := (Outer * Inner) and ImgDrawFactor;
end;

function BGSumAnd(Inner, Outer: Integer): Integer;
begin
  Result := (Outer + Inner) and ImgDrawFactor;
end;

function BGSubAnd(Inner, Outer: Integer): Integer;
begin
  Result := (Outer - Inner) and ImgDrawFactor;
end;

function BGInner(Inner, Outer: Integer): Integer;
begin
  Result := Inner;
end;

function BGOuter(Inner, Outer: Integer): Integer;
begin
  Result := Outer;
end;

function BGOutRed(Inner, Outer: Integer): Integer;
begin
  Result := QBDRed * Outer;
end;

function BGInRed(Inner, Outer: Integer): Integer;
begin
  Result := QBDRed * Inner;
end;

function BGOutGreen(Inner, Outer: Integer): Integer;
begin
  Result := QBDGreen * Outer;
end;

function BGInGreen(Inner, Outer: Integer): Integer;
begin
  Result := QBDGreen * Inner;
end;

function BGOutBlue(Inner, Outer: Integer): Integer;
begin
  Result := QBDBlue * Outer;
end;

function BGInBlue(Inner, Outer: Integer): Integer;
begin
  Result := QBDBlue * Inner;
end;

function BGInModOut(Inner, Outer: Integer): Integer;
begin
  if Outer < ImgDrawFactor then
    Outer := ImgDrawFactor;
  Result := Inner mod Outer;
end;

function BGOutModIn(Inner, Outer: Integer): Integer;
begin
  if Inner < ImgDrawFactor then
    Inner := ImgDrawFactor;
  Result := Outer mod Inner;
end;

function BGOutModIn2(Inner, Outer: Integer): Integer;
begin
  Result := Outer mod (2 + Inner) mod (2 + Outer + Inner);
end;

function BGModMod(Inner, Outer: Integer): Integer;
begin
  Result := (Outer mod ImgDrawFactor) * (Inner mod ImgDrawFactor);
end;

function BGModModXor(Inner, Outer: Integer): Integer;
begin
  Result := (Outer mod ImgDrawFactor) xor (Inner mod ImgDrawFactor);
end;

function BGMod3(Inner, Outer: Integer): Integer;
begin
  Result := (Outer mod ImgDrawFactor) mod ((Inner mod ImgDrawFactor) + 1);
end;

function BGModModSub(Inner, Outer: Integer): Integer;
begin
  Result := (Outer mod ImgDrawFactor) - (Inner mod ImgDrawFactor);
end;

function BGModModAdd(Inner, Outer: Integer): Integer;
begin
  Result := (Outer mod ImgDrawFactor) + (Inner mod ImgDrawFactor);
end;

function BGModModAnd(Inner, Outer: Integer): Integer;
begin
  Result := (Outer mod ImgDrawFactor) and (Inner mod ImgDrawFactor);
end;

function BGModModOr(Inner, Outer: Integer): Integer;
begin
  Result := (Outer mod ImgDrawFactor) or (Inner mod ImgDrawFactor);
end;

function BGXOr3(Inner, Outer: Integer): Integer;
begin
  Result := Outer xor ImgDrawFactor xor Inner;
end;

function BGXOr3Mod(Inner, Outer: Integer): Integer;
begin
  Result := (Outer xor Inner mod ImgDrawFactor) xor (Inner mod ImgDrawFactor);
end;

function BGSubXorSum(Inner, Outer: Integer): Integer;
begin
  Result := (Outer - Inner) xor (Outer + Inner);
end;

function BGSubProdSum(Inner, Outer: Integer): Integer;
begin
  Result := (Outer - Inner) * (Outer + Inner);

⌨️ 快捷键说明

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