Natürlich geht es ohne @. Du solltest PClickedField halt nicht als Pointer, sondern als TShape (oder was auch immer) deklarieren. Nebenbei solltest du sie nicht global deklarieren, sondern in dem Fall im private-Abschnitt von TForm1.
Delphi-Quellcode:
type
TForm1 = class(TForm)
{...}
private
FClickedField: TShape;
public
{...}
end;
{...}
procedure TForm1.SelectField(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if FClickedField <> nil then
FClickedField.Pen.Style := psClear;
FClickedField := TShape(Sender);
FClickedField.Pen.Style := psSolid;
end;
In Delphi brauchst du im Normalfall den Adressoperator nicht.