614 lines
17 KiB
ObjectPascal
614 lines
17 KiB
ObjectPascal
{
|
|
Apophysis Copyright (C) 2001-2004 Mark Townsend
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
}
|
|
unit Adjust;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
StdCtrls, ExtCtrls, ComCtrls, ControlPoint, Render, Buttons, Menus, cmap;
|
|
|
|
const
|
|
WM_UPDATE_PARAMS = WM_APP + 5439;
|
|
|
|
type
|
|
TAdjustForm = class(TForm)
|
|
QualityPopup: TPopupMenu;
|
|
mnuLowQuality: TMenuItem;
|
|
mnuMediumQuality: TMenuItem;
|
|
mnuHighQuality: TMenuItem;
|
|
ColorDialog: TColorDialog;
|
|
PrevPnl: TPanel;
|
|
PreviewImage: TImage;
|
|
GroupBox1: TGroupBox;
|
|
Label8: TLabel;
|
|
scrollGamma: TScrollBar;
|
|
txtGamma: TEdit;
|
|
Label9: TLabel;
|
|
scrollBrightness: TScrollBar;
|
|
txtBrightness: TEdit;
|
|
Label10: TLabel;
|
|
scrollVibrancy: TScrollBar;
|
|
txtVibrancy: TEdit;
|
|
lblContrast: TLabel;
|
|
GroupBox2: TGroupBox;
|
|
Label5: TLabel;
|
|
scrollZoom: TScrollBar;
|
|
txtZoom: TEdit;
|
|
Label6: TLabel;
|
|
scrollCenterX: TScrollBar;
|
|
txtCenterX: TEdit;
|
|
scrollCenterY: TScrollBar;
|
|
txtCenterY: TEdit;
|
|
Label1: TLabel;
|
|
ColorPanel: TPanel;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
procedure FormDestroy(Sender: TObject);
|
|
procedure DrawPreview;
|
|
procedure btnOKClick(Sender: TObject);
|
|
procedure btnCancelClick(Sender: TObject);
|
|
procedure btnCanelClick(Sender: TObject);
|
|
procedure FormShow(Sender: TObject);
|
|
procedure mnuLowQualityClick(Sender: TObject);
|
|
procedure mnuMediumQualityClick(Sender: TObject);
|
|
procedure mnuHighQualityClick(Sender: TObject);
|
|
procedure txtZoomKeyPress(Sender: TObject; var Key: Char);
|
|
procedure txtZoomExit(Sender: TObject);
|
|
procedure txtCenterXKeyPress(Sender: TObject; var Key: Char);
|
|
procedure txtCenterXExit(Sender: TObject);
|
|
procedure txtCenterYKeyPress(Sender: TObject; var Key: Char);
|
|
procedure txtCenterYExit(Sender: TObject);
|
|
procedure txtGammaKeyPress(Sender: TObject; var Key: Char);
|
|
procedure txtGammaExit(Sender: TObject);
|
|
procedure txtBrightnessKeyPress(Sender: TObject; var Key: Char);
|
|
procedure txtBrightnessExit(Sender: TObject);
|
|
procedure txtVibrancyKeyPress(Sender: TObject; var Key: Char);
|
|
procedure txtVibrancyExit(Sender: TObject);
|
|
procedure scrollZoomScroll(Sender: TObject; ScrollCode: TScrollCode;
|
|
var ScrollPos: Integer);
|
|
procedure scrollCenterXScroll(Sender: TObject; ScrollCode: TScrollCode;
|
|
var ScrollPos: Integer);
|
|
procedure scrollCenterYScroll(Sender: TObject; ScrollCode: TScrollCode;
|
|
var ScrollPos: Integer);
|
|
procedure scrollGammaScroll(Sender: TObject; ScrollCode: TScrollCode;
|
|
var ScrollPos: Integer);
|
|
procedure scrollBrightnessScroll(Sender: TObject;
|
|
ScrollCode: TScrollCode; var ScrollPos: Integer);
|
|
procedure scrollVibrancyScroll(Sender: TObject;
|
|
ScrollCode: TScrollCode; var ScrollPos: Integer);
|
|
procedure scrollVibrancyChange(Sender: TObject);
|
|
procedure scrollGammaChange(Sender: TObject);
|
|
procedure scrollBrightnessChange(Sender: TObject);
|
|
procedure scrollZoomChange(Sender: TObject);
|
|
procedure scrollCenterXChange(Sender: TObject);
|
|
procedure scrollCenterYChange(Sender: TObject);
|
|
procedure ColorPanelClick(Sender: TObject);
|
|
procedure scrollContrastScroll(Sender: TObject;
|
|
ScrollCode: TScrollCode; var ScrollPos: Integer);
|
|
private
|
|
Resetting: boolean;
|
|
Render: TRenderer;
|
|
bm: TBitmap;
|
|
public
|
|
PreviewDensity: double;
|
|
cp: TControlPoint;
|
|
// cmap: TColorMap;
|
|
// Sample_Density, Zoom: double;
|
|
// Center: array[0..1] of double;
|
|
procedure UpdateDisplay;
|
|
procedure UpdateFlame;
|
|
end;
|
|
|
|
var
|
|
AdjustForm: TAdjustForm;
|
|
|
|
implementation
|
|
|
|
uses Main, Global, Registry, Mutate, Editor;
|
|
|
|
{$R *.DFM}
|
|
|
|
procedure TAdjustForm.UpdateDisplay;
|
|
var
|
|
pw, ph: integer;
|
|
r: double;
|
|
begin
|
|
pw := PrevPnl.Width - 2;
|
|
ph := PrevPnl.Height - 2;
|
|
cp.copy(MainCp);
|
|
if cp.width > cp.height then
|
|
begin
|
|
PreviewImage.Width := pw;
|
|
r := cp.width / PreviewImage.Width;
|
|
PreviewImage.height := round(cp.height / r);
|
|
PreviewImage.Left := 1;
|
|
PreviewImage.Top := (ph - PreviewImage.Height) div 2;
|
|
end
|
|
else
|
|
begin
|
|
PreviewImage.Height := ph;
|
|
r := cp.height / PreviewImage.height;
|
|
PreviewImage.Width := round(cp.Width / r);
|
|
PreviewImage.Top := 1;
|
|
PreviewImage.Left := (pw - PreviewImage.Width) div 2;
|
|
end;
|
|
cp.cmap := MainCp.cmap;
|
|
AdjustScale(cp, PreviewImage.Width, PreviewImage.Height);
|
|
// zoom := MainForm.zoom;
|
|
// cp.zoom := zoom;
|
|
Resetting := True; // So the preview doesn't get drawn with these changes..
|
|
scrollGamma.Position := trunc(cp.Gamma * 100);
|
|
scrollBrightness.Position := trunc(cp.Brightness * 100);
|
|
scrollVibrancy.Position := trunc(cp.vibrancy * 100);
|
|
scrollZoom.Position := trunc(cp.zoom * 100);
|
|
scrollCenterX.Position := trunc(cp.Center[0] * 100);
|
|
scrollCenterY.Position := trunc(cp.Center[1] * 100);
|
|
ColorPanel.color := cp.background[2] shl 16 +
|
|
cp.background[1] shl 8 + cp.background[0];
|
|
Resetting := False;
|
|
DrawPreview;
|
|
end;
|
|
|
|
procedure TAdjustForm.UpdateFlame;
|
|
begin
|
|
MainForm.StopThread;
|
|
MainForm.UpdateUndo;
|
|
MainCp.Copy(cp);
|
|
// MainCp.cmap := cmap;
|
|
// MainForm.zoom := zoom;
|
|
// MainForm.Center[0] := Center[0];
|
|
// MainForm.Center[1] := Center[1];
|
|
if EditForm.Visible then EditForm.UpdateDisplay;
|
|
if MutateForm.Visible then MutateForm.UpdateDisplay;
|
|
MainForm.RedrawTimer.enabled := true;
|
|
end;
|
|
|
|
procedure TAdjustForm.DrawPreview;
|
|
begin
|
|
if not Resetting then begin
|
|
Render.Stop;
|
|
// AdjustScale(cp, PreviewImage.Width, PreviewImage.Height);
|
|
cp.sample_density := PreviewDensity;
|
|
cp.spatial_oversample := defOversample;
|
|
cp.spatial_filter_radius := defFilterRadius;
|
|
// cp.Zoom := Zoom;
|
|
// cp.center[0] := Center[0];
|
|
// cp.center[1] := Center[1];
|
|
Render.Compatibility := compatibility;
|
|
Render.SetCP(cp);
|
|
Render.Render;
|
|
BM.Assign(Render.GetImage);
|
|
PreviewImage.Picture.Graphic := bm;
|
|
end;
|
|
end;
|
|
|
|
procedure TAdjustForm.FormCreate(Sender: TObject);
|
|
begin
|
|
bm := TbitMap.Create;
|
|
cp := TControlPoint.Create;
|
|
Render := TRenderer.Create;
|
|
case AdjustPrevQual of
|
|
0: begin
|
|
mnuLowQuality.Checked := true;
|
|
PreviewDensity := prevLowQuality;
|
|
end;
|
|
1: begin
|
|
mnuMediumQuality.Checked := true;
|
|
PreviewDensity := prevMediumQuality;
|
|
end;
|
|
2: begin
|
|
mnuHighQuality.Checked := true;
|
|
PreviewDensity := prevHighQuality;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TAdjustForm.FormClose(Sender: TObject; var Action: TCloseAction);
|
|
var
|
|
Registry: TRegistry;
|
|
begin
|
|
Render.Stop;
|
|
{ Write position to registry }
|
|
Registry := TRegistry.Create;
|
|
try
|
|
Registry.RootKey := HKEY_CURRENT_USER;
|
|
if Registry.OpenKey('\Software\' + APP_NAME + '\Forms\Adjust', True) then
|
|
begin
|
|
Registry.WriteInteger('Top', AdjustForm.Top);
|
|
Registry.WriteInteger('Left', AdjustForm.Left);
|
|
end;
|
|
finally
|
|
Registry.Free;
|
|
end;
|
|
// bStop := True;
|
|
end;
|
|
|
|
procedure TAdjustForm.FormDestroy(Sender: TObject);
|
|
begin
|
|
bm.free;
|
|
cp.free;
|
|
Render.free;
|
|
end;
|
|
|
|
procedure TAdjustForm.btnOKClick(Sender: TObject);
|
|
begin
|
|
ModalResult := mrOK;
|
|
end;
|
|
|
|
procedure TAdjustForm.btnCancelClick(Sender: TObject);
|
|
begin
|
|
ModalResult := mrCancel;
|
|
end;
|
|
|
|
procedure TAdjustForm.btnCanelClick(Sender: TObject);
|
|
begin
|
|
ModalResult := mrCancel;
|
|
end;
|
|
|
|
procedure TAdjustForm.FormShow(Sender: TObject);
|
|
var
|
|
Registry: TRegistry;
|
|
begin
|
|
if LimitVibrancy then scrollVibrancy.Max := 100 else scrollVibrancy.Max := 300;
|
|
{ Read posution from registry }
|
|
Registry := TRegistry.Create;
|
|
try
|
|
Registry.RootKey := HKEY_CURRENT_USER;
|
|
if Registry.OpenKey('Software\' + APP_NAME + '\Forms\Adjust', False) then
|
|
begin
|
|
if Registry.ValueExists('Left') then
|
|
AdjustForm.Left := Registry.ReadInteger('Left');
|
|
if Registry.ValueExists('Top') then
|
|
AdjustForm.Top := Registry.ReadInteger('Top');
|
|
end;
|
|
Registry.CloseKey;
|
|
finally
|
|
Registry.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TAdjustForm.mnuLowQualityClick(Sender: TObject);
|
|
begin
|
|
mnuLowQuality.Checked := True;
|
|
PreviewDensity := prevLowQuality;
|
|
AdjustPrevQual := 0;
|
|
DrawPreview;
|
|
end;
|
|
|
|
procedure TAdjustForm.mnuMediumQualityClick(Sender: TObject);
|
|
begin
|
|
mnuMediumQuality.Checked := True;
|
|
PreviewDensity := prevMediumQuality;
|
|
AdjustPrevQual := 1;
|
|
DrawPreview;
|
|
end;
|
|
|
|
procedure TAdjustForm.mnuHighQualityClick(Sender: TObject);
|
|
begin
|
|
mnuHighQuality.Checked := True;
|
|
PreviewDensity := prevHighQuality;
|
|
AdjustPrevQual := 2;
|
|
DrawPreview;
|
|
end;
|
|
|
|
procedure TAdjustForm.txtZoomKeyPress(Sender: TObject; var Key: Char);
|
|
var v: integer;
|
|
begin
|
|
if key = #13 then
|
|
begin
|
|
key := #0;
|
|
try
|
|
v := Trunc(StrToFloat(txtZoom.Text) * 100);
|
|
if v > scrollZoom.Max then v := scrollZoom.Max;
|
|
if v < scrollZoom.Min then v := scrollZoom.Min;
|
|
if v <> ScrollZoom.Position then begin
|
|
ScrollZoom.Position := v;
|
|
UpdateFlame;
|
|
end;
|
|
except on EConvertError do
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TAdjustForm.txtZoomExit(Sender: TObject);
|
|
var
|
|
v: integer;
|
|
begin
|
|
try
|
|
v := Trunc(StrToFloat(txtZoom.Text) * 100);
|
|
if v > scrollZoom.Max then v := scrollZoom.Max;
|
|
if v < scrollZoom.Min then v := scrollZoom.Min;
|
|
if v <> ScrollZoom.Position then begin
|
|
ScrollZoom.Position := v;
|
|
UpdateFlame;
|
|
end;
|
|
except on EConvertError do
|
|
txtZoom.Text := FloatToStr(cp.zoom)
|
|
end;
|
|
end;
|
|
|
|
procedure TAdjustForm.txtCenterXKeyPress(Sender: TObject; var Key: Char);
|
|
var
|
|
v: integer;
|
|
begin
|
|
if key = #13 then
|
|
begin
|
|
key := #0;
|
|
try
|
|
v := Trunc(StrToFloat(txtCenterX.Text) * 100);
|
|
if v > scrollCenterX.Max then v := scrollCenterX.Max;
|
|
if v < scrollCenterX.Min then v := scrollCenterX.Min;
|
|
ScrollCenterX.Position := v;
|
|
except on EConvertError do
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TAdjustForm.txtCenterXExit(Sender: TObject);
|
|
var
|
|
v: integer;
|
|
begin
|
|
try
|
|
v := Trunc(StrToFloat(txtCenterX.Text) * 100);
|
|
if v > scrollCenterX.Max then v := scrollCenterX.Max;
|
|
if v < scrollCenterX.Min then v := scrollCenterX.Min;
|
|
ScrollCenterX.Position := v;
|
|
UpdateFlame;
|
|
except on EConvertError do
|
|
txtCenterX.Text := FloatToStr(cp.center[0]);
|
|
end;
|
|
end;
|
|
|
|
procedure TAdjustForm.txtCenterYKeyPress(Sender: TObject; var Key: Char);
|
|
var
|
|
v: integer;
|
|
begin
|
|
if key = #13 then
|
|
begin
|
|
key := #0;
|
|
try
|
|
v := Trunc(StrToFloat(txtCenterY.Text) * 100);
|
|
if v > ScrollCenterY.Max then v := ScrollCenterY.Max;
|
|
if v < ScrollCenterY.Min then v := ScrollCenterY.Min;
|
|
ScrollCenterY.Position := v;
|
|
UpdateFlame;
|
|
except on EConvertError do
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TAdjustForm.txtCenterYExit(Sender: TObject);
|
|
var
|
|
v: integer;
|
|
begin
|
|
try
|
|
v := Trunc(StrToFloat(txtCenterY.Text) * 100);
|
|
if v > ScrollCenterY.Max then v := ScrollCenterY.Max;
|
|
if v < ScrollCenterY.Min then v := ScrollCenterY.Min;
|
|
ScrollCenterY.Position := v;
|
|
UpdateFlame;
|
|
except on EConvertError do
|
|
txtCenterY.Text := FloatToStr(cp.center[1]);
|
|
end;
|
|
end;
|
|
|
|
procedure TAdjustForm.txtGammaExit(Sender: TObject);
|
|
var
|
|
v: integer;
|
|
begin
|
|
try
|
|
v := Trunc(StrToFloat(txtGamma.Text) * 100);
|
|
if v > scrollGamma.Max then v := scrollGamma.Max;
|
|
if v < scrollGamma.Min then v := scrollGamma.Min;
|
|
ScrollGamma.Position := v;
|
|
UpdateFlame;
|
|
except on EConvertError do
|
|
txtGamma.Text := FloatToStr(cp.gamma);
|
|
end;
|
|
end;
|
|
|
|
procedure TAdjustForm.txtGammaKeyPress(Sender: TObject; var Key: Char);
|
|
var
|
|
v: integer;
|
|
begin
|
|
if key = #13 then
|
|
begin
|
|
key := #0;
|
|
try
|
|
v := Trunc(StrToFloat(txtGamma.Text) * 100);
|
|
if v > scrollGamma.Max then v := scrollGamma.Max;
|
|
if v < scrollGamma.Min then v := scrollGamma.Min;
|
|
ScrollGamma.Position := v;
|
|
UpdateFlame;
|
|
except on EConvertError do
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TAdjustForm.txtBrightnessExit(Sender: TObject);
|
|
var
|
|
v: integer;
|
|
begin
|
|
try
|
|
v := Trunc(StrToFloat(txtBrightness.Text) * 100);
|
|
if v > scrollBrightness.Max then v := scrollBrightness.Max;
|
|
if v < scrollBrightness.Min then v := scrollBrightness.Min;
|
|
ScrollBrightness.Position := v;
|
|
UpdateFlame;
|
|
except on EConvertError do
|
|
txtBrightness.Text := FloatToStr(cp.brightness);
|
|
end;
|
|
end;
|
|
|
|
procedure TAdjustForm.txtBrightnessKeyPress(Sender: TObject;
|
|
var Key: Char);
|
|
var
|
|
v: integer;
|
|
begin
|
|
if key = #13 then
|
|
begin
|
|
key := #0;
|
|
try
|
|
v := Trunc(StrToFloat(txtBrightness.Text) * 100);
|
|
if v > scrollBrightness.Max then v := scrollBrightness.Max;
|
|
if v < scrollBrightness.Min then v := scrollBrightness.Min;
|
|
ScrollBrightness.Position := v;
|
|
UpdateFlame;
|
|
except on EConvertError do
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TAdjustForm.txtVibrancyKeyPress(Sender: TObject; var Key: Char);
|
|
var
|
|
v: integer;
|
|
begin
|
|
if key = #13 then
|
|
begin
|
|
key := #0;
|
|
try
|
|
v := Trunc(StrToFloat(txtVibrancy.Text) * 100);
|
|
if v > scrollVibrancy.Max then v := scrollVibrancy.Max;
|
|
if v < scrollVibrancy.Min then v := scrollVibrancy.Min;
|
|
ScrollVibrancy.Position := v;
|
|
UpdateFlame;
|
|
except on EConvertError do
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TAdjustForm.txtVibrancyExit(Sender: TObject);
|
|
var
|
|
v: integer;
|
|
begin
|
|
try
|
|
v := Trunc(StrToFloat(txtVibrancy.Text) * 100);
|
|
if v > scrollVibrancy.Max then v := scrollVibrancy.Max;
|
|
if v < scrollVibrancy.Min then v := scrollVibrancy.Min;
|
|
ScrollVibrancy.Position := v;
|
|
UpdateFlame;
|
|
except on EConvertError do
|
|
txtVibrancy.Text := FloatToStr(cp.Vibrancy);
|
|
end;
|
|
end;
|
|
|
|
procedure TAdjustForm.scrollZoomScroll(Sender: TObject;
|
|
ScrollCode: TScrollCode; var ScrollPos: Integer);
|
|
begin
|
|
if ScrollCode = scEndScroll then UpdateFlame;
|
|
end;
|
|
|
|
procedure TAdjustForm.scrollCenterXScroll(Sender: TObject;
|
|
ScrollCode: TScrollCode; var ScrollPos: Integer);
|
|
begin
|
|
if ScrollCode = scEndScroll then UpdateFlame;
|
|
end;
|
|
|
|
procedure TAdjustForm.scrollCenterYScroll(Sender: TObject;
|
|
ScrollCode: TScrollCode; var ScrollPos: Integer);
|
|
begin
|
|
if ScrollCode = scEndScroll then UpdateFlame;
|
|
end;
|
|
|
|
procedure TAdjustForm.scrollGammaScroll(Sender: TObject;
|
|
ScrollCode: TScrollCode; var ScrollPos: Integer);
|
|
begin
|
|
if ScrollCode = scEndScroll then UpdateFlame;
|
|
end;
|
|
|
|
procedure TAdjustForm.scrollBrightnessScroll(Sender: TObject;
|
|
ScrollCode: TScrollCode; var ScrollPos: Integer);
|
|
begin
|
|
if ScrollCode = scEndScroll then UpdateFlame;
|
|
end;
|
|
|
|
procedure TAdjustForm.scrollVibrancyScroll(Sender: TObject;
|
|
ScrollCode: TScrollCode; var ScrollPos: Integer);
|
|
begin
|
|
if ScrollCode = scEndScroll then UpdateFlame;
|
|
end;
|
|
|
|
procedure TAdjustForm.scrollVibrancyChange(Sender: TObject);
|
|
begin
|
|
cp.Vibrancy := ScrollVibrancy.Position / 100;
|
|
txtVibrancy.text := FloatToStr(cp.Vibrancy);
|
|
DrawPreview;
|
|
end;
|
|
|
|
procedure TAdjustForm.scrollGammaChange(Sender: TObject);
|
|
begin
|
|
cp.Gamma := scrollGamma.Position / 100;
|
|
txtGamma.text := FloatToStr(cp.Gamma);
|
|
DrawPreview;
|
|
end;
|
|
|
|
procedure TAdjustForm.scrollBrightnessChange(Sender: TObject);
|
|
begin
|
|
cp.Brightness := ScrollBrightness.Position / 100;
|
|
txtBrightness.text := FloatToStr(cp.Brightness);
|
|
DrawPreview;
|
|
end;
|
|
|
|
procedure TAdjustForm.scrollZoomChange(Sender: TObject);
|
|
begin
|
|
cp.zoom := scrollZoom.Position / 100;
|
|
txtZoom.text := FloatToStr(cp.zoom);
|
|
DrawPreview;
|
|
end;
|
|
|
|
procedure TAdjustForm.scrollCenterXChange(Sender: TObject);
|
|
begin
|
|
cp.center[0] := scrollCenterX.Position / 100;
|
|
txtCenterX.text := FloatToStr(cp.center[0]);
|
|
DrawPreview;
|
|
end;
|
|
|
|
procedure TAdjustForm.scrollCenterYChange(Sender: TObject);
|
|
begin
|
|
cp.center[1] := scrollCenterY.Position / 100;
|
|
txtCentery.text := FloatToStr(cp.center[1]);
|
|
DrawPreview;
|
|
end;
|
|
|
|
procedure TAdjustForm.ColorPanelClick(Sender: TObject);
|
|
var
|
|
col: Longint;
|
|
begin
|
|
ColorDialog.Color := COlorPanel.Color;
|
|
if ColorDialog.Execute then
|
|
begin
|
|
ColorPanel.Color := ColorDialog.Color;
|
|
col := ColorToRGB(ColorDialog.Color);
|
|
cp.background[0] := col and 255;
|
|
cp.background[1] := col shr 8 and 255;
|
|
cp.background[2] := col shr 16 and 255;
|
|
DrawPreview;
|
|
UpdateFlame;
|
|
end;
|
|
end;
|
|
|
|
procedure TAdjustForm.scrollContrastScroll(Sender: TObject;
|
|
ScrollCode: TScrollCode; var ScrollPos: Integer);
|
|
begin
|
|
if ScrollCode = scEndScroll then UpdateFlame;
|
|
end;
|
|
|
|
end.
|
|
|