Wenn Sie auf der zweiten Platte sind und wollen die erste erhalten, rufen Sie einfach
ClientDataSet1.MoveBy(-1)
Wenn auf den ersten Datensatz, auf den zweiten zu erhalten, rufen Sie
ClientDataSet1.MoveBy(1)
Aber wenn Sie Ihre App wollen dies automatisch tun, ist es einfacher .Next
und .Prior
zu verwenden, wie in
procedure TForm1.ToggleRecord;
begin
ClientDataSet1.Next;
if ClientDataSet1.Eof then
ClientDataset1.Prior;
end;
aktualisieren Die sauberste/einfachste Äquivalent zu dem, was Sie in Ihrer Antwort zu tun scheint
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;
aber es ist ziemlich viel Geschmackssache zu sein. Ymmv ...
Das ist was ich meine. Aber, das Programm sollte wissen, ob ClientDataSet1.MoveBy (1) oder ClientDataSet1.MoveBy (-1) – RedWomen
Ich meine so etwas: 'if ClientDataSet.RecNo = 1 dann ClientDataSet1.MoveBy (1); if ClientDataSet.RecNo = 2 dann ClientDataSet1.MoveBy (-1); 'Machen Sie mehr Sinn in Code geschrieben – RedWomen
Vielen Dank. Ich habe eine Frage. Ich vermisse ein englisches Wort zu fragen, ich versuche es ok? Alles so wie es ist In diesem Code. Nur physisch nicht zum Rekord bewegen, nur um unter dem Verfahren zu spielen und physisch auf dem gleichen Rekord zu bleiben., Ist es möglich? Wir sind auf dem ersten Datensatz ButtonClick und meine Prozedur wird aus dem zweiten Datensatz – RedWomen