It may appear strange to reply to one's own post, but since I figured out a way out of my predicament, and that perhaps everyone is asleep or off-line, and to avoid unnecessary effort to post a solution, I can post a go around I just figured out. Perhaps that will help someone in the future.
Basically, the issue is that the up arrow is associated with dropping the value as it is interpreted as a left arrow key press. So the solution is to intercept the up and down arrow with a 'KeyDown' event, and apply DOUBLE the normal scroll rate. The effect is that the pressing of the up key cause the value to go down as it normally does, but the trapping of the key, using the VK_UP value, adds its own correction in the other direction, enough to cancel the unwanted down value and add the desired change.
Crude, but effective.
procedure TForm1.ScrollBar1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Case Key of
VK_UP : ScrollBar1.Position:=ScrollBar1.Position+2;
VK_DOWN : ScrollBar1.Position:=ScrollBar1.Position-2;
end;
end;
Now, if anyone has an *elegant* solution that does not involve the unneeded sacrifice of CPU cycle time to have something have to come up and mop up the mess (by having it do what is desired directly) that would be an improvement.
Many thanks
CBVG