y:=wfile.Selected.Index;
c:=wfile.items.count-1;
if y<>c then
begin
z:=y+1;
wfile.Items.Item[z].Selected:=true;
wfile.Refresh;
end
else
begin
exit;
end;
移动到上一条时同样有方法是正确的,为什么向下移不行呢
c:=wfile.items.count-1;
if y<>c then
begin
z:=y+1;
wfile.Items.Item[z].Selected:=true;
wfile.Refresh;
end
else
begin
exit;
end;
移动到上一条时同样有方法是正确的,为什么向下移不行呢
解决方案 »
- is not a valid integer value delphi问题
- 高分赠送请高手帮小第这个问题!!!!
- 如何创建二进制文件
- 请帮我看一下这个按钮事件的代码错在那了?
- adoQuery1问题,有分
- 请教各位如何实现dbgrid中按住shift多选的问题?
- 如何让WebBrowser使用本地的 css/js文件!
- 我用clientdataset1.applyupdates(0)提交后,如何知道已提交成功,和提交失败。
- 如何防止应用程序被多次运行
- 在WIN2K(SP2)+D6+ORACLE8I2环境下,用SOCKET SERVER为何总报STACK OVER FLOW错误?
- 导库,50分
- 简单问题,要分的进来
if ListView1.Selected=nil then exit;
If ListView1.Selected.Index<ListView1.Items.Count-1 then
ListView1.Items[ListView1.Selected.Index+1].Selected:=true;
下面的代码简练,正确。
if wfile.Selected.GetNextVisible <> nil then
wfile.Selected.GetNextVisible.Selected := True;
等分!!!
y := wfile.Selected.Index;
指的是在同一层中的相对Index.
如你所说的错误,应该是你的倒数第二个应该和倒数
第一个不在同一层次,呵呵,我说的对不对。
你可以使用
y := wfile.Selected.AbsoluteIndex;得到它的绝对Index。
那你的方法也就对了。不过还是使用成员函数比较好。
你的代碼問題很大,建議先看一下LZ的題目,他問的是ListView不是TreeView,ListView沒有GetNextVisible這一成員,呵呵
看我改的:
if InRange(ListView1.ItemIndex,0,ListView1.Items.Count-2) then
ListView1.Items[ListView1.ItemIndex+1].Selected := True;
InRange函數使用得不錯,代碼上比我的更加簡潔,但性能上,我認為是相當的,特別是ListView1.ItemIndex,繞了幾個函數特別是虛函數,本質上還是取的ListView1.Selected.Index.
平手。
我认为写程序是一种创造性的艺术行为。
力求简洁,优美。
同意你的观点.