📄 testform.~pas
字号:
unit TestForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, ComCtrls, ExtCtrls;
type
TForm1 = class(TForm)
g: TStringGrid;
Panel1: TPanel;
Label1: TLabel;
Memo1: TMemo;
Edit4: TEdit;
Label2: TLabel;
UpDown1: TUpDown;
Button3: TButton;
Button1: TButton;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label5: TLabel;
Label6: TLabel;
Edit3: TEdit;
Edit5: TEdit;
Label7: TLabel;
Edit6: TEdit;
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure gDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
State: TGridDrawState);
procedure Edit4Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses ReedSolomon, ECC200, Plot;
procedure TForm1.Button2Click(Sender: TObject);
var
x,y,z : TPloy;
begin
SetLength(x, 8);
x[7] := 142;
x[6] := 164;
x[5] := 186;
x[4] := 0;
x[3] := 0;
x[2] := 0;
x[1] := 0;
x[0] := 0;
SetLength(y, 6);
y[5] := 1;
y[4] := 62;
y[3] := 111;
y[2] := 15;
y[1] := 48;
y[0] := 228;
z := PloyMod(x,y);
//Edit2.Text := IntToStr(z[4]) + ',' + IntToStr(z[3]) + ',' + IntToStr(z[2])
// + ',' + IntToStr(z[1]) + ',' + IntToStr(z[0]);
end;
procedure TForm1.Button3Click(Sender: TObject);
var
s : TByteArray;
m : TByteArray;
i, j : integer;
t, tt : string;
w, h : integer;
begin
t := Memo1.Text;
SetLength(s, Length(t));
for i := 1 to Length(t) do
begin
s[i-1] := Ord(t[i]);
end;
CalcECC200(s, ecc200_Autosize, ecc200_Square, m, w, h);
g.RowCount := h;
g.ColCount := w;
for i := 0 to h - 1 do
begin
for j := 0 to w - 1 do
begin
g.Cells[j, i] := IntToStr(m[i * w + j]);
end;
end;
end;
procedure TForm1.gDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if g.Cells[acol, arow] = '1' then
begin
g.Canvas.Pen.Color := 0;
g.Canvas.Brush.Color := 0
end
else
begin
g.Canvas.Pen.Color := $FFFFFF;
g.Canvas.Brush.Color := $FFFFFF;
end;
g.Canvas.Rectangle(Rect);
end;
procedure TForm1.Edit4Change(Sender: TObject);
var
n : integer;
begin
try
n := StrToInt(Edit4.Text);
g.DefaultColWidth := n;
g.DefaultRowHeight := n;
except
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
x0, y0, DX, DY, time : longint;
p : TPlot;
i, j : integer;
begin
x0 := StrToInt(Edit1.Text);
y0 := StrToInt(Edit2.Text);
dx := StrToInt(Edit3.Text);
dy := StrToInt(Edit5.Text);
time := StrToInt(Edit6.Text);
p := TPlot.Create;
try
for i := 0 to g.ColCount - 1 do
begin
if i mod 2 = 0 then
begin
for j := 0 to g.RowCount - 1 do
begin
p.MoveTo(x0 + i * dx, y0 + j * dy);
if g.Cells[i, j] = '1' then
begin
p.PenDown;
p.Delay(time);
p.PenUp;
end;
end
end
else
begin
for j := g.RowCount - 1 downto 0 do
begin
p.MoveTo(x0 + i * dx, y0 + j * dy);
if g.Cells[i, j] = '1' then
begin
p.PenDown;
p.Delay(time);
p.PenUp;
end;
end
end;
end
finally
p.Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -