已经比较好看了,但是列宽不满意。
[Delphi] 纯文本查看 复制代码 unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
arr:array[0..19,0..6] of string;
i,j:integer;
begin
StringGrid1.ColWidths[0] := 88;
StringGrid1.ColWidths[1] := 110;
StringGrid1.ColWidths[2] := 166;
StringGrid1.ColWidths[3] := 166;
StringGrid1.ColWidths[4] := 180;
arr[0][0] := '转移类别';
arr[0][1] := '标志位';
arr[0][2] := '含义';
arr[0][3] := '短转移指令';
arr[0][4] := '长转移指令';
arr[1][0] := 'call';
arr[2][0] := 'jmp';
arr[3][0] := 'jo';
arr[4][0] := 'jno';
arr[5][0] := 'jb/jc/jnae';
arr[6][0] := 'jae/jnb/jnc';
arr[7][0] := 'je/jz';
arr[8][0] := 'jne/jnz';
arr[9][0] := 'jbe/jna';
arr[10][0] := 'ja/jnbe';
arr[11][0] := 'js';
arr[12][0] := 'jns';
arr[13][0] := 'jp/jpe';
arr[14][0] := 'jnp/jpo';
arr[15][0] := 'jl/jnge';
arr[16][0] := 'jge/jnl';
arr[17][0] := 'jle/jng';
arr[18][0] := 'jg/jnle';
arr[1][1] := '-';
arr[2][1] := '-';
arr[3][1] := 'OF=1';
arr[4][1] := 'OF=0';
arr[5][1] := 'CF=1';
arr[6][1] := 'CF=0';
arr[7][1] := 'ZF=1';
arr[8][1] := 'ZF=0';
arr[9][1] := 'CF=1或ZF=1';
arr[10][1] := 'CF=0或ZF=0';
arr[11][1] := 'SF=1';
arr[12][1] := 'SF=0';
arr[13][1] := 'PF=1';
arr[14][1] := 'PF=0';
arr[15][1] := 'SF≠OF';
arr[16][1] := 'SF=OF';
arr[17][1] := 'SF≠0F或ZF=1';
arr[18][1] := 'SF=OF且ZF=0';
arr[1][2] := 'call调用指令';
arr[2][2] := '无条件转移';
arr[3][2] := '溢出';
arr[4][2] := '无溢出';
arr[5][2] := '低于/进位/不高于等于';
arr[6][2] := '高于等于/不低于/无进位';
arr[7][2] := '相等/等于0';
arr[8][2] := '不相等/不等于0';
arr[9][2] := '低于等于/不高于';
arr[10][2] := '高于/不低于等于';
arr[11][2] := '符号为负';
arr[12][2] := '符号为正';
arr[13][2] := '1的个数为偶';
arr[14][2] := '1的个数为奇';
arr[15][2] := '小于/不大于等于';
arr[16][2] := '大于等于/不小于';
arr[17][2] := '小于等于/不大于';
arr[18][2] := '大于/不小于等于';
arr[1][3] := 'E8xxxxxx';
arr[2][3] := 'EBxx';
arr[3][3] := '70xx';
arr[4][3] := '71xx';
arr[5][3] := '72xx';
arr[6][3] := '73xx';
arr[7][3] := '74xx';
arr[8][3] := '75xx';
arr[9][3] := '76xx';
arr[10][3] := '77xx';
arr[11][3] := '78xx';
arr[12][3] := '79xx';
arr[13][3] := '7Axx';
arr[14][3] := '7Bxx';
arr[15][3] := '7Cxx';
arr[16][3] := '7Dxx';
arr[17][3] := '7Exx';
arr[18][3] := '7Fxx';
arr[1][4] := 'E8xxxxxx';
arr[2][4] := 'E9xxxxxx';
arr[3][4] := '0F80xxxx';
arr[4][4] := '0F81xxxx';
arr[5][4] := '0F82xxxx';
arr[6][4] := '0F83xxxx';
arr[7][4] := '0F84xxxx';
arr[8][4] := '0F85xxxx';
arr[9][4] := '0F86xxxx';
arr[10][4] := '0F87xxxx';
arr[11][4] := '0F88xxxx';
arr[12][4] := '0F89xxxx';
arr[13][4] := '0F8Axxxx';
arr[14][4] := '0F8Bxxxx';
arr[15][4] := '0F8Cxxxx';
arr[16][4] := '0F8Dxxxx';
arr[17][4] := '0F8Exxxx';
arr[18][4] := '0F8Fxxxx';
StringGrid1.ColCount:=6;
StringGrid1.RowCount:=19;
StringGrid1.ColWidths[0]:=0;
for i:=Low(arr) to High(arr) do
for j:= Low(arr[i])+1 to High(arr[i])+1 do
begin
StringGrid1.Cells[j,i]:=arr[i][j-1]
end;
end;
end.
|