dlgabsbevel.pas
来自「著名的虚拟仪表控件,包含全部源码, 可以在,delphi2007 下安装运行」· PAS 代码 · 共 343 行
PAS
343 行
unit DlgAbSBevel;
{******************************************************************************}
{ Abakus VCL }
{ Property-editor to adjust TAbSBevel }
{ }
{******************************************************************************}
{ e-Mail: support@abaecker.de , Web: http://www.abaecker.com }
{------------------------------------------------------------------------------}
{ (c) Copyright 1998..2001 A.Baecker, All rights Reserved }
{******************************************************************************}
{$I Abks.inc}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, _GClass,
StdCtrls, AbBevel, ExtCtrls, AbCBitBt, _AbProc, AbVMeter,
{$IFDEF D6} DesignWindows, DesignEditors, DesignIntf, {$ELSE} DsgnIntf, {$ENDIF}
Buttons, AbNumEdit;
type
TAbSBevel_Form = class(TForm)
ColorDialog1: TColorDialog;
Colors_Panel: TPanel;
ColorHighLightFrom_AbBevel: TAbBevel;
ColorShadowFrom_AbBevel: TAbBevel;
ColorHighLightTo_AbBevel: TAbBevel;
ColorShadowTo_AbBevel: TAbBevel;
ColorHightLight_Label: TLabel;
ColorShadow_Label: TLabel;
From_Label: TLabel;
To_Label: TLabel;
Color_AbBevel: TAbBevel;
Color_Label: TLabel;
SurfaceGrad_GroupBox: TGroupBox;
SurfaceGrad_Style_GroupBox: TGroupBox;
SurfaceGrad_Style_AbColBitBtn1: TAbColBitBtn;
SurfaceGrad_Style_AbColBitBtn2: TAbColBitBtn;
SurfaceGrad_Style_AbColBitBtn3: TAbColBitBtn;
SurfaceGrad_Style_AbColBitBtn7: TAbColBitBtn;
SurfaceGrad_Style_AbColBitBtn8: TAbColBitBtn;
SurfaceGrad_Style_AbColBitBtn9: TAbColBitBtn;
SurfaceGrad_Style_AbColBitBtn4: TAbColBitBtn;
SurfaceGrad_Style_AbColBitBtn5: TAbColBitBtn;
SurfaceGrad_Style_AbColBitBtn6: TAbColBitBtn;
SurfaceGrad_Style_AbColBitBtn11: TAbColBitBtn;
SurfaceGrad_Style_AbColBitBtn12: TAbColBitBtn;
SurfaceGrad_Style_AbColBitBtn10: TAbColBitBtn;
SurfaceGrad_Style_AbColBitBtn13: TAbColBitBtn;
SurfaceGrad_Style_AbColBitBtn14: TAbColBitBtn;
SurfaceGrad_Visible_CheckBox: TCheckBox;
SurfaceGrad_Style_Label: TLabel;
SurfaceGrad_ColorFrom_AbBevel: TAbBevel;
SurfaceGrad_ColorFrom_Label: TLabel;
SurfaceGrad_ColorTo_Label: TLabel;
SurfaceGrad_ColorTo_AbBevel: TAbBevel;
Panel1: TPanel;
BevelStyle_Label: TLabel;
BevelLine_Label: TLabel;
Width_Label: TLabel;
Spacing_Label: TLabel;
BevelStyle_ComboBox: TComboBox;
BevelLine_ComboBox: TComboBox;
Width_SpinEdit: TAbNumSpin;
Offset_GroupBox: TGroupBox;
Offset_Left_Label: TLabel;
Offset_Right_Label: TLabel;
Offset_Top_Label: TLabel;
Offset_Bottom_Label: TLabel;
Offset_Right_SpinEdit: TAbNumSpin;
Offset_Left_SpinEdit: TAbNumSpin;
Offset_Top_SpinEdit: TAbNumSpin;
Offset_Bottom_SpinEdit: TAbNumSpin;
Spacing_SpinEdit: TAbNumSpin;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BevelStyle_ComboBoxChange(Sender: TObject);
procedure BevelLine_ComboBoxChange(Sender: TObject);
procedure Width_SpinEditChange(Sender: TObject);
procedure Offset_Left_SpinEditChange(Sender: TObject);
procedure Offset_Right_SpinEditChange(Sender: TObject);
procedure Offset_Top_SpinEditChange(Sender: TObject);
procedure Offset_Bottom_SpinEditChange(Sender: TObject);
procedure Spacing_SpinEditChange(Sender: TObject);
procedure ColorHighLightFrom_AbBevelClick(Sender: TObject);
procedure ColorHighLightTo_AbBevelClick(Sender: TObject);
procedure ColorShadowFrom_AbBevelClick(Sender: TObject);
procedure ColorShadowTo_AbBevelClick(Sender: TObject);
procedure Color_AbBevelClick(Sender: TObject);
procedure SurfaceGrad_Visible_CheckBoxClick(Sender: TObject);
procedure SurfaceGrad_Style_AbColBitBtn1StatusChanged(Sender: TObject);
procedure SurfaceGrad_ColorFrom_AbBevelClick(Sender: TObject);
procedure SurfaceGrad_ColorTo_AbBevelClick(Sender: TObject);
Procedure UpdateStyleColors;
procedure Init;
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
TAbSBevelEditor = class(TClassProperty)
public
procedure Edit; override;
function GetAttributes: TPropertyAttributes; override;
end;
var
AbSBevel_Form : TAbSBevel_Form;
bvl : TAbSBevel;
implementation
{$R *.DFM}
{==============================================================================}
procedure TAbSBevelEditor.edit;
var
TmpBevel, bvl2 : TAbSBevel;
n : Integer;
begin
TmpBevel := TAbSBevel.Create;
AbSBevel_Form := TAbSBevel_Form.Create(Application);
AbLoadFormPos(AbSBevel_Form);
try
with AbSBevel_Form do
begin
// set start condition
bvl := TAbSBevel(GetOrdValue);
TmpBevel.Assign(bvl); // store the settings
Init;
if showModal = mrOK then
begin
Modified;
for n := 1 to PropCount-1 do begin
bvl2 := TAbSBevel(GetOrdValueAt(n));
bvl2.Assign(bvl);
end;
end else begin
bvl.Assign(TmpBevel); // restore old values
end;
end;
finally
AbSaveFormPos(AbSBevel_Form);
AbSBevel_Form.Free;
TmpBevel.Free;
end;
end;
function TAbSBevelEditor.GetAttributes: TPropertyAttributes;
begin
Result := [paMultiSelect, paSubProperties, paAutoUpdate, paDialog, paReadOnly];
end;
{==============================================================================}
procedure TAbSBevel_Form.Init;
begin
BevelStyle_ComboBox.ItemIndex := Ord(bvl.Style);
BevelLine_ComboBox.ItemIndex := Ord(bvl.BevelLine);
Width_SpinEdit.Value := bvl.Width;
Offset_Left_SpinEdit.Value := bvl.Offset.Left;
Offset_Right_SpinEdit.Value := bvl.Offset.Right;
Offset_Top_SpinEdit.Value := bvl.Offset.Top;
Offset_Bottom_SpinEdit.Value := bvl.Offset.Bottom;
Spacing_SpinEdit.Value := bvl.Spacing;
Color_AbBevel.BevelOuter.Color := bvl.Color;
ColorHighLightFrom_AbBevel.BevelOuter.Color := bvl.ColorHighLightFrom;
ColorShadowFrom_AbBevel.BevelOuter.Color := bvl.ColorShadowFrom;
ColorHighLightTo_AbBevel.BevelOuter.Color := bvl.ColorHighLightTo;
ColorShadowTo_AbBevel.BevelOuter.Color := bvl.ColorShadowTo;
SurfaceGrad_Visible_CheckBox.Checked := bvl.SurfaceGrad.Visible;
// the following line will update the total group of AbColBitBtn's
SurfaceGrad_Style_AbColBitBtn1.StatusInt := (1 shl Ord(bvl.SurfaceGrad.Style ));
SurfaceGrad_ColorFrom_AbBevel.BevelOuter.Color := bvl.SurfaceGrad.ColorFrom;
SurfaceGrad_ColorTo_AbBevel.BevelOuter.Color := bvl.SurfaceGrad.ColorTo;
UpdateStyleColors;
end;
procedure TAbSBevel_Form.BevelStyle_ComboBoxChange(Sender: TObject);
begin
bvl.Style := TBevelStyle(BevelStyle_ComboBox.ItemIndex);
end;
procedure TAbSBevel_Form.BevelLine_ComboBoxChange(Sender: TObject);
begin
bvl.BevelLine := TBevelLine(BevelLine_ComboBox.ItemIndex);
end;
procedure TAbSBevel_Form.Width_SpinEditChange(Sender: TObject);
begin
bvl.Width := Width_SpinEdit.ValueAsInt;
end;
procedure TAbSBevel_Form.Offset_Left_SpinEditChange(Sender: TObject);
begin
bvl.Offset.Left := Offset_Left_SpinEdit.ValueAsInt;
end;
procedure TAbSBevel_Form.Offset_Right_SpinEditChange(Sender: TObject);
begin
bvl.Offset.Right := Offset_Right_SpinEdit.ValueAsInt;
end;
procedure TAbSBevel_Form.Offset_Top_SpinEditChange(Sender: TObject);
begin
bvl.Offset.Top := Offset_Top_SpinEdit.ValueAsInt;
end;
procedure TAbSBevel_Form.Offset_Bottom_SpinEditChange(Sender: TObject);
begin
bvl.Offset.Bottom := Offset_Bottom_SpinEdit.ValueAsInt;
end;
procedure TAbSBevel_Form.Spacing_SpinEditChange(Sender: TObject);
begin
bvl.Spacing := Spacing_SpinEdit.ValueAsInt;
end;
procedure TAbSBevel_Form.ColorHighLightFrom_AbBevelClick(Sender: TObject);
begin
ColorDialog1.Color := bvl.ColorHighLightFrom;
if ColorDialog1.Execute then begin
bvl.ColorHighLightFrom := ColorDialog1.Color;
ColorHighLightFrom_AbBevel.BevelOuter.Color := bvl.ColorHighLightFrom;
end;
end;
procedure TAbSBevel_Form.ColorHighLightTo_AbBevelClick(Sender: TObject);
begin
ColorDialog1.Color := bvl.ColorHighLightTo;
if ColorDialog1.Execute then begin
bvl.ColorHighLightTo := ColorDialog1.Color;
ColorHighLightTo_AbBevel.BevelOuter.Color := bvl.ColorHighLightTo;
end;
end;
procedure TAbSBevel_Form.ColorShadowFrom_AbBevelClick(Sender: TObject);
begin
ColorDialog1.Color := bvl.ColorShadowFrom;
if ColorDialog1.Execute then begin
bvl.ColorShadowFrom := ColorDialog1.Color;
ColorShadowFrom_AbBevel.BevelOuter.Color := bvl.ColorShadowFrom;
end;
end;
procedure TAbSBevel_Form.ColorShadowTo_AbBevelClick(Sender: TObject);
begin
ColorDialog1.Color := bvl.ColorShadowTo;
if ColorDialog1.Execute then begin
bvl.ColorShadowTo := ColorDialog1.Color;
ColorShadowTo_AbBevel.BevelOuter.Color := bvl.ColorShadowTo;
end;
end;
procedure TAbSBevel_Form.Color_AbBevelClick(Sender: TObject);
begin
if SurfaceGrad_Visible_CheckBox.Checked then exit;
ColorDialog1.Color := bvl.Color;
if ColorDialog1.Execute then begin
bvl.Color := ColorDialog1.Color;
Color_AbBevel.BevelOuter.Color := bvl.Color;
end;
end;
procedure TAbSBevel_Form.SurfaceGrad_Visible_CheckBoxClick(
Sender: TObject);
begin
bvl.SurfaceGrad.Visible := SurfaceGrad_Visible_CheckBox.Checked ;
SurfaceGrad_ColorFrom_Label.Enabled := SurfaceGrad_Visible_CheckBox.Checked ;
SurfaceGrad_ColorTo_Label.Enabled := SurfaceGrad_Visible_CheckBox.Checked ;
SurfaceGrad_Style_GroupBox.Enabled := SurfaceGrad_Visible_CheckBox.Checked ;
SurfaceGrad_Style_Label.Enabled := SurfaceGrad_Visible_CheckBox.Checked ;
Color_Label.Enabled := not SurfaceGrad_Visible_CheckBox.Checked ;
end;
procedure TAbSBevel_Form.SurfaceGrad_Style_AbColBitBtn1StatusChanged(
Sender: TObject);
begin
if bvl = nil then exit; // check if bevel is allredy created,
// otherwise error at App. start
if (Sender as TAbColBitBtn).Checked then begin
bvl.SurfaceGrad.Style := (Sender as TAbColBitBtn).GradBtnFace.Style;
SurfaceGrad_Style_Label.Caption := (Sender as TAbColBitBtn).Hint;
end;
end;
Procedure TAbSBevel_Form.UpdateStyleColors;
var
n : Integer;
comp : TComponent;
btn : TAbColBitBtn;
begin
for n := 0 to ComponentCount-1 do begin
comp := Components[n];
if (comp is TAbColBitBtn) then begin
btn := comp as TAbColBitBtn;
btn.GradBtnFace.ColorFrom := bvl.SurfaceGrad.ColorFrom;
btn.GradBtnFace.ColorTo := bvl.SurfaceGrad.ColorTo;
end;
end;
end;
procedure TAbSBevel_Form.SurfaceGrad_ColorFrom_AbBevelClick(
Sender: TObject);
begin
if not SurfaceGrad_Visible_CheckBox.Checked then exit;
ColorDialog1.Color := bvl.SurfaceGrad.ColorFrom;
if ColorDialog1.Execute then begin
bvl.SurfaceGrad.ColorFrom := ColorDialog1.Color;
SurfaceGrad_ColorFrom_AbBevel.BevelOuter.Color := ColorDialog1.Color;
end;
UpdateStyleColors;
end;
procedure TAbSBevel_Form.SurfaceGrad_ColorTo_AbBevelClick(Sender: TObject);
begin
if not SurfaceGrad_Visible_CheckBox.Checked then exit;
ColorDialog1.Color := bvl.SurfaceGrad.ColorTo;
if ColorDialog1.Execute then begin
bvl.SurfaceGrad.ColorTo := ColorDialog1.Color;
SurfaceGrad_ColorTo_AbBevel.BevelOuter.Color := ColorDialog1.Color;
end;
UpdateStyleColors;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?