Moin Traumzauberbaum,
Durch Deine Variablendeklaration erzeugst Du eine Variable Filename vom Typ TPicture.
TPicture ist ein Objekt, dass vor der Benutzung erst einmal erzeugt werden muss.
Da dies bei Dir nicht der Fall ist, hat Filename einen undefinierten Wert.
Die Zeile
Code:
FileName := TPicture.Create;
fehlt.
Dadurch wird ein TPicture Objekt erzeugt, und dessen Adresse in der Variablen Filename gespeichert, so dass nun die Zugriffe keinen Fehler mehr erzeugen.
Wichtig
Ein erzeugtes Objekt muss auch immer wieder freigegeben werden, um Speicherlecks zu vermeiden.
Ablaufprinzip:
Code:
Objekt erzeugen (Create)
[b]try[/b]
[color=#000080][i]// mit dem Objekt arbeiten[/i][/color]
[b]finally[/b]
Objekt freigeben (Free)
[b]end[/b];
In Deinem Falle wäre es wohl sehr viel einfacher statt
Code:
Image1.Picture := FileName;
lieber
Code:
Image1.Picture.LoadFromFile(BildLaden.Filename);
zu verwenden.