📄 lru.pas
字号:
unit LRU;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, FormCont;
type
TFormLRU = class(TForm)
Panel: TPanel;
MemoText: TMemo;
CheckBoxViewLRU: TCheckBox;
ListBoxLRU: TListBox;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure CheckBoxViewLRUClick(Sender: TObject);
procedure ListBoxLRUClick(Sender: TObject);
private
public
published
function FCGetExtraDataClass: TFCExtraDataClass;
procedure FCGetExtraData(ExtraData: TFCExtraData);
procedure FCSetExtraData(ExtraData: TFCExtraData);
end;
TLRUExtraData = class(TFCExtraData)
public
Checked: Boolean;
end;
var
FormLRU: TFormLRU;
implementation
uses Navigator, TransEff, teSlide;
{$R *.DFM}
function TFormLRU.FCGetExtraDataClass: TFCExtraDataClass;
begin
Result := TLRUExtraData;
end;
procedure TFormLRU.FCGetExtraData(ExtraData: TFCExtraData);
begin
CheckBoxViewLRU.Checked := (ExtraData as TLRUExtraData).Checked;
end;
procedure TFormLRU.FCSetExtraData(ExtraData: TFCExtraData);
begin
(ExtraData as TLRUExtraData).Checked := CheckBoxViewLRU.Checked;
end;
procedure TFormLRU.FormCreate(Sender: TObject);
begin
if Screen.PixelsPerInch > PixelsPerInch then
MemoText.Font.Size := 8;
MemoText.WordWrap := True;
end;
procedure TFormLRU.FormShow(Sender: TObject);
var
i: Integer;
begin
for i:=1 to FormNavigator.FormContainerNavigator.LRUFormCount do
ListBoxLRU.Items.Add(
FormNavigator.FormContainerNavigator.LRUFormsData[i].Description);
if FormNavigator.FormContainerNavigator.LRUFormIndex <> 0 then
ListBoxLRU.ItemIndex := FormNavigator.FormContainerNavigator.LRUFormIndex-1;
end;
procedure TFormLRU.CheckBoxViewLRUClick(Sender: TObject);
var
Transition: TSlideTransition;
begin
Transition := TSlideTransition.Create;
try
Transition.Milliseconds := 500;
if ListBoxLRU.Visible
then
begin
Transition.Direction := tedDownRight;
Transition.ElasticSrc := True;
end
else
begin
Transition.Direction := tedUpLeft;
Transition.ElasticDst := True;
end;
Transition.Prepare(ListBoxLRU.Parent, ListBoxLRU.BoundsRect);
ListBoxLRU.Visible := CheckBoxViewLRU.Checked;
if Transition.Prepared then
Transition.Execute;
finally
Transition.Free;
end;
end;
procedure TFormLRU.ListBoxLRUClick(Sender: TObject);
var
SaveCursor: TCursor;
begin
if ListBoxLRU.ItemIndex <> -1 then
begin
SaveCursor := Screen.Cursor;
Screen.Cursor := crHourglass;
try
FormNavigator.SelectNode(FormNavigator.FormContainerNavigator.
LRUFormsData[ListBoxLRU.ItemIndex+1].Description);
FormNavigator.FormContainerNavigator.ShowLRUFormEx(ListBoxLRU.ItemIndex+1,
True, FormNavigator.TransEffct, nil, FormNavigator.Align);
finally
Screen.Cursor := SaveCursor;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -