亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? edreact.c

?? GESPI 2.0動態系統模擬工具  
?? C
字號:
#include "copyleft.h"

/*
    GEPASI - a simulator of metabolic pathways and other dynamical systems
    Copyright (C) 1989, 1992  Pedro Mendes
*/

/*************************************/
/*                                   */
/*          GWTOP - Topology         */
/*        MS-WINDOWS front end       */
/*                                   */
/*        Reactions dialog box       */
/*                                   */
/*           QuickC/WIN 1.0          */
/*                                   */
/*   (include here compilers that    */
/*   compiled GWSIM successfully)    */
/*                                   */
/*************************************/


#include <windows.h>
#include <stdio.h>
#include <string.h>
#include "defines.h"					/* symbols also used in .DLG files		*/
#include "globals.h"					/* gepasi's own symbols					*/
#include "gwtop.h"						/* macros, function prototypes, etc.	*/
#include "gep1.h"						/* gepasi's variables					*/
#include "topgvar.h"					/* global variables						*/
#include "strtbl.h"						/* symbols for the string table			*/

#pragma alloc_text( CODE2, ClearReactions, AddReactLst, EdReact )

void ClearReactions( void )
{
 int i, j;

 for( i=0; i<totmet; i++ )
 {
  metname[i][0] = '\0';
  intmet[i] = 1;
  for( j=0; j<nsteps; j++ )
   stoiu[i*MAX_MET + j] = 0;
 }
 for( i=0; i<nsteps; i++ )
  for( j=0; j<MAX_MOL; j++ )
   (*rs)[i][j] = 0;
 nsteps  = 0;
 totmet  = 0;
}


void AddReactLst( HWND hControl, int j, int is_index, int scroll,
				  int *totm, char (huge *metn)[NAME_L],
				  int huge *sto, int *im, unsigned char *rev,
				  int (huge *rs)[MAX_STEP][MAX_MOL] )
{
 int i, k, st, first, buffWidth, tempstoi[MAX_MET];
 char auxstr[256], buff[256];
 HANDLE hDC;

 *buff = '\0';
 /* setup the stoicheiometries of the substrates					*/
 for( i=0; i<*totm; i++ ) tempstoi[i] = 0;
 for( i=0; i<MAX_MOL; i++ )
  if ((*rs)[j][i]<0) tempstoi[ -(*rs)[j][i]-1 ]--;
 for( k=0, first=1; k<MAX_MOL; k++ )
 {
  if ((*rs)[j][k]<0)
  {
   i = -(*rs)[j][k]-1;
   st = tempstoi[i];
   if( st < 0 )
   {
    if ( st == -1 )
     wsprintf( auxstr, "%s%s", first==1 ? (LPSTR) "" : (LPSTR) " + ", &metn[i][0] );
    else
     wsprintf( auxstr, "%s%i*%s", first==1 ? (LPSTR) "" : (LPSTR) " + ", -st, &metn[i][0] );
    _fstrcat( buff, auxstr );
    first = 0;
   }
   for( ; (i == -(*rs)[j][k]-1) && (k<=MAX_MOL) ; k++);
   k--;
  }
 }
 if( rev[j] )											/* the connector		*/
  _fstrcat( buff, " = " );
 else
  _fstrcat( buff, " -> " );

 /* setup the stoicheiometries of the products						*/
 for( i=0; i<*totm; i++ ) tempstoi[i] = 0;
 for( i=0; i<MAX_MOL; i++ )
  if ((*rs)[j][i]>0) tempstoi[ (*rs)[j][i]-1 ]++;
 for( k=0, first=1; k<MAX_MOL; k++ )
 {
  if ((*rs)[j][k]>0)
  {
   i = (*rs)[j][k]-1;
   st = tempstoi[i];
   if( st > 0 )
   {
    if( st == 1 )
     wsprintf( auxstr, "%s%s", first==1 ? (LPSTR) "" : (LPSTR) " + ", &metn[i][0] );
    else
     wsprintf( auxstr, "%s%i*%s", first==1 ? (LPSTR) "" : (LPSTR) " + ", st, &metn[i][0] );
    _fstrcat( buff, auxstr );
    first = 0;
   }
   for( ; (i == (*rs)[j][k]-1) && (k<=MAX_MOL) ; k++);
   k--;
  }
 }

 hDC = GetDC( hControl );
 buffWidth = 5 + LOWORD( GetTextExtent( hDC, buff, _fstrlen(buff) ) );
 SetTextJustification( hDC, 0, 0 );
 ReleaseDC( hControl, hDC );
 if( buffWidth > lbWidth )
 {
  lbWidth = buffWidth;
  SendMessage( hControl, LB_SETHORIZONTALEXTENT, lbWidth, (DWORD) 0 );
 }
 if( is_index )
 {
  SendMessage( hControl, LB_DELETESTRING, j, 0 );
  SendMessage( hControl, LB_INSERTSTRING, j, (DWORD) (LPSTR) buff );
 }
 else
  SendMessage( hControl, LB_INSERTSTRING, -1, (DWORD) (LPSTR) buff );
 if( scroll ) SendMessage( hControl, WM_VSCROLL, SB_BOTTOM, 0 );
}

