So, mal schauen, ob ich das richtig verstanden habe.
Du hast eine Listbox mit einiges Einträgen. Wenn der User auf einen Eintrag klickt, dann soll der String in die Variable X kopiert werden, richtig?
Da wäre es
IMHO einfacher, wenn du das ganze in das OnClick-Ereignis der Listbox schreibst, und dir den markierten Eintrag einfach mit
x:=LB_id.Items[LB_id.ItemIndex];
holst.
Dann hast du den schonmal on X stehen.
Zum Zugriffsfehler:
Kann es sein, dass du den Parameter vorher nicht angelegt hast? Schaue dort mal on der
OH nach
CreateParam.
Dann wundert es mich aber, dass der Fehler in der nächsten Zuweisung nicht kommt.