On Oct 11, 2007, at 4:49 AM, Adriaan van Os wrote:


Jim, is this something we need ?

Not immediately. It isn't a stop-the-presses issue.

I modified the code to move the 'playback indicator' SpeedButton to track mouse movement, which is good enough for right now. But the playback indicator is higher in the window than this mouse-drag gesture, and it would be clearer to the user if it would drag a line which is actually under the mouse.

It also shouldn't be insurmountable to use a flag to indicate a special 'mouse tracking draw' mode, and move the mouse tracking drawing code into OnPaint. Then OnPaint would only do the special mouse-tracking drawing according to the flag.

In that scheme, the MouseDown and MouseMove events would set the special flag and then invalidate the TPaintBox and call Application.ProcessMessages, which would trigger an OnPaint event and put the changed image up on the screen.

Am guessing such a thing would work. It might be slow. It might run thru so much code that it does not respond quickly to mouse movement.

The main intended OnPaint stuff in LCL is working nicely, and it is complicated down there in the LCL. Admirable work to get it mapped into Carbon so well.

But there are many little trivial things you could do on a Mac 512 in 1986, which require pretty immediate screen access. I realize that Apple has tried its best over the years to make this nearly impossible (grin).

For one example, in a graphic application, click-drag drawing a 'marching ants' selection around a piece of a picture.

Or in a music notation program, drawing hilited notes quickly in realtime, during playback.

'Little things' like that beg for more direct screen output than invalidating a control and letting OnPaint do the work (eventually).

jcjr

_________________________________________________________________
    To unsubscribe: mail [EMAIL PROTECTED] with
               "unsubscribe" as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to