Delphi에서 비트 사용(3) - TBits

3253 단어 Delphi
TBits는 TObject에서 직접 상속되며,

TBits.Size    //      " "  
TBits.Bits[]  //       ,        " ";   True    1,   False    0
TBits.OpenBit //       0   " "    

 

간단한 예:

procedure TForm1.Button1Click(Sender: TObject);
var
  bs: TBits;
begin
  bs := TBits.Create;
  {         Size,         " "    }
  bs.Size := 3;
  {  、             bs.Bits[]}
  bs[0] := True;
  bs[1] := False;
  bs[2] := True;
  ShowMessage(BoolToStr(bs[1], True)); {False}
  ShowMessage(BoolToStr(bs[2], True)); {True}
  {OpenBit            0    }
  ShowMessage(IntToStr(bs.OpenBit));   {1;         }
  bs.Free;
end;

 

OpenBit 방법의 주요 용도 - 첫 번째 1이 아닌'위치'를 1로 설정합니다.

var bs: TBits;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  fn: Integer;
begin
  {        }
  bs.Size := 8;
  for i := 0 to bs.Size do bs[i] := Boolean(Random(2));

  {      1   " "     1}
  fn := bs.OpenBit;
  if fn <= bs.Size then bs[fn] := True;
end;

initialization
  bs := TBits.Create;
  Randomize;
finalization
  if Assigned(bs) then bs.Free;

end.

 

TBits를 사용하여 이전 예(창 디자인과 테스트 효과는 동일):

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);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

var bs: TBits;

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
  for i := 0 to CheckListBox1.Count - 1 do
    case TButton(Sender).Tag of
      1: bs[i] := CheckListBox1.Checked[i];
      2: CheckListBox1.Checked[i] := bs[i];
      3: CheckListBox1.Checked[i] := True;
      4: CheckListBox1.Checked[i] := False;
    end;
end;

initialization
  bs := TBits.Create;
finalization
  if Assigned(bs) then bs.Free;

end.

 

Delphi는 다음 셀의 소스 코드에 TBits를 적용합니다.
Menus、Buttons、ComCtrls、DBClient、DBTables、DBCommon、DesignEditors

좋은 웹페이지 즐겨찾기