Hey willkommen im Forum!
Deine Fehlermeldung beschreibt doch schon dein erstes Problem: die procedure loadfromfile erwartet as Argument einen Dateinamen. Dein Quelltext wäre richtig, wenn dein Bild tatsächlich "ABild" heißt (ohne Dateiendung) und sich im Ordner befindet, wo auch die ausführbare Echse hinkompiliert wird. Such mal die Dateiendung und versuch die Bilder richtig einzulesen.
Zweites Problem ist die if-Abfrage. Ein Image ist ein
VCL Objekt, so wie ein Button, ein Edit-Feld, oder eine Memo. Du hast zwei Bilder auf deinem Formular und mit der If-Abfrage prüfst du, ob Image1 identisch mit Image2 ist, was immer false zurückliefern wird. Stell es dir zunächst vielleicht mal wie 2 Bilderrahmen vor (ein roter und ein blauer), wo du Bilder "reinladen" kannst. Die zwei Rahmen sind nicht identisch, auch wenn identische Bilder eingeladen sind.
Am besten definierst du dir eine zusätzliche Variable BildIndex1, BildIndex2: integer, die mit ganzen Zahlen speichert, ob ABild (z.B. = 0) oder BBild (z.B. = 1) in image1 bzw. image2 geladen worden ist.
Dann wäre deine if Abfrage:
if BildIndex1= BildIndex2 then....
Um zufällige Bilder in deine Images einzuladen, guck dir mal den Befehl random an.
Besten Gruß