/*
  EdReact - dialog box procedure for TOP_PARSER dialog box
*/

BOOL FAR PASCAL EdReact( HWND hDlg, WORD message, WORD wParam, LONG lParam )
{
 static HWND   hEditBox, hReacLst, hStepNam;
 char	buffer[256], buff2[256], step_name[NAME_L];
 int 	i, j, nr, rv;
 static int idx;


 switch( message )
 {
  case WM_INITDIALOG:                                   /*message: initialize dialog box        */

   lbWidth = 0;											/* set the width of the list box to 0	*/
   idx = -1;											/* set an invalid alteration index		*/

   /* get handles to the controls							*/
   hEditBox = GetDlgItem( hDlg, IDC_REACT );
   hReacLst = GetDlgItem( hDlg, IDC_REACTLST );
   hStepNam = GetDlgItem( hDlg, IDC_REACTNAM );

   /* setup the mirrors										*/
   _fmemcpy( (void __far *) metn,
   	         (void __far *) metname,
   	         (size_t) MAX_MET * NAME_L * sizeof( char ) );
   _fmemcpy( (void __far *) stepn,
   	         (void __far *) stepname,
   	         (size_t) MAX_STEP * NAME_L * sizeof( char ) );
   _fmemcpy( (void __far *) sto,
   	         (void __far *) stoiu,
             (size_t) MAX_MET * MAX_STEP * sizeof( int ) );
   _fmemcpy( (void __far *) lp,
   	         (void __far *) loop,
             (size_t) MAX_STEP * MAX_MET * sizeof( unsigned char ) );
   _fmemcpy( (void __far *) intm,
   			 (void __far *) intmet,
   			 (size_t) MAX_MET * sizeof( int ) );
   _fmemcpy( (void __far *) kinet,
   	         (void __far *) kinetu,
             (size_t) MAX_STEP * sizeof( int ) );
   _fmemcpy( (void __far *) nmd,
 	         (void __far *) nmod,
             (size_t) MAX_STEP * sizeof( unsigned char ) );
   _fmemcpy( (void __far *) rvr,
 	         (void __far *) revers,
             (size_t) MAX_STEP * sizeof( unsigned char ) );
   _fmemcpy( (void __far *) rs,
 	         (void __far *) rstr,
             (size_t) MAX_STEP * MAX_MOL * sizeof( int ) );
   nst = nsteps;
   totm = totmet;
   nlps = nloops;
   kass = kinass;
   lass = loopass;

   /* add all steps to the list box										*/
   for( j=0; j<nst; j++ ) AddReactLst( hReacLst, j, 1, (j==nst), &totm, metn, sto, intm, rvr, rs );

   /* write the name of the new reaction in the name edit box			*/
   wsprintf( (LPSTR) step_name, "R%d", nst+1 );
   SendMessage( hStepNam, WM_SETTEXT, 0, (DWORD) (LPSTR) step_name );

   return( TRUE );

  case WM_COMMAND:
   switch( wParam )
   {
    case IDC_ADD:
     SendMessage( hEditBox, WM_GETTEXT, 256, (DWORD) (LPSTR) buffer );
     if( idx == -1 )                                    /* new item		*/
     {
      /* verify if we reached the maximum number of steps				*/
      if( nst == MAX_STEP )
      {
       LoadString(hInst, IDS_ERR_STEP_EXCEED, szString, sizeof(szString));
       MessageBeep( MB_OK );
       MessageBox(NULL, szString, NULL, MB_ICONINFORMATION);
       return( TRUE );
      }
      /* if not assign the next step number to this one					*/
      j = nst;
     }
     else j = idx;										/* alterion		*/
     rv = reaction( buffer, j, &totm, metn, sto, rs, intm, rvr );
     if( rv == -2 )
     {
      LoadString(hInst, IDS_ERR_MET_EXCEED, szString, sizeof(szString));
      MessageBeep( MB_OK );
      MessageBox(NULL, szString, NULL, MB_ICONINFORMATION);
      return( TRUE );
     }
     if( rv == 0 )
     {
      SendMessage( hStepNam, WM_GETTEXT, NAME_L, (DWORD) (LPSTR) stepn[j] );
      AddReactLst( hReacLst, j, 1, (j==nst), &totm, metn, sto, intm, rvr, rs );
      if ( idx == -1 ) nst++;
      else
      {
       idx = -1;								/* reset idx			*/
       if( ktype[kinet[j]].nmodf>0 )			/* if there were modfs	*/
       {
        nlps--;
        for(i=0;i<MAX_MET;i++) (*lp)[j][i] = 0;	/* reset row of loop	*/
        if( ktype[kinet[j]].nmodf == nmd[j] ) lass--;	/* decrease lass				*/
       }
       if( kinet[j] != NOT ) kass --;
       kinet[j] = 0;							/* reset kinetic type	*/
      }
      /* clear the reaction edit box									*/
      SetWindowText( hEditBox, (LPSTR) "" );
      /* write the name of the new reaction in the name edit box		*/
      wsprintf( (LPSTR) step_name, "R%d", nst+1 );
      SendMessage( hStepNam, WM_SETTEXT, 0, (DWORD) (LPSTR) step_name );
     }
     else
     {
      LoadString(hInst, IDS_ERR_SYNTAX, szString, sizeof(szString));
      MessageBox(NULL, szString, NULL, MB_ICONINFORMATION);
     }
     return( TRUE );

    case IDC_DEL:
     if( ( idx = (int) SendMessage( hReacLst, LB_GETCURSEL, 0, 0 ) ) == LB_ERR )
     {
      LoadString(hInst, IDS_ERR_DEL, szString, sizeof(szString));
      MessageBox(NULL, szString, NULL, MB_ICONINFORMATION);
     }
     if( SendMessage( hReacLst, LB_DELETESTRING, idx, 0 ) == LB_ERR )
     {
      LoadString(hInst, IDS_ERR_DEL, szString, sizeof(szString));
      MessageBox(NULL, szString, NULL, MB_ICONINFORMATION);
     }
     else
     {
      nst--;
      if( kinet[idx] != NOT )
      {
       kass--;
       if( ktype[kinet[idx]].nmodf>0 ) nlps--;		/* if there were modfs	*/
       if( ktype[kinet[idx]].nmodf==nmd[idx] ) lass--;	/* decrease lass				*/
      }
      for( j=idx; j<nst; j++ )
      {
       lstrcpy( (LPSTR) stepn[j], (LPSTR) stepn[j+1] );
       kinet[j] = kinet[j+1];
       nmd[j] = nmd[j+1];
       for( i=0; i<MAX_MET; i++ )
       {
        (*lp)[j][i] = (*lp)[j+1][i];
        sto[i*MAX_MET + j] = sto[i*MAX_MET + j+1];
       }
      }
      kinet[nst] = 0;
      nmd[nst] = 0;
      idx = -1;
     }
      SetFocus( hEditBox );
     return( TRUE );

    case IDC_REACT:
     switch( HIWORD( lParam ) )
     {
      case EN_ERRSPACE:
      case EN_MAXTEXT:
       LoadString(hInst, IDS_ERR_BUF_FUL, szString, sizeof(szString));
       MessageBox(NULL, szString, NULL, MB_ICONINFORMATION);
       GlobalFree( hMetn );
       GlobalFree( hSto );
       EndDialog( hDlg, FALSE );
       return( TRUE );
     }
     break;

    case IDC_REACTLST:
     if( HIWORD( lParam ) == LBN_DBLCLK )
     {
      idx = (int) SendMessage( hReacLst, LB_GETCURSEL, 0, 0 );
      SendMessage( hReacLst, LB_GETTEXT, idx, (DWORD) (LPSTR) buffer );
      SendMessage( hEditBox, WM_SETTEXT, 0, (DWORD) (LPSTR) buffer );
      SendMessage( hStepNam, WM_SETTEXT, 0, (DWORD) (LPSTR) stepn[idx] );
      SetFocus( hEditBox );
      SendMessage( hEditBox, WM_KEYDOWN, 0x23, 0 );		/* put cursor at the end	*/
      return( TRUE );
     }
     else return( FALSE );

    case IDOK:
     ClearReactions();
     nr = (int) SendMessage( hReacLst, LB_GETCOUNT, 0, 0 );
     for( i=0; i<nr; i++ )
     {
      SendMessage( hReacLst, LB_GETTEXT, i, (DWORD) (LPSTR) buffer );
      reaction( buffer, i, &totmet, metname, stoiu, rstr, intmet, revers );
      nsteps++;
     }
/*     _fmemcpy( (void __far *) order,
   	           (void __far *) ord,
               (size_t) MAX_STEP * MAX_MET * sizeof( signed char ) );*/
     _fmemcpy( (void __far *) intmet,
   			   (void __far *) intm,
   			   (size_t) MAX_MET * sizeof( int ) );
     _fmemcpy( (void __far *) kinetu,
   	           (void __far *) kinet,
               (size_t) MAX_STEP * sizeof( int ) );
     _fmemcpy( (void __far *) loop,
               (void __far *) lp,
               (size_t) MAX_STEP * MAX_MET * sizeof( unsigned char ) );
     _fmemcpy( (void __far *) nmod,
 	           (void __far *) nmd,
               (size_t) MAX_STEP * sizeof( unsigned char ) );
     _fmemcpy( (void __far *) revers,
 	           (void __far *) rvr,
               (size_t) MAX_STEP * sizeof( unsigned char ) );
     _fmemcpy( (void __far *) stepname,
   	           (void __far *) stepn,
   	           (size_t) MAX_STEP * NAME_L * sizeof( char ) );
     nloops = nlps;
     kinass = kass;
     loopass = lass;
     notsaved = 1;
     EndDialog( hDlg, IDOK );
     return( TRUE );

    case IDC_HELP:                        /* Help on this Dialog Box			  */
   	 WinHelp( hDlg, (LPSTR) szHelpFile, HELP_KEY, (DWORD) (LPSTR) "Reaction editor" );
     return( TRUE );

    case IDCANCEL:                        /*Cancel box or sys menu close command  */
     EndDialog( hDlg, IDCANCEL );
     return( TRUE );
   }
   break;
 }
 return( FALSE );                                       /*didn't process a message              */
} /* End of EdReact                                           */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产原创一区二区| 天堂av在线一区| 成人久久18免费网站麻豆| 国产精品黄色在线观看| 国产呦萝稀缺另类资源| 国产日韩一级二级三级| 从欧美一区二区三区| 亚洲天堂免费在线观看视频| 欧美性高清videossexo| 日韩av网站免费在线| 精品日产卡一卡二卡麻豆| 国产麻豆日韩欧美久久| 中文字幕一区二区不卡 | 久久国产精品99久久久久久老狼| 日韩一二三区不卡| 国产精品资源在线看| 日韩久久一区二区| 欧美高清一级片在线| 国产精品综合二区| 亚洲精品亚洲人成人网| 欧美日韩aaa| 国产福利不卡视频| 亚洲一区二区三区四区五区中文| 日韩欧美一级精品久久| 成人永久aaa| 亚洲高清免费观看 | 成人中文字幕电影| 亚洲国产精品一区二区尤物区| 日韩一级片在线播放| 不卡免费追剧大全电视剧网站| 亚洲成人黄色影院| 国产欧美一区二区在线| 欧美日韩国产中文| 高清不卡在线观看| 日本不卡免费在线视频| 国产精品久久久久aaaa樱花 | 欧美成人aa大片| 成人涩涩免费视频| 蜜臀av亚洲一区中文字幕| 欧美高清在线一区| 日韩一区和二区| 91亚洲精品久久久蜜桃网站| 麻豆精品在线看| 亚洲影院免费观看| 欧美极品aⅴ影院| 日韩精品一区二| 欧美日韩一区二区不卡| av影院午夜一区| 国内精品在线播放| 日韩二区在线观看| 一级日本不卡的影视| 国产精品拍天天在线| 日韩精品一区二区三区老鸭窝| 欧美视频自拍偷拍| 91在线免费看| 成人激情免费电影网址| 韩国成人福利片在线播放| 亚洲va中文字幕| 一区二区久久久久久| 中文字幕亚洲精品在线观看| 国产偷国产偷精品高清尤物| 日韩一区二区精品在线观看| 在线观看免费一区| 91麻豆国产福利在线观看| 国产999精品久久久久久| 美女任你摸久久| 丝袜亚洲另类丝袜在线| 亚洲精品成人精品456| 国产精品午夜免费| 久久精品一区二区| 国产亚洲精品中文字幕| 欧美电影精品一区二区| 日韩视频在线永久播放| 911精品国产一区二区在线| 91黄色免费看| 色一情一乱一乱一91av| 91老师片黄在线观看| 91免费国产视频网站| 成人毛片视频在线观看| 国产精品一区二区黑丝| 国产一区二区调教| 国产麻豆一精品一av一免费 | 99免费精品在线观看| 国产福利精品导航| 国产91丝袜在线播放| 成人a级免费电影| 成人99免费视频| 91小视频免费观看| 欧美色手机在线观看| 777精品伊人久久久久大香线蕉| 欧美精品aⅴ在线视频| 欧美精品 国产精品| 日韩精品最新网址| 欧美激情在线看| 亚洲天堂精品视频| 亚洲高清三级视频| 精品综合久久久久久8888| 国产一区二区三区不卡在线观看 | 国产在线不卡一卡二卡三卡四卡| 久久成人麻豆午夜电影| 国产成人综合亚洲网站| 91色九色蝌蚪| 日韩欧美国产综合在线一区二区三区| 精品久久久久久久人人人人传媒| 日本一区二区三区免费乱视频| 亚洲欧美综合另类在线卡通| 亚洲va欧美va天堂v国产综合| 九九国产精品视频| 99久久伊人精品| 欧美日韩另类一区| 精品播放一区二区| 中文字幕在线不卡| 日韩专区一卡二卡| 懂色av一区二区三区免费观看| 色老头久久综合| 2020国产精品久久精品美国| 国产精品情趣视频| 日本在线观看不卡视频| 国产91在线观看| 91精品欧美综合在线观看最新 | 91高清在线观看| 欧美xingq一区二区| 国产精品国产a| 日韩精品每日更新| av动漫一区二区| 日韩一区二区在线观看视频| 亚洲欧洲av在线| 激情六月婷婷综合| 欧美少妇性性性| 国产精品你懂的| 麻豆91精品视频| 欧美色涩在线第一页| 国产三级一区二区| 午夜不卡av免费| www..com久久爱| 久久综合久久综合亚洲| 五月天亚洲精品| aa级大片欧美| 国产午夜精品一区二区三区嫩草 | 欧美久久久久久久久久| 久久久.com| 国产精品久久久久久久裸模| 日韩亚洲电影在线| 色香蕉成人二区免费| 国产精品久久99| 色94色欧美sute亚洲线路二| 亚洲午夜电影在线观看| 欧洲一区二区三区免费视频| 国产清纯美女被跳蛋高潮一区二区久久w| 91麻豆6部合集magnet| 一区二区在线观看视频| 久久久99久久精品欧美| 国产一区二区电影| 亚洲精品乱码久久久久| 欧美日韩你懂得| 激情综合色综合久久综合| 亚洲欧美一区二区久久| 亚洲精品一区二区三区99| 国产一区二区三区香蕉| 亚洲伦在线观看| 欧美一区二区免费观在线| 成人ar影院免费观看视频| 亚洲精品视频在线观看免费| 99久久99精品久久久久久| 一区二区中文字幕在线| 成人美女视频在线看| 中文字幕字幕中文在线中不卡视频| 日韩亚洲欧美综合| 国产99久久久精品| 欧美精品一级二级三级| 久久久五月婷婷| 欧美国产精品一区二区三区| 日韩欧美一卡二卡| 欧美日韩在线播放三区四区| 日韩不卡一二三区| 国产精品国产三级国产aⅴ原创 | 国产欧美日韩三区| 日韩美女精品在线| 国产乱人伦偷精品视频不卡| 91福利在线观看| 亚洲国产日韩av| 欧美日本在线一区| 六月婷婷色综合| 国产日韩欧美制服另类| 成人免费毛片高清视频| 亚洲人精品一区| 欧美久久久一区| 国产呦精品一区二区三区网站| 国产欧美日韩另类视频免费观看| 成人avav在线| 亚洲国产毛片aaaaa无费看 | 67194成人在线观看| 狠狠色狠狠色综合系列| 欧美高清在线一区二区| 91蝌蚪porny| 欧美bbbbb| 18成人在线视频| 91麻豆精品国产91久久久久久| 精品一区二区三区av| 亚洲三级小视频|