Danke ConnorMcLeod, die Funktion Locate war die, die meinem Arbeitskollegen nicht mehr eingefallen war, weshalb ich den Umweg über die Bookmarks gemacht habe. Sieht deutlich schöner aus mit dem Locate.
Code:
procedure TfrmMain.BtnDateiZuPosClick(Sender: TObject);
var sTemp : String;
LetzteID : Integer;
begin
if Sender = TObject(BtnOrdnerZuPos) then FODDateiPos.Options:= [fdoPickFolders]
else if Sender = TObject(BtnDateiZuPos) then FODDateiPos.Options:= [];
// In
DB schreiben
if FODDateiPos.Execute then
begin
sTemp:= FODDateiPos.FileName;
SetSQLAndExecute(AdsQryMFA, 'UPDATE RLS_Detail ' +
'SET Datei = ' + QuotedStr(sTemp) + ' ' +
'WHERE ID = ' + AdsQuePosition.FieldByName('ID').AsString);
LetzteID:= AdsQuePosition.FieldByName('ID').AsInteger;
end;
// Aktualisieren
AdsQuePosition.Refresh;
Application.ProcessMessages;
AdsQuePosition.Locate('ID', LetzteID, []);
LblHyperlink.Caption:= AdsQuePosition.FieldByName('Datei').AsString;
end;
Richtig funktioniert hat es allerdings erst, nachdem ich nach dem Refresh noch ein ProcessMessages mache. Dadurch kann ich mir auch den ******* Timer sparen.