📄 selectivr_.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 + -