首页 > 解决方案 > Delphi 从字符串中设置 ComboEdit 项目?

问题描述

我目前在 ListView 中显示“商品”,listview 有文章、数量、iemsls 和名称。

在项目的 DoubleClick 上,我想读取变量并将它们放在 TEdit 字段中,并将“iemsls”放在预先编写好的项目的 ComboEdit 中,如何检查 ComboEdit 中的哪个项目与字符串相同并设置它到那个?

      igiDoubleTap:
     begin
     global_norakstisanadoc_editing := true;
     SelectedItemIndex := F_SS_MAIN.ListView2.Selected.index;

     ListView2.Enabled := false;
     SpeedButton6.Enabled := false;
     SpeedButton7.Enabled := false;

     quant_bef := (TListItemText(F_SS_MAIN.ListView1.Items.AppearanceItem[index].Objects.FindDrawable('Text2')).Text);
     quant_aft := StringReplace(quant_bef, 'gb', '', [rfReplaceAll, rfIgnoreCase]);

     Edit_artikuls_norakstisana.Text := ListView2.Items.Item[SelectedItemIndex].View.FindObject('artikuls').Data.ToString;
     edit_daudzums_norakstisana.Text := quant_aft;
     label_prece_from_ean.Text := ListView2.Items.Item[SelectedItemIndex].View.FindObject('prece').Data.ToString;

     ComboEdit := ListView2.Items.Item[SelectedItemIndex].View.FindObject('iemsls').Data.ToString;

     end;

这是目前我正在使用的 DoubleTap 方法

标签: delphidelphi-10.1-berlin

解决方案


在 VCL 和 FMX 中,TComboBox.Items属性都是一个TStrings对象,它有一个IndexOf()方法,并且TComboBox有一个ItemIndex属性用于通过索引设置当前选定的项目。

所以,试试这个:

ComboEdit1.ItemIndex := ComboEdit1.Items.IndexOf(
  ListView2.Items.Item[SelectedItemIndex].View.FindObject('iemsls').Data.ToString
);

推荐阅读