{*******************************************************************************}
{                                                                               }
{                             MEMORY MODULE                                     }
{                             by Patrick B. McConnell                           }
{                             v 1.0                                             }
{                             2/17/96                                           }
{                                                                               }
{*******************************************************************************}
{    revised 11/19/96  V.1.02                                                   }
{       fixed bug crashing program if exit is selected instead of               }
{       selecting layer when prompted                                           }
{*******************************************************************************}
{    revised 6/29/98  V.1.10                                                    }
{      added feature to set layer memory to current layer if user decides to    }
{      leave old layer memory layer off                                         }
{*******************************************************************************}

MODULE memory;                                                                { memory.dcs }

#include 'd:/datacad/dcal/inc/_input.inc'

                                      
PROCEDURE fgetlyr_x (lyr : IN OUT layer; lyr_name : IN OUT str8; caller : str80);           PUBLIC;

VAR
  result,
  scroll,
  key       : integer;
  done      : boolean;
  call_str  : str80;

BEGIN
  scroll := 0;
  done := false;
  REPEAT
    call_str := 'Select a layer for ';
    strcat (call_str, caller);
    wrtmsg (call_str);
    result := fgetlyr (scroll, key, lyr);
    IF result = res_escape THEN
      IF key = S0 THEN
        done :=true;
      END;
    ELSIF result = res_normal THEN
        done:= true;
    END;
  UNTIL done;
  getlyrname (lyr, lyr_name);
END fgetlyr_x;

PROCEDURE layermem (lyr_ent : IN OUT layer; lyr_name : IN OUT str8; caller : str80);      PUBLIC;

VAR

  lyr_str   : STR80;
  key       : integer;
  lyr       : layer;
  done      : boolean;

BEGIN
  wrtmsg (' ');
  lyr_str := '';
  strcat (lyr_str, caller);
  strcat (lyr_str, 'layer \'');
! lyr_str := 'Layer \'';

  IF lyr_find (lyr_name, lyr) = true THEN
    IF lyr_ison (lyr) = true THEN
      lyr_ent := lyr;
      return;
    ELSE
      strcat (lyr_str, lyr_name);
      strcat (lyr_str, '\' is off. Do you want to turn it on?');
      wrtmsg (lyr_str);
      IF answer (0) THEN
        lyr_seton (lyr_ent, true, false);
      ELSE
        lyr_ent := getlyrcurr;
        getlyrname (lyr_ent, lyr_name);
      END;
    END;
  ELSE
    done := false;
    REPEAT
      lblsinit;
      lblset (5, 'Create');
      lblmsg (5, 'Create a new layer');
      lblset (6, 'Select');
      lblmsg (6, 'Select from existing layers');
      lblset (8, 'Current');
      lblmsg (8, 'Set Layer Memory to Current Layer');
      lblset (20, 'Exit');
      lblson;
      strcat (lyr_str, lyr_name);
      strcat (lyr_str , '\' does not exist. Create it or select another layer?');
      wrtmsg (lyr_str);
      getesc (key);
      IF key = F5 THEN
        IF lyr_create (lyr_name, lyr) = true THEN
          lyr_ent := lyr;
          getlyrname (lyr_ent, lyr_name);
          done := true;
        END;
      ELSIF key = F6 THEN
        fgetlyr_x (lyr_ent, lyr_name, caller);
        getlyrname (lyr_ent, lyr_name);
        done := true;
      ELSIF key = F8 THEN
        lyr_ent := getlyrcurr;
        getlyrname (lyr_ent, lyr_name);
        done := true;
      ELSIF key = S0 THEN
        lyr_ent := getlyrcurr;
        getlyrname (lyr_ent, lyr_name);
        done := true;
      END;
    UNTIL done;
! getlyrname (lyr_ent, lyr_name);
  END;
  
END layermem;

END memory.

DDN Home

Revised: Thursday, 10 April 2008
©2008 by DATACAD LLC. All rights reserved.
Please send all questions and comments
regarding this site to webmaster@datacad.com.
General Disclaimer