📄 jvqpainterqbform.pas
字号:
{******************************************************************************}
{* 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 + -