u2.pas
上传用户:pegasus
上传日期:2013-04-14
资源大小:3825k
文件大小:8k
源码类别:

教育系统应用

开发平台:

Delphi

  1. {****************************************************************** }
  2. {              第二阶段-相互攻辩阶段                                }
  3. {                                                                   }
  4. {****************************************************************** }
  5. unit u2;
  6. interface
  7. uses
  8.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  9.   Dialogs, StdCtrls, ExtCtrls, Buttons, jpeg;
  10. type
  11.   TForm2 = class(TForm)
  12.     Label2: TLabel;
  13.     gbZh: TGroupBox;
  14.     gbF: TGroupBox;
  15.     sbtnZh: TSpeedButton;
  16.     sbtnF: TSpeedButton;
  17.     ZhLeftTime: TLabel;
  18.     lbZh: TLabel;
  19.     lbF: TLabel;
  20.     FLeftTime: TLabel;
  21.     timerZh: TTimer;
  22.     TimerF: TTimer;
  23.     Image1: TImage;
  24.     procedure sbtnFClick(Sender: TObject);
  25.     procedure timerZhTimer(Sender: TObject);
  26.     procedure sbtnZhClick(Sender: TObject);
  27.     procedure TimerFTimer(Sender: TObject);
  28.     procedure FormKeyPress(Sender: TObject; var Key: Char);
  29.     procedure FormCreate(Sender: TObject);
  30.   private
  31.     { Private declarations }
  32.      it :integer;
  33.      IsLongTime:Boolean;//长时间
  34.     { Public declarations }
  35.     procedure StopZh;
  36.     procedure StopF;
  37.     procedure StartZh;
  38.     procedure StartF;
  39.     procedure StartFLockZh;
  40.     procedure StartZhLockF;
  41.     procedure EnableZh;
  42.     procedure EnableF;
  43.   end;
  44. var
  45.   Form2: TForm2;
  46. implementation
  47. uses
  48.   uMain;
  49. const
  50.  // STM:integer=30;
  51.  // LTM:integer=90;
  52.   STM:integer=300;
  53.   LTM:integer=900;
  54.  {$R *.dfm}
  55. ///////////////////////////////////////////////////
  56. ////反方计时
  57. // 通过 按钮 的 Tig 属性来区别第几次单击按钮
  58. ////////////////////////////////////////////////
  59. procedure TForm2.sbtnFClick(Sender: TObject);
  60.  procedure Timing( btnZhCaption:String;tag:integer;t:integer);
  61.    begin
  62.         if sbtnF.Caption = '停止计时' then
  63.         begin
  64.           sbtnF.Tag:=tag;
  65.           EnableZh;
  66.           StopF;
  67.         end
  68.         else
  69.         begin
  70.           StartF;
  71.           if btnZhCaption <> 'NoChange' then sbtnZh.Caption:=btnZhCaption;
  72.           it :=t;
  73.           EnableF;
  74.           sbtnF.Caption := '停止计时';
  75.         end;
  76.     end;
  77. begin
  78.   sbtnZh.Enabled:=True;
  79.   sbtnF.Enabled:=False;
  80.   case   sbtnF.Tag  of
  81.   0:                  //21,22,23 反方二辩提问
  82.     begin
  83.       Timing('正方回答',21,STM);
  84.     end;
  85.   21:
  86.     begin
  87.       Timing('正方回答',22,STM);
  88.     end;
  89.   22:
  90.   begin
  91.      Timing('正方回答',31,STM);
  92.     end;
  93. //21,22,23 反方三辩提问
  94.   31:
  95.     begin
  96.       Timing('正方回答',32,STM);
  97.     end;
  98.     32:
  99.      begin
  100.      Timing('正方回答',33,STM);
  101.      end;
  102.      33:
  103.      begin
  104.      Timing('正方回答',34,STM);
  105.      end;
  106.  34:
  107.      begin
  108.       sbtnF.Tag:=35;
  109.       it:=LTM;              //反方二辩或三辩提问90秒 ????????????
  110.       StartFLockZh;
  111.       sbtnF.Caption:='停止计时';
  112.       sbtnZh.Caption:='正方做答辩小结';
  113.       sbtnZh.Enabled:=False;
  114.       sbtnF.Enabled:=True;
  115.      end;
  116.      35:
  117.      begin
  118.       sbtnF.Tag:=36;
  119.       StopF;
  120.      end;
  121. /////////////////////////////////////////////////////////////////////
  122. ////以下反方回答
  123. //////////////////////////////////////////////////////////////////////
  124.      36:
  125.      begin
  126.        Timing('正方二辩第二次提问',42,STM);
  127.      end;
  128.      42:
  129.      begin
  130.      Timing('正方二辩第三次提问',43,STM);
  131.      end;
  132.    43:
  133.      begin
  134.       Timing('正方三辩第一次提问',44,STM);
  135.      end;
  136.    44:
  137.      begin
  138.        Timing('正方三辩第二次提问',45,STM);
  139.      end;
  140.      45:
  141.      begin
  142.        Timing('正方三辩第三次提问',46,STM);
  143.      end;
  144.       46:
  145.      begin
  146.        Timing('正方做提问小结',132,STM);
  147.      end;
  148.      132:
  149.      begin
  150.        Timing('NoChange',133,LTM);
  151.        sbtnZh.Enabled:=False;
  152.      end;
  153.   end;
  154. end;
  155. ///////////////////////////////////////////////////
  156. ////正方计时
  157. //
  158. ////////////////////////////////////////////////
  159. procedure TForm2.sbtnZhClick(Sender: TObject);
  160.    procedure Timing( btnFCaption:String;tag:integer;t:integer);
  161.    begin
  162.         if sbtnZh.Caption = '停止计时' then
  163.         begin
  164.           sbtnZh.Tag:=tag;
  165.           EnableF;
  166.           StopZh;
  167.         end
  168.         else
  169.         begin
  170.           StartZh;
  171.           if btnFCaption <> 'NoChange' then sbtnF.Caption:=btnFCaption;
  172.           it :=t;
  173.           EnableZh;
  174.           sbtnZh.Caption := '停止计时';
  175.         end;
  176.     end;
  177. begin
  178.     sbtnZh.Enabled:=False;
  179.     sbtnF.Enabled:=True;
  180.     case   sbtnZh.Tag  of
  181.     0:
  182.       begin
  183.         Timing('反方二辩第二次提问',21,STM);
  184.       end;
  185.     21:
  186.       begin
  187.         Timing('反方二辩第三次提问',22,STM);
  188.       end;
  189.     22:
  190.       begin
  191.        Timing('反方三辩第一次提问',23,STM);
  192.       end;
  193.      23:
  194.      begin
  195.       Timing('反方三辩第二次提问',24,STM);
  196.      end;
  197.      24:
  198.        begin
  199.         Timing('反方三辩第三次提问',32,STM);
  200.        end;
  201.    32:
  202.        begin
  203.          sbtnZh.Tag:=33;
  204.          it:=STM;
  205.          sbtnF.Caption:='反方做提问小结';
  206.          sbtnZh.Caption:='停止计时';
  207.          sbtnZh.Enabled:=True;
  208.          sbtnF.Enabled:=False;
  209.          StartZhLockF;
  210.        end;
  211.        33:
  212.        begin
  213.          sbtnZh.Tag:=34;
  214.          StopZh;
  215.          ISLongTime:=True;
  216.        end;
  217.        34:
  218.        begin
  219.          sbtnZh.Tag:=35;
  220.          sbtnZh.Caption:='停止计时';
  221.          sbtnZh.Enabled:=True;
  222.          sbtnF.Enabled:=False;        //正方做答辩小结计时';
  223.          it:=LTM;
  224.          StartZhLockF;
  225.        end;
  226.        35:
  227.        begin
  228.          sbtnZh.Tag:=36;
  229.          sbtnZh.Caption:='正方二辩第一次提问 ';
  230.          sbtnZh.Width:=320;
  231.          sbtnF.Caption:='反方回答';
  232.          StopZh;
  233.          IsLongTime:=False;
  234.          sbtnZh.Enabled:=True;
  235.          sbtnF.Enabled:=False;
  236.        end;
  237. /////////////////////////////////////////////////////////////////////
  238. ////以下正方提问
  239. //////////////////////////////////////////////////////////////////////
  240.    36:
  241.        begin
  242.          Timing('反方回答',41,STM);
  243.        end;
  244.        41:
  245.        begin
  246.         Timing('反方回答',42,STM);
  247.        end;
  248.        42:
  249.        begin
  250.         Timing('反方回答',43,STM);
  251.        end;
  252.     43:
  253.     begin
  254.      Timing('反方回答',44,STM);
  255.     end;
  256.       44:
  257.        begin
  258.         Timing('反方回答',45,STM);
  259.        end;
  260.        45:
  261.        begin
  262.         Timing('反方回答',133,STM);
  263.        end;
  264.      133:
  265.      begin
  266.        sbtnZh.Tag:=134;
  267.        IsLongTime:=True;
  268.        it:=LTM;
  269.        sbtnF.Caption:= '反方做答辩小结';
  270.        sbtnZh.Caption:='停止计时';
  271.        StartZhLockF;
  272.        sbtnZh.Enabled:=True;
  273.        sbtnF.Enabled:=False;
  274.      end;
  275.     134:
  276.      begin
  277.        sbtnZh.Tag:=135;
  278.        stopZh;
  279.      end;
  280.   end;
  281. end;
  282. procedure TForm2.timerZhTimer(Sender: TObject);
  283. begin
  284.    if IsLongTime   then
  285.    begin
  286.      if it=300 then  beep1;
  287.    end;
  288.    ZhleftTime.Caption:=IntToTime (it);
  289.    if it=0 then uMain.beep2;
  290.    it:=it-1;
  291. end;
  292. procedure TForm2.TimerFTimer(Sender: TObject);
  293. begin
  294.   if IsLongTime then
  295.   begin
  296.      if it=300  then beep1;
  297.   end;
  298.   FleftTime.Caption:=IntToTime (it);
  299.   if it=0 then uMain.beep2;
  300.   it:=it-1;
  301. end;
  302. procedure TForm2.StartF;
  303. begin
  304.   TimerF.Enabled:=True;
  305. end;
  306. procedure TForm2.StartZh;
  307. begin
  308.    TimerZh.Enabled:=True;
  309. end;
  310. procedure TForm2.StopF;
  311. begin
  312.    TimerF.Enabled:=False;
  313. end;
  314. procedure TForm2.StopZh;
  315. begin
  316.   TimerZh.Enabled:=False;
  317. end;
  318. procedure TForm2.EnableZh;
  319. begin
  320.   sbtnZh.Enabled:=True;
  321.   sbtnF.Enabled:=False;
  322. end;
  323. procedure TForm2.EnableF;
  324. begin
  325.   sbtnZh.Enabled:=False;
  326.   sbtnF.Enabled:=True;
  327. end;
  328. procedure TForm2.StartFLockZh;
  329. begin
  330.    TimerF.Enabled:=True;
  331.    TimerZh.Enabled:=False;
  332. end;
  333. procedure TForm2.StartZhLockF;
  334. begin
  335.    TimerZh.Enabled:=True;
  336.    TimerF.Enabled:=False;
  337. end;
  338. procedure TForm2.FormKeyPress(Sender: TObject; var Key: Char);
  339. begin
  340.  if (Key=#113) or (Key=#81) then
  341.     Close;
  342. end;
  343. procedure TForm2.FormCreate(Sender: TObject);
  344. begin
  345.   IsLongTime:=False;
  346.   lbZh.Font.Color:=uMain.ZhFontColor;
  347.   ZhLeftTime.Font.Color:= uMain.ZhFontColor;
  348.   lbF.Font.Color:=uMain.FFontColor;
  349.   FLeftTime.Font.Color:= uMain.FFontColor;
  350.   gbZh.Color:=uMain.ZhBackgroundColor;
  351.   gbF.Color:=uMain.FBackgroundColor;
  352. end;
  353. end.