aoutlbed.pas
来自「delphi编程控件」· PAS 代码 · 共 555 行 · 第 1/2 页
PAS
555 行
unit aoutlbed;
(*
COPYRIGHT (c) RSD Software 1997 - 98
All Rights Reserved.
*)
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, aimctrls, ExtCtrls, aoutlbar, Menus, aclconst;
type
TFAutoOutLookBarEditor = class(TForm)
Panel3: TPanel;
Bar: TAutoOutLookBar;
AutoOutLookPopupMenu1: TAutoOutLookPopupMenu;
Panel1: TPanel;
Panel2: TPanel;
BOk: TButton;
BCancel: TButton;
bHelp: TButton;
BDefault: TButton;
BIAdd: TButton;
BIInsert: TButton;
BIDelete: TButton;
BIClear: TButton;
BIMoveUp: TButton;
BIMovedown: TButton;
GGroup: TGroupBox;
LIconType: TLabel;
BGAdd: TButton;
BGDelete: TButton;
BGRename: TButton;
CBGIType: TCheckBox;
GItemProp: TGroupBox;
LCustomData: TLabel;
ECustomData: TEdit;
LTag: TLabel;
ETag: TEdit;
SILarge: TAutoSpinImage;
SISmall: TAutoSpinImage;
LSILarge: TLabel;
LSISmall: TLabel;
LCaption: TLabel;
ECaption: TEdit;
BIDefault: TButton;
GStoredItems: TGroupBox;
CBStoredGroup: TComboBox;
LBStoredItems: TAutoImageListBox;
Bevel1: TBevel;
EHint: TEdit;
LHint: TLabel;
BGUp: TButton;
BGDown: TButton;
procedure FormShow(Sender: TObject);
procedure CBStoredGroupClick(Sender: TObject);
procedure BGAddClick(Sender: TObject);
procedure BIAddClick(Sender: TObject);
procedure BGRenameClick(Sender: TObject);
procedure BCancelClick(Sender: TObject);
procedure BOkClick(Sender: TObject);
procedure CBGITypeClick(Sender: TObject);
procedure BGDeleteClick(Sender: TObject);
procedure BIInsertClick(Sender: TObject);
procedure BIDeleteClick(Sender: TObject);
procedure BIClearClick(Sender: TObject);
procedure BIMoveUpClick(Sender: TObject);
procedure BIMovedownClick(Sender: TObject);
procedure LBStoredItemsStartDrag(Sender: TObject;
var DragObject: TDragObject);
procedure LBStoredItemsEndDrag(Sender, Target: TObject; X, Y: Integer);
procedure FormCreate(Sender: TObject);
procedure LBItemsDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure BDefaultClick(Sender: TObject);
procedure ECustomDataExit(Sender: TObject);
procedure ETagKeyPress(Sender: TObject; var Key: Char);
procedure ETagExit(Sender: TObject);
procedure bHelpClick(Sender: TObject);
procedure BarChangeSelectedItem(Sender: TObject);
procedure SILargeChange(Sender: TObject; ItemIndex: Integer);
procedure SISmallChange(Sender: TObject; ItemIndex: Integer);
procedure BarChangeActiveGroup(Sender: TObject);
procedure ECaptionChange(Sender: TObject);
procedure BIDefaultClick(Sender: TObject);
procedure LBStoredItemsDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure LBStoredItemsDragDrop(Sender, Source: TObject; X,
Y: Integer);
procedure EHintChange(Sender: TObject);
procedure BGUpClick(Sender: TObject);
procedure BGDownClick(Sender: TObject);
private
OldSelectedGroup : TAutoOutLookGroup;
OldSelectedIndex : Integer;
procedure SelectItem;
end;
function ShowAutoOutLookBarEditor(ABar : TAutoOutLookBar) : Boolean;
implementation
uses autostrs;
function ShowAutoOutLookBarEditor(ABar : TAutoOutLookBar) : Boolean;
Var
AForm : TFAutoOutLookBarEditor;
begin
Result := False;
if(ABar.Store = Nil) then
MessageDlg(LoadStr(AE_OLB_BARHASNOTSTORE), mtError, [mbOK], -1)
else begin
if(ABar.Store.Count = 0) then
MessageDlg(FmtLoadStr(AE_OLB_STOREBARNOITEM, [ABar.Store.Name]), mtError, [mbOK], -1)
else begin
AForm := TFAutoOutLookBarEditor.Create(Nil);
AForm.Caption := AForm.Caption + ABar.Name;
AForm.Bar.Assign(ABar);
AForm.SILarge.ImageList := ABar.Store.LargeImages;
AForm.SISmall.ImageList := ABar.Store.SmallImages;
if(ABar.Groups.Count > 0) And (ABar.Groups[0].Items.Count > 0) then
AForm.Bar.SelectedItem := AForm.Bar.Groups[0].Items[0];
// AForm.BarChangeSelectedItem(Nil);
AForm.BGDelete.Enabled := ABar.GroupCount > 0;
AForm.BGRename.Enabled := ABar.GroupCount > 0;
AForm.BGUp.Enabled := ABar.GroupCount > 1;
AForm.BGDown.Enabled := ABar.GroupCount > 1;
AForm.ShowModal;
if(AForm.ModalResult = mrOk) then begin
ABar.Assign(AForm.Bar);
Result := True;
end;
AForm.Free;
end;
end;
end;
{$R *.DFM}
procedure TFAutoOutLookBarEditor.SelectItem;
Var
i : Integer;
begin
if(Bar.ActiveGroup = Nil) then begin
OldSelectedGroup := Nil;
OldSelectedIndex := -1;
exit;
end;
if(OldSelectedGroup = Nil) then begin
OldSelectedGroup := Bar.Groups[0];
OldSelectedIndex := 0;
end;
if(OldSelectedIndex < OldSelectedGroup.Items.Count) then
Bar.SelectedItem := OldSelectedGroup.Items[OldSelectedIndex]
else
if(OldSelectedGroup.Items.Count > 0) then
Bar.SelectedItem := OldSelectedGroup.Items[OldSelectedGroup.Items.Count - 1]
else
for i := 0 to Bar.Groups.Count - 1 do
if(Bar.Groups[i].Items.Count > 0) then begin
Bar.SelectedItem := Bar.Groups[i].Items[0];
break;
end;
if(Bar.SelectedItem <> Nil) then begin
Bar.ActiveGroup := Bar.SelectedItem.Group;
Bar.SelectedItem.MakeVisible;
end else begin
OldSelectedGroup := Nil;
OldSelectedIndex := -1;
end;
end;
procedure TFAutoOutLookBarEditor.FormShow(Sender: TObject);
Var
i : Integer;
begin
if(Bar.Store <> Nil) then begin
LBStoredItems.ImageList := Bar.Store.LargeImages;
for i := 0 to Bar.Store.Categories.Count - 1 do
if(Bar.Store.GetCountByCategory(Bar.Store.Categories[i]) > 0) then
CBStoredGroup.Items.Add(Bar.Store.Categories[i]);
if(CBStoredGroup.Items.Count > 0) then begin
CBStoredGroup.ItemIndex := 0;
CBStoredGroupClick(Sender);
end;
end;
end;
procedure TFAutoOutLookBarEditor.CBStoredGroupClick(Sender: TObject);
Var
List : TList;
i : Integer;
item : TAutoOutLookStoredItem;
begin
LBStoredItems.Items.Clear;
List := TList.Create;
Bar.Store.GetItemsByCategory(CBStoredGroup.Items[CBStoredGroup.ItemIndex], List);
for i := 0 to List.Count - 1 do begin
Item := TAutoOutLookStoredItem(List[i]);
LBStoredItems.AddItem(Item.Caption, Item.LargeImage)
end;
List.Free;
LBStoredItems.ItemIndex := 0;
end;
procedure TFAutoOutLookBarEditor.BGAddClick(Sender: TObject);
Var
Group : TAutoOutLookGroup;
begin
Group := Bar.Groups.Add;
Bar.EditGroup(Group);
end;
procedure TFAutoOutLookBarEditor.BIAddClick(Sender: TObject);
Var
item : TAutoOutLookItem;
begin
if(Bar.ActiveGroup = Nil) then
Bar.Groups.Add;
Item := Bar.ActiveGroup.Items.Add;
Item.StoredItem := Bar.Store.GetItemByCategory(
CBStoredGroup.Items[CBStoredGroup.ItemIndex],
LBStoredItems.ItemIndex);
Bar.SelectedItem := Item;
Item.MakeVisible;
end;
procedure TFAutoOutLookBarEditor.BGRenameClick(Sender: TObject);
begin
if(Bar.Groups.Count > 0) then
Bar.EditGroup(Bar.Groups[Bar.ActiveGroupIndex]);
end;
procedure TFAutoOutLookBarEditor.BCancelClick(Sender: TObject);
begin
if(Bar.IsEditing) then begin
ModalResult := mrNone;
Bar.EndEdit(False);
end;
end;
procedure TFAutoOutLookBarEditor.BOkClick(Sender: TObject);
begin
if(Bar.IsEditing) then begin
ModalResult := mrNone;
Bar.EndEdit(True);
end;
end;
procedure TFAutoOutLookBarEditor.CBGITypeClick(Sender: TObject);
begin
if(Bar.Groups.Count > 0) then
if(CBGIType.Checked) then
Bar.Groups[Bar.ActiveGroupIndex].IconType := aotLargeIcon
else Bar.Groups[Bar.ActiveGroupIndex].IconType := aotSmallIcon;
end;
procedure TFAutoOutLookBarEditor.BGDeleteClick(Sender: TObject);
begin
if(Bar.Groups.Count > 0) then
Bar.Groups[Bar.ActiveGroupIndex].Free;
end;
procedure TFAutoOutLookBarEditor.BIInsertClick(Sender: TObject);
Var
item : TAutoOutLookItem;
begin
if(Bar.ActiveGroup = Nil) then
Bar.Groups.Add;
Item := Bar.ActiveGroup.Items.Add;
Item.StoredItem := Bar.Store.GetItemByCategory(
CBStoredGroup.Items[CBStoredGroup.ItemIndex],
LBStoredItems.ItemIndex);
if (Bar.SelectedItem <> Nil) then
Item.Index := Bar.SelectedItem.Index
else Item.Index := 0;
Bar.SelectedItem := Item;
Item.MakeVisible;
end;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?