Surprisingly the Pmemo skined OK like the Tmemo and TRichedit do. I could scroll the Pmemo by mousewheel or keys while over/in the text, but when using the scrollbars (both horz and vert), the text would move correctly but as soon as I let up on the mouse it would scroll back to wherever the cursor was. So my guess was it was doing a scrollinview on mouseup which turned out to be right.
I hate to hack source code so what I did to workaround that was to subclass (I think that's the right term) the Pmemo in my app, and then did this in the MouseUp:
procedure TPlusMemo.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
oldDisplayOnly: boolean;
begin
if not Form1.sSkinManager1.Active then //no need for a hack if skinning is inactive
begin
inherited;
exit;
end;
//hack:
oldDisplayOnly := DisplayOnly;
DisplayOnly := Button mbRight;
inherited;
DisplayOnly := oldDisplayOnly;
end;
I know, pretty ugly hack but it does work and has not seemed to cause any side effects so far and I've been doing a ton of work on my new app with this in it. If I was going to run into something I probably would have by now. Here's a screenshot of the app with the plusmemo internal (yet skinned and working) scrollbars):
[attachment=7534:skinned.png]