Die Funktion AllocateRecordID gibt doch einen Pointer zurück.
Daher ist folgende Zeile:
String(Result) := MyDataset.Bookmark;// Hier passiert das.
ziemlich unlogisch.
Wenn schon, dann doch eher so:
Delphi-Quellcode:
function TVTABLE.AllocateRecordID: Pointer;
Begin
if sfRecno in supported then
Result := Pointer(FCurRec)
else
Result := PChar(Dataset.Bookmark); // PChar zu Zuweisungkompatibel zu Pointer
end;
PS: wenn du deine Bilder in GIF umwandelst, brauchen sie wensentlich weniger Speicher und Internetbandbreite. Du kannst deinen Betrag editieren und auch nachträglich neue Versionen (GIF-Datei) hochladen.