⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setting.pas

📁 Delphi编写 IE搜索工具条 应用bho技术
💻 PAS
字号:
unit Setting;

interface

uses
  Windows, SysUtils, Classes, Controls, Forms, ExtCtrls, Graphics, ComCtrls,
  Search, DMU,
  RzPanel, RzDlgBtn, RzButton, RzListVw, RzRadChk;

type
  MoveDataMode = (Up, Down);

  TFrmSet = class(TForm)
    CmdDialogButtons: TRzDialogButtons;
    PanelAll: TPanel;
    Panel: TPanel;
    ToolBar: TRzToolbar;
    BtnSetting: TRzToolButton;
    BtnSE: TRzToolButton;
    PanelCenter: TPanel;
    PanelSet: TPanel;
    Header: TRzPanel;
    Note: TNotebook;
    CmdClear: TRzButton;
    CmdDel: TRzButton;
    CmdAdd: TRzButton;
    CmdEdit: TRzButton;
    LVSE: TRzListView;
    ChkSeHistory: TRzCheckBox;
    CmdUp: TRzButton;
    CmdDown: TRzButton;
    procedure FormCreate(Sender: TObject);
    procedure CmdClearClick(Sender: TObject);
    procedure CmdDelClick(Sender: TObject);
    procedure LVSECustomDrawItem(Sender: TCustomListView; Item: TListItem;
      State: TCustomDrawState; var DefaultDraw: Boolean);
    procedure CmdAddClick(Sender: TObject);
    procedure CmdEditClick(Sender: TObject);
    procedure LVSEClick(Sender: TObject);
    procedure CmdUpClick(Sender: TObject);
    procedure CmdDownClick(Sender: TObject);
  private
    procedure GetTab(Sender: TObject);
  public
    { Public declarations }
  end;

var
  FrmSet: TFrmSet;

implementation

{$R *.dfm}

function MoveData(const ListView: TRzListView; MoveMode: MoveDataMode): Boolean;
var i: integer;
  TmpStr: array[1..2] of string;
begin
  result := false;
  with ListView do
  begin
    if MoveMode = Up then //上移
    begin
      for i := 0 to Items.Count - 1 do
      begin
        if Items[i].Selected then
        begin
          if i = 0 then Exit;
          TmpStr[1] := Items[i - 1].Caption;
          TmpStr[2] := Items[i - 1].SubItems.Strings[0];
          Items[i - 1].Caption := Items[i].Caption;
          Items[i - 1].SubItems.Strings[0] := Items[i].SubItems.Strings[0];
          Items[i - 1].Selected := true;
          Items[i].Caption := TmpStr[1];
          Items[i].SubItems.Strings[0] := TmpStr[2];
          Items[i].Selected := false;
          if i = tag then tag := tag - 1;
        end;
        Refresh;
        result := true;
      end;
    end else if MoveMode = Down then
    begin
      for i := Items.Count - 1 downto 0 do
      begin
        if Items[i].Selected then
        begin
          if i = Items.Count - 1 then Exit;
          TmpStr[1] := Items[i + 1].Caption;
          TmpStr[2] := Items[i + 1].SubItems.Strings[0];
          Items[i + 1].Caption := Items[i].Caption;
          Items[i + 1].SubItems.Strings[0] := Items[i].SubItems.Strings[0];
          Items[i + 1].Selected := true;
          Items[i].Caption := TmpStr[1];
          Items[i].SubItems.Strings[0] := TmpStr[2];
          Items[i].Selected := false;
          if i = tag then tag := tag + 1;
        end;
        if ItemIndex = 10 then
          Refresh;
        result := true;
      end;
    end;
  end;
end;

procedure TFrmSet.GetTab(Sender: TObject);
var i: integer;
  C: TControl;
begin
  for i := 0 to ToolBar.ToolbarControls.Count - 1 do
  begin
    C := TRzToolbarControl(ToolBar.ToolbarControls[i]).Control;
    if C is TRzToolButton then
      TRzToolButton(C).ImageIndex := 2;
  end;
  Note.PageIndex := TRzToolButton(Sender).tag;
  TRzToolButton(Sender).ImageIndex := 3;
  Header.Caption := TRzToolButton(Sender).Caption;
