git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.DevExpressVCL@8 05c56307-c608-d34a-929d-697000501d7a
268 lines
8.6 KiB
ObjectPascal
268 lines
8.6 KiB
ObjectPascal
unit AlphaBlendingMain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
|
|
Dialogs, ExtCtrls, StdCtrls, ComCtrls, ImgList, ExtDlgs,
|
|
dxNavBarStyles, dxNavBarCollns, dxNavBarBase, dxNavBar;
|
|
|
|
type
|
|
TfmAlphaBlendingMain = class(TForm)
|
|
nbMain: TdxNavBar;
|
|
Label9: TLabel;
|
|
gbDocs: TdxNavBarGroup;
|
|
bgPlaces: TdxNavBarGroup;
|
|
bgDetails: TdxNavBarGroup;
|
|
biMyMusic: TdxNavBarItem;
|
|
biMyPictures: TdxNavBarItem;
|
|
biReceivedFiles: TdxNavBarItem;
|
|
biDesktop: TdxNavBarItem;
|
|
biMyComputer: TdxNavBarItem;
|
|
biNetwork: TdxNavBarItem;
|
|
ilSmall: TImageList;
|
|
ilLarge: TImageList;
|
|
stBackground: TdxNavBarStyleItem;
|
|
stGroup1Background: TdxNavBarStyleItem;
|
|
stGroup2Background: TdxNavBarStyleItem;
|
|
stGroup3Background: TdxNavBarStyleItem;
|
|
OpenPictureDialog1: TOpenPictureDialog;
|
|
Panel5: TPanel;
|
|
GroupBox4: TGroupBox;
|
|
Label7: TLabel;
|
|
lbBgGroup3: TLabel;
|
|
tbBgGroup3: TTrackBar;
|
|
Panel4: TPanel;
|
|
iBgGroup3: TImage;
|
|
GroupBox3: TGroupBox;
|
|
Label5: TLabel;
|
|
lbBgGroup2: TLabel;
|
|
tbBgGroup2: TTrackBar;
|
|
Panel3: TPanel;
|
|
iBgGroup2: TImage;
|
|
GroupBox2: TGroupBox;
|
|
Label3: TLabel;
|
|
lbBgGroup1: TLabel;
|
|
tbBgGroup1: TTrackBar;
|
|
Panel2: TPanel;
|
|
iBgGroup1: TImage;
|
|
GroupBox1: TGroupBox;
|
|
Label1: TLabel;
|
|
lbBg: TLabel;
|
|
Panel1: TPanel;
|
|
iBg: TImage;
|
|
tbBg: TTrackBar;
|
|
procedure lbBgDblClick(Sender: TObject);
|
|
procedure lbBgGroup1DblClick(Sender: TObject);
|
|
procedure lbBgGroup2DblClick(Sender: TObject);
|
|
procedure lbBgGroup3DblClick(Sender: TObject);
|
|
procedure iBgClick(Sender: TObject);
|
|
procedure iBgGroup1Click(Sender: TObject);
|
|
procedure iBgGroup2Click(Sender: TObject);
|
|
procedure iBgGroup3Click(Sender: TObject);
|
|
procedure tbBgChange(Sender: TObject);
|
|
procedure tbBgGroup1Change(Sender: TObject);
|
|
procedure tbBgGroup2Change(Sender: TObject);
|
|
procedure tbBgGroup3Change(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure nbMainGroupHotTrack(Sender: TObject;
|
|
Group: TdxNavBarGroup);
|
|
procedure nbMainCalcGroupClientHeight(Sender: TObject;
|
|
ViewInfo: TdxNavBarGroupViewInfo; var Height: Integer);
|
|
procedure nbMainCustomDrawGroupClientForeground(Sender: TObject;
|
|
Canvas: TCanvas; ViewInfo: TdxNavBarGroupViewInfo;
|
|
var Handled: Boolean);
|
|
procedure nbMainGetGroupHint(Sender: TObject; Group: TdxNavBarGroup;
|
|
var Hint: String);
|
|
procedure nbMainCalcGroupHintRect(Sender: TObject;
|
|
Group: TdxNavBarGroup; ViewInfo: TdxNavBarViewInfo; var R: TRect);
|
|
procedure nbMainCustomDrawGroupHint(Sender: TObject;
|
|
ACanvas: TCanvas; AGroup: TdxNavBarGroup; AHint: String; R: TRect;
|
|
var AHandled: Boolean);
|
|
private
|
|
procedure ClearBgImage(AStyleItem: TdxNavBarStyleItem);
|
|
procedure SetBgImage(AStyleItem: TdxNavBarStyleItem);
|
|
procedure SetBgAlphaBlending(AStyleItem: TdxNavBarStyleItem; AValue: Byte);
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
fmAlphaBlendingMain: TfmAlphaBlendingMain;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
{ TForm1 }
|
|
|
|
procedure TfmAlphaBlendingMain.ClearBgImage(AStyleItem: TdxNavBarStyleItem);
|
|
begin
|
|
AStyleItem.Style.Image.Graphic := nil;
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.SetBgAlphaBlending(AStyleItem: TdxNavBarStyleItem; AValue: Byte);
|
|
begin
|
|
AStyleItem.Style.AlphaBlending := AValue;
|
|
AStyleItem.Style.AlphaBlending2 := AValue;
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.SetBgImage(AStyleItem: TdxNavBarStyleItem);
|
|
begin
|
|
if OpenPictureDialog1.Execute then
|
|
AStyleItem.Style.Image.LoadFromFile(OpenPictureDialog1.FileName);
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.lbBgDblClick(Sender: TObject);
|
|
begin
|
|
ClearBgImage(nbMain.StyleBackground);
|
|
iBg.Picture.Graphic := nil;
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.lbBgGroup1DblClick(Sender: TObject);
|
|
begin
|
|
ClearBgImage(nbMain.Groups[0].StyleBackground);
|
|
iBgGroup1.Picture.Graphic := nil;
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.lbBgGroup2DblClick(Sender: TObject);
|
|
begin
|
|
ClearBgImage(nbMain.Groups[1].StyleBackground);
|
|
iBgGroup2.Picture.Graphic := nil;
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.lbBgGroup3DblClick(Sender: TObject);
|
|
begin
|
|
ClearBgImage(nbMain.Groups[2].StyleBackground);
|
|
iBgGroup3.Picture.Graphic := nil;
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.iBgClick(Sender: TObject);
|
|
begin
|
|
SetBgImage(nbMain.StyleBackground);
|
|
iBg.Picture.Assign(nbMain.StyleBackground.Style.Image);
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.iBgGroup1Click(Sender: TObject);
|
|
begin
|
|
SetBgImage(nbMain.Groups[0].StyleBackground);
|
|
iBgGroup1.Picture.Assign(nbMain.Groups[0].StyleBackground.Style.Image);
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.iBgGroup2Click(Sender: TObject);
|
|
begin
|
|
SetBgImage(nbMain.Groups[1].StyleBackground);
|
|
iBgGroup2.Picture.Assign(nbMain.Groups[1].StyleBackground.Style.Image);
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.iBgGroup3Click(Sender: TObject);
|
|
begin
|
|
SetBgImage(nbMain.Groups[2].StyleBackground);
|
|
iBgGroup3.Picture.Assign(nbMain.Groups[2].StyleBackground.Style.Image);
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.tbBgChange(Sender: TObject);
|
|
begin
|
|
SetBgAlphaBlending(nbMain.StyleBackground, tbBg.Position);
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.tbBgGroup1Change(Sender: TObject);
|
|
begin
|
|
SetBgAlphaBlending(nbMain.Groups[0].StyleBackground, tbBgGroup1.Position);
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.tbBgGroup2Change(Sender: TObject);
|
|
begin
|
|
SetBgAlphaBlending(nbMain.Groups[1].StyleBackground, tbBgGroup2.Position);
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.tbBgGroup3Change(Sender: TObject);
|
|
begin
|
|
SetBgAlphaBlending(nbMain.Groups[2].StyleBackground, tbBgGroup3.Position);
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.FormCreate(Sender: TObject);
|
|
begin
|
|
tbBg.Position := nbMain.StyleBackground.Style.AlphaBlending;
|
|
tbBgGroup1.Position := nbMain.Groups[0].StyleBackground.Style.AlphaBlending;
|
|
tbBgGroup2.Position := nbMain.Groups[1].StyleBackground.Style.AlphaBlending;
|
|
tbBgGroup3.Position := nbMain.Groups[2].StyleBackground.Style.AlphaBlending;
|
|
|
|
iBg.Picture.Assign(nbMain.StyleBackground.Style.Image);
|
|
iBgGroup1.Picture.Assign(nbMain.Groups[0].StyleBackground.Style.Image);
|
|
iBgGroup2.Picture.Assign(nbMain.Groups[1].StyleBackground.Style.Image);
|
|
iBgGroup3.Picture.Assign(nbMain.Groups[2].StyleBackground.Style.Image);
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.nbMainGroupHotTrack(Sender: TObject;
|
|
Group: TdxNavBarGroup);
|
|
begin
|
|
if Group = bgDetails then
|
|
bgDetails.LargeImageIndex := 2
|
|
else bgDetails.LargeImageIndex := 3;
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.nbMainCalcGroupClientHeight(Sender: TObject;
|
|
ViewInfo: TdxNavBarGroupViewInfo; var Height: Integer);
|
|
begin
|
|
if (ViewInfo.Group = bgDetails) and ViewInfo.Group.Expanded then
|
|
Height := 50;
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.nbMainCustomDrawGroupClientForeground(Sender: TObject;
|
|
Canvas: TCanvas; ViewInfo: TdxNavBarGroupViewInfo; var Handled: Boolean);
|
|
begin
|
|
if (ViewInfo.Group = bgDetails) and ViewInfo.Group.Expanded then
|
|
begin
|
|
Canvas.Brush.Style := bsClear;
|
|
Canvas.Font.Color := clBlack;
|
|
Canvas.Font.Size := 8;
|
|
Canvas.Font.Style := [fsBold];
|
|
Canvas.TextOut(ViewInfo.ItemsRect.Left + 10, ViewInfo.ItemsRect.Top + 10, 'My Documents');
|
|
Canvas.Font.Style := [];
|
|
Canvas.TextOut(ViewInfo.ItemsRect.Left + 10, ViewInfo.ItemsRect.Top + 24, 'System Folder');
|
|
Handled := True;
|
|
end;
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.nbMainGetGroupHint(Sender: TObject;
|
|
Group: TdxNavBarGroup; var Hint: String);
|
|
begin
|
|
if Group = bgDetails then
|
|
Hint := 'Custom hint for ' + Group.Caption;
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.nbMainCalcGroupHintRect(Sender: TObject;
|
|
Group: TdxNavBarGroup; ViewInfo: TdxNavBarViewInfo; var R: TRect);
|
|
begin
|
|
if Group = bgDetails then
|
|
begin
|
|
R.Right := R.Left + 300;
|
|
R.Bottom := R.Top + 30;
|
|
end;
|
|
end;
|
|
|
|
procedure TfmAlphaBlendingMain.nbMainCustomDrawGroupHint(Sender: TObject;
|
|
ACanvas: TCanvas; AGroup: TdxNavBarGroup; AHint: String; R: TRect;
|
|
var AHandled: Boolean);
|
|
begin
|
|
if AGroup = bgDetails then
|
|
begin
|
|
ACanvas.Pen.Width := 1;
|
|
ACanvas.Pen.Style := psSolid;
|
|
ACanvas.Pen.Color := clYellow;
|
|
ACanvas.Brush.Style := bsSolid;
|
|
ACanvas.Brush.Color := clTeal;
|
|
ACanvas.Rectangle(R.Left, R.Top, R.Right, R.Bottom);
|
|
ACanvas.Brush.Style := bsClear;
|
|
ACanvas.Font.Color := clYellow;
|
|
ACanvas.Font.Size := 14;
|
|
ACanvas.Font.Style := [fsBold];
|
|
DrawText(ACanvas.Handle, PChar(AHint), Length(AHint), R, DT_VCENTER or
|
|
DT_CENTER or DT_SINGLELINE or DT_END_ELLIPSIS or DT_NOPREFIX);
|
|
AHandled := True;
|
|
end;
|
|
end;
|
|
|
|
end.
|