home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Interactive Guide / c-cplusplus-interactive-guide.iso / c_ref / csource1 / chint / useful29.hnt < prev    next >
Text File  |  1993-10-29  |  2KB  |  64 lines

  1. This hint outline how to create a custom skeleton that will allow the
  2. user to jump straight to the entry form they want by pressing the key
  3. "1" .. "9" that corresponds to the number of the entry form they want
  4. to get to.  The function outlined below will position at the first
  5. file that uses that entry form.
  6.  
  7. NB:  If there are more than 9 windows then a different way of getting
  8.      the window number would need to be devised.  I would suggest
  9.      using the "choose()" function to give a selection when a particular
  10.      function key is pressed.
  11.  
  12.  
  13. 1)   Create a custom skeleton by copying the standard DBC.SKL to a new
  14.      file, (EG: COPY DBC.SKL DBCJW.SKL)
  15.  
  16. 2)   Now make the following modification to the DBCJW.SKL file, (Note:
  17.      JW == Jump to Window).
  18.  
  19.      Locate the function "void do_menu()", and directly before it
  20.      insert the following procedure code:--
  21.  
  22. /*MOD START*/
  23. void goToWindow(int wno)
  24. /* Move to the first file on entry form number "Wno" */
  25. {
  26.   int i, locatedFno;
  27.  
  28.   locatedFno = 0;
  29.   for (i=maxfilno; i > 0; i--) {
  30.     if (winforfile[i] == wno) locatedFno = i;
  31.   }
  32.   if (locatedFno == 0)
  33.     dberrm("That entry form does not appear to be used by any file !");
  34.   else {
  35.     filno = locatedFno;
  36.     switch_file(' ');
  37.   }
  38. }
  39. /*MOD END*/
  40.  
  41.      Now go down into the existing code of "void do_menu()"  and
  42.      locate the line that "case UArr    : goud(&dm,Up);" and insert a new
  43.      line to catch when the user presses the keys "1" through to "9".
  44.      The code will end up looking like this :--
  45.  
  46. /*MOD*/   case '1':
  47.           case '2':
  48.           case '3':
  49.           case '4':
  50.           case '5':
  51.           case '6':
  52.           case '7':
  53.           case '8':
  54.           case '9': goToWindow((byte)(ctlkey)-48); break; /*MOD END*/
  55.           case UArr   : goud(&dm,Up); break;
  56.           case DArr   : goud(&dm,Down); break;
  57.  
  58. 3)   You can now load DataBoss and then re-generate, (and afterwards
  59.      re-compile), your application program, just remember to change
  60.      the main skeleton on the GENERATE screen from DBC.SKL to
  61.      DBCJW.SKL.  When you run the compiled program pressing the keys
  62.      1..X, (where "X" is the number of the last entry form), should
  63.      jump straight to that entry form.
  64.