在Jvdbgrid1
table
中,我始终只有两个ClientDataSet
条记录。
当我在第一张唱片时,如何进入第二张唱片,反之亦然。
当我在第二张唱片时,如何进入第一张唱片。
所以(buttonClick
)一旦记录为+1 -1
如何在代码中保存?
答案 0 :(得分:2)
当你在第二张唱片上并希望到达第一张唱片时,请致电
ClientDataSet1.MoveBy(-1)
当在第一个记录上时,要到达第二个记录,请致电
ClientDataSet1.MoveBy(1)
但如果您希望自己的应用自动执行此操作,则可以更轻松地使用.Next
和.Prior
,例如
procedure TForm1.ToggleRecord;
begin
ClientDataSet1.Next;
if ClientDataSet1.Eof then
ClientDataset1.Prior;
end;
更新您在答案中所做的最干净/最简单的等同似乎是
procedure TForm1.PlayFile;
begin
ShowMessage(IntToStr(ClientDataSet1.RecNo));
end;
procedure TForm1.ToggleRecord2;
var
Distance : Integer;
begin
if ClientDataSet1.RecNo = 2 then
Distance := -1
else
Distance := 1;
ClientDataSet1.MoveBy(Distance);
PlayFile;
Distance := - Distance;
ClientDataSet1.MoveBy(Distance);
end;
但这几乎是品味问题。 Ymmv ......
答案 1 :(得分:0)
最后我成功了:) 这正是我的意思。问你。 您可以更明智地编写此代码(更好)
procedure TForm1.btn1Click(Sender: TObject);
begin
if assigned(idictionary) then
begin
if ClientDataSet1.RecNo = 1 then
begin
ClientDataSet1.Next;
PlayFile;
ClientDataSet1.Prior;
end;
if ClientDataSet1.RecNo = 2 then
begin
ClientDataSet1.Prior;
PlayFile;
ClientDataSet1.Next;
end;
end;
end;