Delphi 如何向RzCheckList组件添加名称=值对?

Delphi 如何向RzCheckList组件添加名称=值对?,delphi,delphi-10.4-sydney,checklistbox,Delphi,Delphi 10.4 Sydney,Checklistbox,在Delphi Win32 VCL应用程序中,我使用了TRzCheckList组件,该组件类似于标准的TCheckListBox,但有几个附加功能 TRzCheckList是包含的“Konopka签名VCL控件”的一部分,可从Delphi IDE中的GetIt软件包管理器免费获得: 我尝试使用以下代码将“Name=Value”对添加到RzCheckList: ThisItem := RzCheckList1.AddItemToGroup(0, 'MyName'); RzCheckList1.I

在Delphi Win32 VCL应用程序中,我使用了
TRzCheckList
组件,该组件类似于标准的
TCheckListBox
,但有几个附加功能

TRzCheckList
是包含的“Konopka签名VCL控件”的一部分,可从Delphi IDE中的GetIt软件包管理器免费获得:

我尝试使用以下代码将“Name=Value”对添加到RzCheckList:

ThisItem := RzCheckList1.AddItemToGroup(0, 'MyName');
RzCheckList1.Items.ValueFromIndex[ThisItem] := 'MyValue';
RzCheckList1.Items.AddPair('MyName', 'MyValue');
但是,我没有在RzCheckList中显示“MyName”(将“MyValue”作为项目的隐藏部分),而是在运行时获得以下信息:

类似地,使用此代码时:

ThisItem := RzCheckList1.AddItemToGroup(0, 'MyName');
RzCheckList1.Items.ValueFromIndex[ThisItem] := 'MyValue';
RzCheckList1.Items.AddPair('MyName', 'MyValue');
…我得到了这个结果:


那么,如何将名称=值对添加到RzCheckList组件中,并仅显示名称部分?

使用以下代码将该对添加到特定组中:

RzCheckList1.AddItemToGroup(0, 'MyName=MyValue');
然后在
OnDrawItem
事件处理程序中实现此代码:

procedure TformMain.RzCheckList1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
  Flags: Longint;
  Data: String;
  FCanvas: TCanvas;
  CheckListBox: TCheckListBox;
begin
  CheckListBox := TCheckListBox(Control);
  FCanvas := CheckListBox.Canvas;
  FCanvas.FillRect(Rect);
  if Index < CheckListBox.Count then
  begin
    Flags := DrawTextBiDiModeFlags(DT_SINGLELINE or DT_VCENTER or DT_NOPREFIX);
    if not UseRightToLeftAlignment then
      Inc(Rect.Left, 2)
    else
      Dec(Rect.Right, 2);
    Data := CheckListBox.Items.Names[Index];

    DrawText(FCanvas.Handle, Data, Length(Data), Rect, Flags);
  end;
end;
过程TformMain.RzCheckList1DrawItem(控件:TWinControl;索引:Integer;Rect:TRect;状态:TOwnerDrawState);
变量
旗帜:长;
数据:字符串;
FCanvas:TCanvas;
CheckListBox:CheckListBox;
开始
CheckListBox:=CheckListBox(控件);
FCanvas:=CheckListBox.Canvas;
FCanvas.FillRect(Rect);
如果索引
这将在运行时获得所需的结果: