level 1
小ns莫海
楼主
哪位大神可以把下面的代码,用C#窗体来实现。感激不尽
unit UnitLED;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, jpeg;
type
TfrmLED = class(TForm)
Panel1: TPanel;
Image1: TImage;
Button2: TButton;
Button3: TButton;
Timer1: TTimer;
FontDialog1: TFontDialog;
Edit1: TEdit;
Button4: TButton;
PaintBox1: TPaintBox;
Image2: TImage;
procedure FormCreate(Sender: TObject);
procedure DrawDot(x,y:integer;DrawColor:TColor);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FontDialog1Apply(Sender: TObject; Wnd: HWND);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmLED: TfrmLED;
xy:array [0..300,0..200] of TColor;
n,x,y:integer;
r:integer=10;
g:integer=20;
b:integer=5;
implementation
{$R *.dfm}
procedure TfrmLED.FormCreate(Sender: TObject);
var i:integer;
begin
x:=0; y:=0;
Image1.Canvas.Brush.Color:=clblack;
Image1.Canvas.FillRect(Image1.ClientRect);
Image1.Canvas.Pen.Color:=clSilver;
//Image1.Canvas.Pen.Color:=clFuchsia;
for i:=0 to Image1.Width div 4 do
begin
Image1.Canvas.MoveTo(i*4,0);
Image1.Canvas.LineTo(i*4,Image1.Height);
end;
for i:=0 to Image1.Height div 4 do
begin
Image1.Canvas.MoveTo(0,i*4);
Image1.Canvas.LineTo(Image1.Width,i*4);
end;
end;
procedure TfrmLED.DrawDot(x,y:integer;DrawColor:TColor);
var i:integer;
begin
Image1.Canvas.Brush.Color:=DrawColor;
Image1.Canvas.Rectangle(x*4,y*4,x*4+8,y*4+8);
end;
procedure TfrmLED.Button2Click(Sender: TObject);
var i,n:integer;
mycolor:Tcolor;
begin
timer1.Enabled:=true;
paintbox1.Canvas.TextOut(0,10,edit1.Text);
for i:=0 to 200 do
for n:=0 to 31 do
begin
if paintbox1.Canvas.Pixels[i,n]<15 then begin DrawDot(i+80,n,clred);
xy[i+80,n]:=clred;
end;
end;
for i:=1 to 200 do
for n:=1 to 180 do
begin
MyColor:= image2.Canvas.Pixels[i,n-31];
DrawDot(i,n,MyColor);
end;
end;
procedure TfrmLED.Button3Click(Sender: TObject);
begin
// while
if timer1.Enabled=false then begin timer1.Enabled:=true;button3.Caption:='暂停';end
else begin timer1.Enabled:=false;button3.Caption:='继续';end;
end;
procedure TfrmLED.Timer1Timer(Sender: TObject);
var i,n:integer;
begin
for i:=0 to 200 do
for n:=0 to 32 do
begin
DrawDot(i,n,xy[i+x,n]);
end;
x:=(x+1) mod 190;
{ for i:=0 to 200 do
for n:=33 to 200 do
begin
DrawDot(i,n,xy[i,n+y]);
end;
y:=(y+1) mod 190; }
end;
procedure TfrmLED.FontDialog1Apply(Sender: TObject; Wnd: HWND);
begin
edit1.Font:= fontdialog1.Font;
end;
procedure TfrmLED.Button4Click(Sender: TObject);
begin
with FontDialog1 do
begin
if Execute then
begin
edit1.Font.Name:=font.Name;
paintbox1.Font:=Font;
// Label7.Font:= Font;
end;
end;
end;
end.
2015年03月29日 12点03分
1
unit UnitLED;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, jpeg;
type
TfrmLED = class(TForm)
Panel1: TPanel;
Image1: TImage;
Button2: TButton;
Button3: TButton;
Timer1: TTimer;
FontDialog1: TFontDialog;
Edit1: TEdit;
Button4: TButton;
PaintBox1: TPaintBox;
Image2: TImage;
procedure FormCreate(Sender: TObject);
procedure DrawDot(x,y:integer;DrawColor:TColor);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FontDialog1Apply(Sender: TObject; Wnd: HWND);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmLED: TfrmLED;
xy:array [0..300,0..200] of TColor;
n,x,y:integer;
r:integer=10;
g:integer=20;
b:integer=5;
implementation
{$R *.dfm}
procedure TfrmLED.FormCreate(Sender: TObject);
var i:integer;
begin
x:=0; y:=0;
Image1.Canvas.Brush.Color:=clblack;
Image1.Canvas.FillRect(Image1.ClientRect);
Image1.Canvas.Pen.Color:=clSilver;
//Image1.Canvas.Pen.Color:=clFuchsia;
for i:=0 to Image1.Width div 4 do
begin
Image1.Canvas.MoveTo(i*4,0);
Image1.Canvas.LineTo(i*4,Image1.Height);
end;
for i:=0 to Image1.Height div 4 do
begin
Image1.Canvas.MoveTo(0,i*4);
Image1.Canvas.LineTo(Image1.Width,i*4);
end;
end;
procedure TfrmLED.DrawDot(x,y:integer;DrawColor:TColor);
var i:integer;
begin
Image1.Canvas.Brush.Color:=DrawColor;
Image1.Canvas.Rectangle(x*4,y*4,x*4+8,y*4+8);
end;
procedure TfrmLED.Button2Click(Sender: TObject);
var i,n:integer;
mycolor:Tcolor;
begin
timer1.Enabled:=true;
paintbox1.Canvas.TextOut(0,10,edit1.Text);
for i:=0 to 200 do
for n:=0 to 31 do
begin
if paintbox1.Canvas.Pixels[i,n]<15 then begin DrawDot(i+80,n,clred);
xy[i+80,n]:=clred;
end;
end;
for i:=1 to 200 do
for n:=1 to 180 do
begin
MyColor:= image2.Canvas.Pixels[i,n-31];
DrawDot(i,n,MyColor);
end;
end;
procedure TfrmLED.Button3Click(Sender: TObject);
begin
// while
if timer1.Enabled=false then begin timer1.Enabled:=true;button3.Caption:='暂停';end
else begin timer1.Enabled:=false;button3.Caption:='继续';end;
end;
procedure TfrmLED.Timer1Timer(Sender: TObject);
var i,n:integer;
begin
for i:=0 to 200 do
for n:=0 to 32 do
begin
DrawDot(i,n,xy[i+x,n]);
end;
x:=(x+1) mod 190;
{ for i:=0 to 200 do
for n:=33 to 200 do
begin
DrawDot(i,n,xy[i,n+y]);
end;
y:=(y+1) mod 190; }
end;
procedure TfrmLED.FontDialog1Apply(Sender: TObject; Wnd: HWND);
begin
edit1.Font:= fontdialog1.Font;
end;
procedure TfrmLED.Button4Click(Sender: TObject);
begin
with FontDialog1 do
begin
if Execute then
begin
edit1.Font.Name:=font.Name;
paintbox1.Font:=Font;
// Label7.Font:= Font;
end;
end;
end;
end.