home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / tegl_ii / intro / resize.pas < prev    next >
Pascal/Delphi Source File  |  1991-04-06  |  2KB  |  66 lines

  1. Program ExResize;
  2.  
  3. {-- this program illustrates how to define a mouse click area, specifically }
  4. {-- a resize click area and how to associate an event that will be called }
  5. {-- by the supervisor whenever the frame is resized. }
  6.  
  7. USES TEGLFont,FastGrph,TGraph,VirtMem,
  8.      TEGLUnit,TeglMain,TeglSpec;
  9.  
  10. {$F+}
  11. Procedure DrawWinFrame(ifs : ImageStkPtr); FORWARD;
  12.  
  13. {-- Just draws a frame with a rectangle in the corner which will }
  14. {-- be the resize mouse click area. }
  15.  
  16. Procedure FrameIt(ifs : ImageStkPtr);
  17.   BEGIN
  18.     SetFillStyle(SolidFill,White);
  19.     SetViewPort(0,0,getmaxx,getmaxy,clipoff);
  20.     Bar(ifs^.x,ifs^.y,ifs^.x1,ifs^.y1);
  21.     SetColor(black);
  22.     Rectangle(ifs^.x,ifs^.y,ifs^.x1,ifs^.y1);
  23.     Rectangle(ifs^.x1-10,ifs^.y1-10,ifs^.x1-1, ifs^.y1-1);
  24.   END;
  25.  
  26.  
  27. {-- event that is called automatically after a resize mouse click area }
  28. {-- is selected and the frame is resized. }
  29.  
  30. Function ReDrawWinFrame(ifs : ImageStkPtr; ms : MsClickPtr) : Word;
  31.   BEGIN
  32.     DrawWinFrame(ifs);
  33.   END;
  34.  
  35. {-- Draw the window frame and define the the mouse click area for the }
  36. {-- resizing action }
  37.  
  38. Procedure DrawWinFrame(ifs : ImageStkPtr);
  39.   VAR mx, my : Integer;
  40.   BEGIN
  41.     FrameIt(ifs);
  42.     ResetMouseClicks(ifs,nil);
  43.     mx := ifs^.x1 - ifs^.x;
  44.     my := ifs^.y1 - ifs^.y;
  45.  
  46.     {-- set framesize constraints }
  47.  
  48.     DefineResizeMinMax(ifs,100,100,400,200);
  49.     {-- set the mouse click area }
  50.     DefineResizeClickArea(ifs,mx-10,my-10,mx,my,ReDrawWinFrame);
  51.   END;
  52.  
  53.  
  54. VAR
  55.   Window : ImageStkPtr;
  56.  
  57. BEGIN
  58.   EasyTegl;                    {-- standard set up }
  59.   EasyOut;
  60.   PushImage(100,100,300,200);  {-- save background }
  61.   Window := StackPtr;          {-- get the pointer }
  62.   DrawWinFrame(Window);        {-- draw it the first time }
  63.   TEGLSupervisor;              {-- give it to the supervisor }
  64. END.
  65.  
  66.