Sorry, du drückst dich unklar aus.
Was genau ist das Problem?
Long in VB6 und Integer in Delphi sind immer 32 Bit groß.
Auch im 64 Bit Build, in der Spiegelwelt und auf der dunklen Seite der Macht.
Die meisten deiner Überläufe passieren wohl deshalb, weil du irrtümlich in Delphi zu kleine Datentypen nimmst.
Warum nimmst du Byte und Smallint, wenn der Code, den du portieren willst, ausdrücklich Long vorgibt?
Da brauchste dich wirklich nicht wundern, wenn es nicht klappt.
Wahrscheinlich wäre es gut, wenn du zum Start erstmal eine externe Bibliothek verwendest.
Zum Beispiel siehe vorletzten Beitrag:
https://www.entwickler-ecke.de/topic...n_36027,0.html