I guess you could do it the quick and easy way and use virtual key codes and keypress events, but it might be wiser to capture the keyboard state all at once, using the GetKeyboardState function, to find out what keys are depressed (you'll have to call this in your main game loop so the state gets continually updated).

[pascal]
procedure GetInput();
var
KeyState: TKeyboardState;
begin
if (GetKeyboardState(KeyState) <> 0) then begin
if ((KeyState[vk_Up] and $80) <> 0) then begin
{Put code to handle up arrow key here}
end;
if ((KeyState[vk_Down] and $80) <> 0) then begin
{Put code to handle down arrow key here}
end;
if ((KeyState[vk_Right] and $80) <> 0) then begin
{Put code to handle right arrow key here}
end;
if ((KeyState[vk_Left] and $80) <> 0) then begin
{Put code to handle left arrow key here}
end;
end else begin
{GetKeyboardState failed, handle it if necessary}
end;
end;

[/pascal]

Here is a list of virtual key codes to help you out. Note: ($80 is hex for 12, Updated the code slightly.