Chinaunix首页 | 论坛 | 博客
  • 博客访问: 240309
  • 博文数量: 65
  • 博客积分: 2758
  • 博客等级: 少校
  • 技术积分: 725
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-25 00:23
文章分类

全部博文(65)

文章存档

2011年(4)

2010年(1)

2009年(60)

我的朋友

分类: 系统运维

2010-04-11 09:31:45

    近日想做一个打开网页游戏的程序,要对webbrowser打开的网页进行精细化控制,主要是循环打开指定的网页,然后做出相应的操作,完成后再打开下一个网页,所以有了这个步进方式控制的想法,做了一个小例子,记录一下。
    这个小程序实现的是:
    点击开始后,逐步显示1~100的数字,但只有在点击步进按钮后,才会一步一步向下走,如图所示。
 
源码如下:
 
1.代码文件
  1. unit Unit1;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, StdCtrls;
  6. type
  7.   TForm1 = class(TForm)
  8.     edt1: TEdit;
  9.     btn1: TButton;
  10.     btn2: TButton;
  11.     btn3: TButton;
  12.     procedure FormCreate(Sender: TObject);
  13.     procedure btn1Click(Sender: TObject);
  14.     procedure btn2Click(Sender: TObject);
  15.     procedure btn3Click(Sender: TObject);
  16.   private
  17.     { Private declarations }
  18.   public
  19.     { Public declarations }
  20.   end;
  21. var
  22.   Form1: TForm1;
  23.   bujin:boolean; //步进控制

  24.   tingzhi:boolean; //停止,没有它,程序关闭时会没有响应

  25. implementation
  26. {$R *.dfm}
  27. procedure TForm1.FormCreate(Sender: TObject);
  28. begin
  29. tingzhi:=False;//初始化为不停止

  30. end;
  31. procedure TForm1.btn1Click(Sender: TObject);
  32. var
  33.   i : Integer;
  34. begin
  35.   i:=0;
  36.   while (i <= 100) and not (tingzhi) do //循环显示一个1~100的数字

  37.    begin
  38.     Application.ProcessMessages;
  39.     Sleep(100); //动画效果

  40.     i:=i + 1;
  41.     edt1.Text :=IntToStr(i);
  42.     bujin:=True;
  43.     while ((bujin) and not (tingzhi)) do Application.ProcessMessages; //步进响应

  44.    end;
  45. end;
  46. procedure TForm1.btn2Click(Sender: TObject);
  47. begin
  48.    bujin:=False;
  49. end;
  50. procedure TForm1.btn3Click(Sender: TObject);
  51. begin
  52.    tingzhi:=True;
  53. end;
  54. end.
2.窗体文件
  1. object Form1: TForm1
  2.   Left = 562
  3.   Top = 319
  4.   Width = 176
  5.   Height = 120
  6.   Caption = 'Form1'
  7.   Color = clBtnFace
  8.   Font.Charset = DEFAULT_CHARSET
  9.   Font.Color = clWindowText
  10.   Font.Height = -11
  11.   Font.Name = 'MS Sans Serif'
  12.   Font.Style = []
  13.   OldCreateOrder = False
  14.   OnCreate = FormCreate
  15.   PixelsPerInch = 96
  16.   TextHeight = 13
  17.   object edt1: TEdit
  18.     Left = 56
  19.     Top = 8
  20.     Width = 49
  21.     Height = 21
  22.     TabOrder = 0
  23.     Text = '0'
  24.   end
  25.   object btn1: TButton
  26.     Left = 8
  27.     Top = 43
  28.     Width = 41
  29.     Height = 23
  30.     Caption = #24320#22987
  31.     TabOrder = 1
  32.     OnClick = btn1Click
  33.   end
  34.   object btn2: TButton
  35.     Left = 64
  36.     Top = 43
  37.     Width = 41
  38.     Height = 23
  39.     Caption = #27493#36827
  40.     TabOrder = 2
  41.     OnClick = btn2Click
  42.   end
  43.   object btn3: TButton
  44.     Left = 120
  45.     Top = 43
  46.     Width = 41
  47.     Height = 23
  48.     Caption = #20572#27490
  49.     TabOrder = 3
  50.     OnClick = btn3Click
  51.   end
  52. end
 
附:如果测试本博客提供的测试代码?
如果有 "代码文件" 和 "窗体文件", 四步走:
1、新建工程(一般是 VCL Forms Application);
2、进入代码页(一般是 Unit1), 全选, 把 "代码文件" 贴入;
3、在窗体设计状态下(Design), 通过右键菜单或 Alt+F12 进入 "窗体代码" 页, 全选, 把 "窗体文件" 贴入;
4、运行!
如果只有 "代码文件", 五步走:
1、新建工程(一般是 VCL Forms Application);
2、从源码中看看用到了哪些控件, 要添加(一般都使用了默认名称);
3、看看用到了哪些事件, 从 Object Inspector 窗口的 Events 页逐个添加;
4、进入代码页(一般是 Unit1), 全选, 把 "代码文件" 贴入;
5、运行!
如果 "代码文件" 开始是 "program ..." 而不是 "unit ...", 要建立 "Console Application" 测试.

阅读(2286) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~