本例效果图:



代码文件:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    StringGrid1: TStringGrid;
    procedure FormCreate(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  ListBox1.Align := alLeft;

  i := 0;
  while i < 65535 do
  begin
    ListBox1.Items.Add(Format('#%d - #%d', [i, i+255]));
    Inc(i, 255);
  end;

  with StringGrid1 do
  begin
    Align := alClient;
    DefaultColWidth := 24;
    DefaultRowHeight := 24;
    RowCount := 16;
    ColCount := 16;
    FixedCols := 0;
    FixedRows := 0;
    Font.Size := 13;
    Self.ClientWidth := ListBox1.Width + (DefaultColWidth + 1) * 16 + 4;
    Self.ClientHeight := (DefaultRowHeight + 1) * 16 + 4;
  end;
end;

procedure TForm1.ListBox1Click(Sender: TObject);
var
  w,i: Word;
begin
  w := ListBox1.ItemIndex * 255;
  for i := 0 to 255 do
    StringGrid1.Cells[i div 16, i mod 16] := Char(w + i);
end;

end.

窗体文件:
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 328
  ClientWidth = 497
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object StringGrid1: TStringGrid
    Left = 160
    Top = 8
    Width = 320
    Height = 120
    TabOrder = 0
  end
  object ListBox1: TListBox
    Left = 8
    Top = 8
    Width = 137
    Height = 97
    ItemHeight = 13
    TabOrder = 1
    OnClick = ListBox1Click
  end
end

posted on 2008-08-13 01:13  万一  阅读(7780)  评论(15编辑  收藏  举报