📄 unit1.pas
字号:
{ Unit: Unit1
===========================================================================
The contents of this file are subject to the Bluecave Public License V 1.1
(the "License"). You may not copy or use this file, in either source code
or executable form, except in compliance with the License. You may obtain
a copy of the License at http://www.bluecave.net/licenses/.
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the
License.
Copyright (C) 2001 Bluecave Software. All Rights Reserved.
http://www.bluecave.net/
Copyright (C) 2001 Jouni Airaksinen. All Rights Reserved.
http://Mintus.Codefield.com/ -- Mintus@Codefield.com
===========================================================================
Unit description:
BarMenus Demo Copyright (C) 2001 Bluecave Software.
=========================================================================== }
{.$I DFS.inc}
{.$I BcDirectives.inc}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, BarMenus, ImgList, ExtCtrls, ComCtrls, StdCtrls, BcDrawModule,
BcCustomDrawModule;
type
TForm1 = class(TForm)
BcBarPopupMenu1: TBcBarPopupMenu;
mnuCopy: TMenuItem;
mnuCut: TMenuItem;
mnuPaste: TMenuItem;
mnuEnabled: TMenuItem;
mnuSearch: TMenuItem;
mnuReplace: TMenuItem;
mnuSelectAll: TMenuItem;
mnuSelectionLine: TMenuItem;
mnuConfigurationLine: TMenuItem;
mnuProperties: TMenuItem;
mnuEnabledLine: TMenuItem;
mnuSearchLine: TMenuItem;
PopupMenuImages: TImageList;
mnuEditingLine: TMenuItem;
BcBarPopupMenu2: TBcBarPopupMenu;
MenuItem1: TMenuItem;
MenuItem2: TMenuItem;
MenuItem12: TMenuItem;
Item11: TMenuItem;
Item21: TMenuItem;
N1: TMenuItem;
Item22: TMenuItem;
SomemoreitemsItem21: TMenuItem;
SomemoreitemsItem31: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
PlahplahplahAgainitem1: TMenuItem;
ThisisdemoapplicationfortheBarMenus1: TMenuItem;
N5: TMenuItem;
Exit1: TMenuItem;
Panel1: TPanel;
Panel2: TPanel;
Copyright2001BluecaveSoftware1: TMenuItem;
httpwwwbluecavenet1: TMenuItem;
BcBarMainMenu1: TBcBarMainMenu;
MnuFile: TMenuItem;
Testing2: TMenuItem;
Search1: TMenuItem;
View1: TMenuItem;
Help1: TMenuItem;
MnuNew: TMenuItem;
Save1: TMenuItem;
Open1: TMenuItem;
N4: TMenuItem;
SaveAs1: TMenuItem;
SaveCopyAs1: TMenuItem;
N6: TMenuItem;
Close1: TMenuItem;
CloseAll1: TMenuItem;
N7: TMenuItem;
Exit2: TMenuItem;
Copy1: TMenuItem;
Cut1: TMenuItem;
Paste1: TMenuItem;
Delete1: TMenuItem;
SelectAll1: TMenuItem;
N8: TMenuItem;
Find1: TMenuItem;
Replace1: TMenuItem;
N9: TMenuItem;
FindInFiles1: TMenuItem;
Searchagain1: TMenuItem;
Arrange1: TMenuItem;
Minimizeall1: TMenuItem;
FAQ1: TMenuItem;
Web1: TMenuItem;
FAQ2: TMenuItem;
Homepage1: TMenuItem;
N10: TMenuItem;
Downloadlatestversion1: TMenuItem;
About1: TMenuItem;
N11: TMenuItem;
Content1: TMenuItem;
Topic1: TMenuItem;
Find2: TMenuItem;
N12: TMenuItem;
Editor11: TMenuItem;
N2Images1: TMenuItem;
N3Musicplayer1: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
mnuCustom1: TMenuItem;
mnuCustom2: TMenuItem;
mnuCustom3: TMenuItem;
mnuCustom4: TMenuItem;
SampleCustomdrawnitems1: TMenuItem;
N19: TMenuItem;
mnuCustom5: TMenuItem;
mnuCustom6: TMenuItem;
mnuCustom7: TMenuItem;
Panel3: TPanel;
BcBarPopupMenu3: TBcBarPopupMenu;
Inthismenu1: TMenuItem;
through1: TMenuItem;
N20: TMenuItem;
Asyoucansee1: TMenuItem;
formelyknownasBarPopupMenu1: TMenuItem;
youcandoalmostanythingyouwant1: TMenuItem;
iftheDefaultDrawdoesnt1: TMenuItem;
N21: TMenuItem;
Virtuallyanythingispossible1: TMenuItem;
Eventhoughthisexampleispretty1: TMenuItem;
simpleitdemonstratesthepower1: TMenuItem;
Label1: TLabel;
Image1: TImage;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
FontDialog1: TFontDialog;
CheckBox4: TCheckBox;
BcCustomDrawModule1: TBcCustomDrawModule;
CheckBox5: TCheckBox;
CheckBox6: TCheckBox;
CheckBox7: TCheckBox;
Panel4: TPanel;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
CheckBox8: TCheckBox;
procedure mnuEnabledClick(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure About1Click(Sender: TObject);
procedure MnuNewClick(Sender: TObject);
procedure Downloadlatestversion1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BcBarPopupMenu3BeforeDrawBar(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; var DefaultDraw: Boolean);
procedure BcBarPopupMenu1AfterDrawBar(Sender: TObject;
ACanvas: TCanvas; ARect: TRect);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure CheckBox3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure CheckBox4Click(Sender: TObject);
procedure Inthismenu1MeasureItem(Sender: TObject; ACanvas: TCanvas;
var Width, Height: Integer);
procedure BcBarPopupMenu2MeasureMenuItem(Sender: TObject;
AMenuItem: TMenuItem; ACanvas: TCanvas; var Width, Height: Integer;
ABarVisible: Boolean; var DefaultMeasure: Boolean);
procedure BcCustomDrawModule1DrawMenuItem(Sender: TObject;
AMenuItem: TMenuItem; ACanvas: TCanvas; ARect: TRect;
State: TOwnerDrawState; ABarVisible: Boolean; var DefaultDraw: Boolean);
procedure FormDestroy(Sender: TObject);
procedure CheckBox8Click(Sender: TObject);
procedure CheckBox7Click(Sender: TObject);
procedure CheckBox5Click(Sender: TObject);
procedure CheckBox6Click(Sender: TObject);
private
{ Private declarations }
FDrawBuffer: TBitmap;
function GetDrawBuffer: TBitmap;
public
{ Public declarations }
procedure DrawGradient(Canvas: TCanvas; ARect: TRect; StartingColor,
EndingColor: TColor; Style: TGradientStyle);
property DrawBuffer: TBitmap read GetDrawBuffer;
end;
var
Form1: TForm1;
implementation
uses ShellAPI, BcRectUtilities;
{$R *.DFM}
{ Gradient drawing uses DrawBuffer to buffer the drawing to memory and then
copying drawn part to visible screen (makes things faster but uses a bit
more memory and resources). Recommended way if using gsDiagonal* gradient
styles. BarMenus.DrawGradient does not use buffer as it is low level procedure. }
procedure TForm1.DrawGradient(Canvas: TCanvas; ARect: TRect; StartingColor,
EndingColor: TColor; Style: TGradientStyle);
begin
DrawBuffer.Height := RectHeight(ARect);
DrawBuffer.Width := RectWidth(ARect);
BarMenus.DrawGradient(DrawBuffer, nil, BitmapRect(DrawBuffer), startingColor, EndingColor, Style);
Canvas.Draw(ARect.Left, ARect.Top, DrawBuffer); // copy the buffer
DrawBuffer.Height := 0;
DrawBuffer.Width := 0;
end;
procedure TForm1.mnuEnabledClick(Sender: TObject);
var
bEnabled: Boolean;
begin
bEnabled := not TMenuItem(Sender).Checked;
TMenuItem(Sender).Checked := bEnabled;
BcBarPopupMenu1.Bar.Visible := bEnabled;
mnuEditingLine.Enabled := bEnabled;
mnuEditingLine.Visible := bEnabled;
mnuSelectionLine.Enabled := bEnabled;
mnuSearchLine.Enabled := bEnabled;
mnuConfigurationLine.Enabled := bEnabled;
end;
procedure TForm1.Exit1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.About1Click(Sender: TObject);
begin
ShowMessage(PChar('BarMenus Demo Copyright (C) Bluecave Software. All Rights Reserved.' + #13 +
'BarMenu Components Copyright (C) Bluecave Software. All Rights Reserved.'));
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -