Thanks, Dave:

This works almost exactly right.  One tiny problem, however.  Here is
the code:

Begin
   Screen.Cursor := crHourglass;
   SendMessage(frmMain.Handle, WM_SETREDRAW, 0, 0);
   try try
      // Set the global flag
      CurProjState := ftEditing;

      // Now, set up the screen
      SetProjInterface(CurProjState);

      // Data is set to new
      SetProjectData(GetSelectedKey(lbProjProjects));
   Except
      On E:Exception Do Begin
         WriteStatus(SB, E.Message, TRUE);
      End;
   End;
   Finally
      SendMessage(frmMain.Handle, WM_SETREDRAW, 1, 0);
      RedrawWindow(frmMain.Handle, nil, 0, RDW_ERASE or RDW_FRAME or
RDW_INVALIDATE or RDW_ALLCHILDREN);
      Screen.Cursor := crDefault;
   End;
End;

The screen freezes just right.  Only problem is with the cursor.  The
cursor turns from an hourglass to an arrow as soon as the message is
processed.  If I put in a delay after setting the cursor, I can see it
change to an hourglass.  Then, when the screen is frozen, it
automagically changes back into an arrow.  The net effect is that the
user does not know that the system is actually doing something because
the cursor does not appear to be clocking.

Ideas?

jamie



--- In delphi-en@yahoogroups.com, David Smith <[EMAIL PROTECTED]> wrote:
>
> //this turns off screen draw for the visual control. Use for the
parent panel for the //controls you want to freeze
>    //   SendMessage(MainPanel.Handle, WM_SETREDRAW, 0, 0);
>   
>   //   perform data updates, control changes, etc.
>    
>   // the first message turns screendraw back on, 2nd refreshes
>     //   SendMessage(mainPanel.Handle, WM_SETREDRAW, 1, 0);
>   //   RedrawWindow(mainPanel.Handle, nil, 0,
>   //    RDW_ERASE or RDW_FRAME or RDW_INVALIDATE or RDW_ALLCHILDREN);
>    
>   Dave







-----------------------------------------------------
Home page: http://groups.yahoo.com/group/delphi-en/
To unsubscribe: [EMAIL PROTECTED] 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/delphi-en/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to