delphi - TComboBox 和 TListBox 项目删除?

标签 delphi firemonkey

我正在尝试从 TEdit 中给出的文本将项目添加到 TListBoxTComboBoxTListBox TComboBox 中添加项目时,我的代码工作正常,但是当我尝试从 TListBox 自身和 中删除 TListBox 中的选定项目时TComobBox 它显示访问冲突。

以下是我的代码的过程:-

procedure TMainForm.Button1Click(Sender: TObject);
begin
  ListBox1.Items.Add(Edit1.Text);   
  ComboBox1.Items.Add(Edit1.Text);
end;

procedure TMainForm.Button2Click(Sender: TObject);
begin
  ListBox1.Items.Delete(ListBox1.Selected.Index);
  ComboBox1.Items.Delete(ComboBox1.Items.IndexOf(ListBox1.Selected.Text));
end;

已解决:现在解决了一个幼稚的错误吗?这是工作代码:

procedure TMainForm.Button2Click(Sender: TObject);
begin
  ComboBox1.Items.Delete(ComboBox1.Items.IndexOf(ListBox1.Selected.Text));
  ListBox1.Items.Delete(ListBox1.Selected.Index);      
end;

最佳答案

进行删除的安全方法是

procedure TForm1.DeleteItems(const TextToFind : String);
var
  i1,
  i2 : Integer;
begin
  i1 := ListBox1.Items.IndexOf(TextToFind);  
  i2 := ComboBox1.Items.IndexOf(TextToFind);
  if i1 >=0 then
    ListBox1.Items.Delete(i1);
  if i2 >=0 then
    ComboBox1.Items.Delete(i2);
end;

用法:

DeleteItems(Edit1.Text);

因为这不会假设在两个列表中选择了哪些项目。

我让你使用调试器找出为什么你会得到反病毒。你自己去发现比我告诉你更有启发性。

关于delphi - TComboBox 和 TListBox 项目删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48301230/

相关文章:

delphi - 乘法整数溢出 - 编译器错误?

java - 将 Java .class 文件传递​​给 Delphi Constructor

android - 将文本文件加载到 Delphi XE-5 Firemonkey Android 应用程序中的字符串列表中

德尔福XE2 : Application build with runtime package with FireMonkey framework

android - 在 Delphi XE7 中的 Android 上第二次打开表单时出现访问冲突

android - 在图像上绘制文字

delphi - 在 ADO 异步回调期间无法将对象添加到 GlobalInterfaceTable

arrays - 通过带有起始和长度说明符的引用传递静态/动态数组的切片

delphi - 在 FireMonkey 中显示 TEdit 有错误并带有红色边框

c# - 托管 CLR 与使用 ClrCreateManagedInstance - 有什么好处?