本例效果图:
代码文件:
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