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

📄 selectivr_.pas

📁 以可视的方式画IVR语音导航的流程,并把流程做为源文件保存起来
💻 PAS
字号:
unit SelectIVR_;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, CheckLst, IVRPoint, ExtCtrls, ComCtrls,
  CLAdvanceVCL;

type
  TIVRNode = record
    iType, iContent: Integer;
  end;
  PIVRNode = ^TIVRNode;

  TSelectIVR = class(TForm)
    BtnOK: TBitBtn;
    BtnCancel: TBitBtn;
    BtnSelectAll: TBitBtn;
    Panel1: TPanel;
    IVRItem: TCLHintListBox;
    IVRType: TTreeView;
    Splitter1: TSplitter;
    Panel2: TPanel;
    Splitter2: TSplitter;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    editID: TEdit;
    editCaption: TEdit;
    editComment: TMemo;
    procedure BtnSelectAllClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure IVRTypeChange(Sender: TObject; Node: TTreeNode);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure IVRItemClick(Sender: TObject);
    procedure BtnOKClick(Sender: TObject);
  private
    IVRItemID: TStringList;
    SelectIndex: Integer;
    { Private declarations }
  public
    function Selec: Integer;
    { Public declarations }
  end;

var
  SelectIVR: TSelectIVR;

implementation

uses main_;

{$R *.DFM}

procedure TSelectIVR.BtnSelectAllClick(Sender: TObject);
var
    i: Integer;
begin
    with IVRType do
    begin
        for i := 0 to Items.Count - 1 do
            Items[i].Expand(True);
        Items[0].Selected := True;
        SetFocus();
    end;
end;

procedure TSelectIVR.FormShow(Sender: TObject);
begin
    IVRItemID := TStringList.Create();
    if IVRType.Items[0].Selected then
        IVRTypeChange(Self, IVRType.Items[0])
    else
        IVRType.Items[0].Selected := True;
    IVRType.SetFocus();
    editID.Text := '';
    editCaption.Text := '';
    editComment.Text := '';
    SelectIndex := -1;
end;

procedure TSelectIVR.IVRTypeChange(Sender: TObject; Node: TTreeNode);
var
    sType, sContent: Integer;
    i: Integer;
    tmpIVR: TIVRPoint;
begin
    i := Integer(Node.Data);
    sType := i div 1000;
    sContent := i mod 1000;
    IVRItem.Clear();
    IVRItemID.Clear();
    for i := 0 to main.IVRPointTree.Items.Count - 1 do
    begin
        tmpIVR := TIVRPoint(main.IVRPointTree.Items[i].Data);
        if sContent = 0 then
        begin
            if tmpIVR.IVRMemo.iType = sType then
            begin
                IVRItem.Items.Add(tmpIVR.Caption);
                IVRItemID.Add(IntToStr(i));
            end;
        end else begin
            if (tmpIVR.IVRMemo.iType = sType) and (tmpIVR.IVRMemo.iContent = sContent) then
            begin
                IVRItem.Items.Add(tmpIVR.Caption);
                IVRItemID.Add(IntToStr(i));
            end;
        end;
    end;
end;

procedure TSelectIVR.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    IVRItemID.Free();
end;

procedure TSelectIVR.IVRItemClick(Sender: TObject);
var
    tmpIVR: TIVRPoint;
begin
    if IVRItem.ItemIndex >= 0 then
    begin
        tmpIVR := TIVRPoint(main.IVRPointTree.Items[StrToInt(IVRItemID[IVRItem.ItemIndex])].Data);
        editID.Text := IntToStr(tmpIVR.IVRMemo.ID);
        editCaption.Text := tmpIVR.Caption;
        editComment.Text := tmpIVR.IVRMemo.iComment;
    end;
end;

procedure TSelectIVR.BtnOKClick(Sender: TObject);
begin
    if IVRItem.ItemIndex >= 0 then
        SelectIndex := StrToInt(IVRItemID[IVRItem.ItemIndex]);
end;

function TSelectIVR.Selec: Integer;
begin
    if ShowModal() = mrOK then
        Result := SelectIndex
    else
        Result := -1;
end;

end.

⌨️ 快捷键说明

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