zoukankan      html  css  js  c++  java
  • 用一个 Byte 值保存八种状态的实例:


    准备工作:
    1、在空白窗体上添加 CheckListBox1;
    2、添加四个 Button, 并激活 Button1 的 OnClick 事件;
    3、激活窗体的 OnCreate 事件.


    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, CheckLst;
    
    type
      TForm1 = class(TForm)
        CheckListBox1: TCheckListBox;
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        Button4: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    var
      b: Byte;
    
    {$R *.dfm}
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      CheckListBox1.Items.CommaText := 'A,B,C,D,E,F,G,H';
      Button1.Caption := '±£´æ״̬';
      Button2.Caption := '»Ö¸´×´Ì¬';
      Button3.Caption := 'È«Ñ¡';
      Button4.Caption := 'È«²»Ñ¡';
      Button1.Tag := 1;
      Button2.Tag := 2;
      Button3.Tag := 3;
      Button4.Tag := 4;
      Button2.OnClick := Button1.OnClick;
      Button3.OnClick := Button1.OnClick;
      Button4.OnClick := Button1.OnClick;
    
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: Integer;
    begin
      if TButton(Sender).Tag = 1 then b := 0;
      for i := 0 to CheckListBox1.Count - 1 do
        case TButton(Sender).Tag of
          1: if CheckListBox1.Checked[i] then b := b or (1 shl i);
          2: CheckListBox1.Checked[i] := Odd(b shr i);
          3: CheckListBox1.Checked[i] := True;
          4: CheckListBox1.Checked[i] := False;
        end;
    
    end;
    end.
    
    
    {
    --------------------------------------------------------------------------------
    用集合的方式重新做前一次的例子(窗体设计与测试效果同前):
    --------------------------------------------------------------------------------
    }
    
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, CheckLst;
    
    type
      TForm1 = class(TForm)
        CheckListBox1: TCheckListBox;
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        Button4: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    var
      set1: set of 0..7; {准备用自定义的集合变量 set1 储存下面的 8 种状态}
    
    
    {$R *.dfm}
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      CheckListBox1.Items.CommaText := 'A,B,C,D,E,F,G,H';
      Button1.Caption := '保存状态';
      Button2.Caption := '恢复状态';
      Button3.Caption := '全选';   
      Button4.Caption := '全不选';
    Button1.Tag := 1; Button2.Tag := 2; Button3.Tag := 3; Button4.Tag := 4; Button2.OnClick := Button1.OnClick; Button3.OnClick := Button1.OnClick; Button4.OnClick := Button1.OnClick; end; procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin if TButton(Sender).Tag = 1 then set1 := []; for i := 0 to CheckListBox1.Count - 1 do case TButton(Sender).Tag of 1: if CheckListBox1.Checked[i] then Include(set1, i); 2: CheckListBox1.Checked[i] := i in set1; 3: CheckListBox1.Checked[i] := True; 4: CheckListBox1.Checked[i] := False; end; end; end.
  • 相关阅读:
    ZJNU 1129 The sum problem——中级
    用 PHP 实现 POP3 邮件的收取(3)
    用 PHP 实现 POP3 邮件的收取(2)
    PHP4 调用自己编写的 COM 组件
    用 PHPLIB 进行 Session 的管理和认证
    用 PHP 实现 POP3 邮件的收取(1)
    用 PHP 实现 POP3 邮件的解码(1)
    PHP 应用程序的性能优化
    PHP功能齐全的发送邮件类
    怎样在 php 中使用 PDF 文档功能
  • 原文地址:https://www.cnblogs.com/beeone/p/1791345.html
Copyright © 2011-2022 走看看