end;

procedure TFrmSet.FormCreate(Sender: TObject);
var i: integer;
begin
  for i := 0 to ComponentCount - 1 do
  begin
    if Components[i] is TRzCheckBox then
      TRzCheckBox(Components[i]).CustomGlyphs.LoadFromResourceName(Hinstance, 'CHECKBOX');
    {if Components[I] is TRzEdit then
      TRzEdit(Components[I]).FrameController := DM.FrameController;
    if Components[I] is TRzSpinEdit then
      TRzSpinEdit(Components[I]).FrameController := DM.FrameController;
    if Components[I] is TRzComboBox then
    begin
      TRzComboBox(Components[I]).Style := csDropDownList;
      TRzComboBox(Components[I]).FrameController := DM.FrameController;
    end;     }
    if Components[i] is TRzToolButton then
    begin
      TRzToolButton(Components[i]).GroupIndex := 1;
      TRzToolButton(Components[i]).ImageIndex := 2;
      TRzToolButton(Components[i]).OnClick := GetTab;
    end;
  end;
  BtnSetting.ImageIndex := 3;
  Note.PageIndex := 0;
end;

procedure TFrmSet.CmdClearClick(Sender: TObject);
begin
  LVSE.Items.Clear;
end;

procedure TFrmSet.CmdDelClick(Sender: TObject);
begin
  if LVSE.Selected = nil then Exit;
  LVSE.DeleteSelected;
end;

procedure TFrmSet.LVSECustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  if Item.Index = LVSE.tag then
    Sender.Canvas.Font.Style := [fsBold] else Sender.Canvas.Font.Style := [];
end;

procedure TFrmSet.CmdAddClick(Sender: TObject);
var List: TListItem;
begin
  with TFrmSearch.Create(self) do
  begin
    TxtName.Clear;
    TxtFormat.Clear;
    ChkDef.Checked := false;
    if (ShowModal = mrOk) and
      (Trim(TxtName.Text) <> '') and
      (UpperCase(Copy(TxtFormat.Text, 1, 7)) = 'HTTP://') and
      (Pos('=[%]', TxtFormat.Text) > 0) then
    begin
      List := LVSE.Items.Add;
      List.Caption := Trim(TxtName.Text);
      List.SubItems.Add(Trim(TxtFormat.Text));
      if ChkDef.Checked then LVSE.tag := LVSE.Items.Count - 1;
      LVSE.Refresh;
    end;
    free;
  end;
end;

procedure TFrmSet.CmdEditClick(Sender: TObject);
begin
  if LVSE.Selected = nil then Exit;
  with TFrmSearch.Create(self) do
  begin
    TxtName.Text := LVSE.Selected.Caption;
    TxtFormat.Text := LVSE.Selected.SubItems.Strings[0];
    if LVSE.Selected.Index = LVSE.tag then ChkDef.Checked := true else ChkDef.Checked := false;
    if (ShowModal = mrOk) and
      (Trim(TxtName.Text) <> '') and
      (UpperCase(Copy(TxtFormat.Text, 1, 7)) = 'HTTP://') and
      (Pos('=[%]', TxtFormat.Text) > 0) then
    begin
      LVSE.Selected.Caption := Trim(TxtName.Text);
      LVSE.Selected.SubItems.Strings[0] := Trim(TxtFormat.Text);
      if ChkDef.Checked then LVSE.tag := LVSE.Selected.Index;
      LVSE.Refresh;
    end;
    free;
  end;
end;

procedure TFrmSet.LVSEClick(Sender: TObject);
begin
  if LVSE.Selected = nil then
  begin
    CmdDel.Enabled := false;
    CmdEdit.Enabled := false;
  end else
  begin
    CmdDel.Enabled := true;
    CmdEdit.Enabled := true;
  end;
end;

procedure TFrmSet.CmdUpClick(Sender: TObject);
begin
  MoveData(LVSE, Up);
end;

procedure TFrmSet.CmdDownClick(Sender: TObject);
begin
  MoveData(LVSE, Down);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -