2012-06-21 26 views
1

编辑一个文本文件,我得到了编辑和我的画布列表框,列表框内容加载一个txt文件的内容,为了做到这一点我使用的代码:在Delphi

listbox1.Items.LoadFromFile('data\data.dat'); 

当编辑键入名称我想强调它在列表框,所以我使用的代码:

procedure TformMain.Edit1Change(Sender: TObject); 
const 
    indexStart = -1; 
var 
    search : array[0..128] of Char; 
begin 
    StrPCopy(search, Edit1.Text) ; 
    ListBox1.ItemIndex := ListBox1.Perform(LB_SELECTSTRING, indexStart, LongInt(@search)); 
end; 

现在与我的画布按钮,我想从TXT删除选定的名称。

我该怎么做?

在此先感谢!

+1

只是阿里纳斯约['Perform']( http://docwiki.embarcadero.com/Libraries/en/Vcl.Controls.TControl.Perform)甚至通用的参数转换。总是尝试将值转换为函数自身使用的自然参数类型。在这种情况下,你应该使用'LPARAM'而不是'LongInt',所以你的代码就像'ListBox1.Perform(LB_SELECTSTRING,IndexStart,LPARAM(@Search));'' – TLama

回答

4

如果你只是想删除编辑控件相匹配的文本:

var 
    newS : string; 
... 
newS := ListBox1.Items[ListBox1.ItemIndex]; 
Delete(newS,Pos(Edit1.Text,newS),Length(Edit1.Text)); 
ListBox1.Items[ListBox1.ItemIndex] := newS; 

如果你想删除整个行:

ListBox1.Items.Delete(ListBox1.ItemIndex);