亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? unit1.pas

?? 用AVR單片機控制LCD點陣顯示屏的程序。
?? PAS
字號:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, Menus;

type
  TForm1 = class(TForm)
	 ComboBox1: TComboBox;
	 ComboBox2: TComboBox;
	 Label1: TLabel;
	 Label2: TLabel;
	 Image1: TImage;
	 MainMenu1: TMainMenu;
	 File1: TMenuItem;
	 Edit1: TMenuItem;
	 Label3: TLabel;
	 Image2: TImage;
	 Open1: TMenuItem;
	 Save1: TMenuItem;
	 Saveas1: TMenuItem;
	 OpenDialog1: TOpenDialog;
	 New1: TMenuItem;
	 SaveDialog1: TSaveDialog;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    LoadBMP1: TMenuItem;
    Button5: TButton;
	 procedure ComboBox1Change(Sender: TObject);
	 procedure ComboBox2Change(Sender: TObject);
	 procedure Form1Create(Sender: TObject);
	 procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
		Y: Integer);
	 procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
		Shift: TShiftState; X, Y: Integer);
	 procedure Open1Click(Sender: TObject);
	 procedure Save1Click(Sender: TObject);
	 procedure Saveas1Click(Sender: TObject);
	 procedure New1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure LoadBMP1Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
  private
	 { Private 愰尵 }
  public
	 { Public 愰尵 }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

Const
	bit: array[0..31] of LongWord =
		( $1,$2,$4,$8,$10,$20,$40,$80,
		  $100,$200,$400,$800,$1000,$2000,$4000,$8000,
		  $10000,$20000,$40000,$80000,$100000,$200000,$400000,$800000,
		  $1000000,$2000000,$4000000,$8000000,$10000000,$20000000,$40000000,$80000000
		);
Var size_x, size_y: byte;
	 pat: array[ 0..31, 0..31 ] of boolean;
	 drag_f: boolean;
	 fn: string[ 100 ];
	 bdata:	record
					sz: LongWord;
					bitmap:	array [ 0..127 ] of LongWord;
				end;
procedure DispGrid( img1, img2: TImage );
	var i: byte;
	begin
		img1.Canvas.Brush.Color := clWhite;
		Img1.Canvas.FillRect( Rect( 0,0,320,320 ) );
		img1.Canvas.Pen.Color := clRed;

		{廲慄}
		for i := 0 to size_x do begin
			img1.Canvas.MoveTo( i * 10, 0 );
			img1.Canvas.Lineto( i * 10, size_y * 10 );

		end;

		{墶慄}
		for i := 0 to size_y do begin
			img1.Canvas.MoveTo( 0, i* 10 );
			img1.Canvas.Lineto( size_x * 10, i * 10 );

		end;

		img2.Canvas.Brush.Color := clWhite;
		Img2.Canvas.FillRect( Rect( 0,0,32,32 ) );
	end;

procedure DispPat;
	begin
	end;

{ 弶婜壔 }
procedure TForm1.Form1Create(Sender: TObject);
var i, j: byte;
begin
	for i := 0 to 31 do
		for j := 0 to 31 do
			pat[ i, j ] := False;
	ComboBox1.ItemIndex := 3;	{ 墶亖8dots }
	ComboBox2.ItemIndex := 3;	{ 廲亖8dots }
	size_x := StrToInt( ComboBox1.Items[ComboBox1.ItemIndex] );
	size_y := StrToInt( ComboBox2.Items[ComboBox2.ItemIndex] );
	DispGrid( Image1, Image2 );
	DispPat;
	drag_f := False;
	bdata.sz := size_x;
end;

{ 墶僪僢僩悢曄峏 }
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
	size_x := StrToInt( ComboBox1.Items[ComboBox1.ItemIndex] );
	DispGrid( Image1, Image2 );
	DispPat;
	bdata.sz := size_x;
end;

{ 廲僪僢僩悢曄峏 }
procedure TForm1.ComboBox2Change(Sender: TObject);
begin
	size_y := StrToInt( ComboBox2.Items[ComboBox2.ItemIndex] );
	DispGrid( Image1, Image2 );
	DispPat;
end;


{ 儅僂僗偑堏摦偟偨帪 }
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
	x := x div 10;
	y := y div 10;
	if ( x < size_x ) and ( y < size_y ) then begin
		Label3.Caption := format( '%2d  %2d', [ x, y ] );
		{
		if ssLeft in Shift then begin
			if pat[ x, y ] then begin
				pat[ x, y ] := False;
				Image1.Canvas.Brush.Color := clWhite;
				Image2.Canvas.Brush.Color := clWhite;
			end else begin
				pat[ x, y ] := True;
				Image1.Canvas.Brush.Color := clBlue;
				Image2.Canvas.Brush.Color := clBlue;
			end;
			Image1.Canvas.FillRect( Rect( x * 10 + 1, y * 10 + 1, x * 10 + 10, y * 10 + 10) );
			Image2.Canvas.FillRect( Rect( x, y, x + 1, y + 1) );
		end;
		}
	end;
end;

{ 儅僂僗傪僋儕僢僋偟偨帪 }
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
	x := x div 10;
	y := y div 10;
	if ( x < size_x ) and ( y < size_y ) then begin
		if pat[ x, y ] then begin
			pat[ x, y ] := False;
			Image1.Canvas.Brush.Color := clWhite;
			Image2.Canvas.Brush.Color := clWhite;
		end else begin
			pat[ x, y ] := True;
			Image1.Canvas.Brush.Color := clBlue;
			Image2.Canvas.Brush.Color := clBlue;
		end;
		Image1.Canvas.FillRect( Rect( x * 10 + 1, y * 10 + 1, x * 10 + 10, y * 10 + 10) );
		Image2.Canvas.FillRect( Rect( x, y, x + 1, y + 1) );
	end;
end;

procedure WriteFile;

	function hex2( n: byte ): string;

		function hex1( n: byte ): char;
			begin
				if n in [ 0..9 ] then
					hex1 := chr( n + ord( '0' ) )
				else if n in [ 10..15 ] then
					hex1 := chr( n - 10 + ord( 'A' ) )
				else
					hex1 := '?';
			end;

		begin
			hex2 := hex1( n shr 4 ) + hex1( n and $F );
		end;

var f: file of LongWord;
	 ft: text;
	 i, j, k: integer;
	 name: string[ 100 ];
begin
	for i := 0 to size_x - 1 do begin
		bdata.bitmap[ i ] := 0;
		for j := 0 to size_y - 1 do
			if pat[ i, j ] then
				bdata.bitmap[ i ] := bdata.bitmap[ i ] or bit[ j ];
	end;
	AssignFile( f, fn );
	Rewrite( f );
	Write( f, bdata.sz );
	for i := 0 to bdata.sz - 1 do begin
		Write( f, bdata.bitmap[ i ] );
	end;
	CloseFile( f );

	name := ChangeFileExt( ExtractFileName( fn ), '' );
	AssignFile( ft, ChangeFileExt( fn, '.asm' ) );
	Rewrite( ft );
	Writeln( ft, 'FONT_' + name + ':');
	for k := 0 to ( size_y -1 ) div 8 do begin
		Write( ft, '.DB	' );
		for i := 0 to bdata.sz - 1 do begin
			Write( ft, '$'+hex2( bdata.bitmap[ i ] and $FF ) );
			if i <> bdata.sz - 1 then
				Write( ft, ', ' );
			bdata.bitmap[ i ] := bdata.bitmap[ i ] shr 8;
		end;
		Writeln( ft );
	end;
	CloseFile( ft );

end;

{ "Load" }
procedure TForm1.Open1Click(Sender: TObject);
var f: file of LongWord;
	 i, j: integer;
begin
	OpenDialog1.FileName := '*.FNT';
	OpenDialog1.InitialDir := 'C:\FONT';
	if not OpenDialog1.execute then
		exit;
	fn := OpenDialog1.FileName;
	AssignFile( f, fn );
	Reset( f );
	Read( f, bdata.sz );
	size_x := bdata.sz;
	DispGrid( Image1, Image2 );
	DispPat;
	for i := 0 to bdata.sz - 1 do
		Read( f, bdata.bitmap[ i ] );
	CloseFile( f );
	Save1.Enabled := True;
	for i := 0 to size_x - 1 do
		for j := 0 to size_y - 1 do begin
			if bdata.bitmap[ i ] and bit[ j ] > 0 then begin
				pat[ i, j ] := True;
				Image1.Canvas.Brush.Color := clBlue;
				Image2.Canvas.Brush.Color := clBlue;
			end else begin
				pat[ i, j ] := False;
				Image1.Canvas.Brush.Color := clWhite;
				Image2.Canvas.Brush.Color := clWhite;
			end;
			Image1.Canvas.FillRect( Rect( i * 10 + 1, j * 10 + 1, i * 10 + 10, j * 10 + 10) );
			Image2.Canvas.FillRect( Rect( i, j, i + 1, j + 1) );
		end;
end;

{ "Save" }
procedure TForm1.Save1Click(Sender: TObject);
begin
	WriteFile;
end;

{ "Save as" }
procedure TForm1.Saveas1Click(Sender: TObject);
var f: file of byte;
	 i: integer;
begin
	SaveDialog1.FileName := '*.FNT';
	SaveDialog1.InitialDir := 'C:\FONT';
	if not SaveDialog1.execute then
		exit;
	fn := SaveDialog1.FileName;
	WriteFile;
	Save1.Enabled := True;
end;

procedure TForm1.New1Click(Sender: TObject);
var i, j: integer;
begin
	Save1.Enabled := False;
	for i := 0 to size_x - 1 do begin
		bdata.bitmap[ i ] := 0;
		for j := 0 to size_y - 1 do begin
			pat[ i, j ] := False;
			Image1.Canvas.Brush.Color := clWhite;
			Image2.Canvas.Brush.Color := clWhite;
			Image1.Canvas.FillRect( Rect( i * 10 + 1, j * 10 + 1, i * 10 + 10, j * 10 + 10) );
			Image2.Canvas.FillRect( Rect( i, j, i + 1, j + 1) );
		end;
	end;
end;

procedure Disp;
	var x, y: integer;
	begin
		with Form1 do begin
		for x := 0 to size_x - 1 do
			for y := 0 to size_y - 1 do begin
				if pat[ x, y ] then begin
					Image1.Canvas.Brush.Color := clBlue;
					Image2.Canvas.Brush.Color := clBlue;
				end else begin
					Image1.Canvas.Brush.Color := clWhite;
					Image2.Canvas.Brush.Color := clWhite;
				end;
				Image1.Canvas.FillRect( Rect( x * 10 + 1, y * 10 + 1, x * 10 + 10, y * 10 + 10) );
				Image2.Canvas.FillRect( Rect( x, y, x + 1, y + 1) );
		end;
		end;
	end;

{ 忋僔僼僩 }
procedure TForm1.Button1Click(Sender: TObject);
var x, y: integer;
begin
	for y := 0 to 30 do
		for x := 0 to 31 do
			pat[ x, y ] := pat[ x, y + 1 ];
	for x := 0 to 31 do
		pat[ x, size_y - 1 ] := False;

	Disp;
end;

{ 壓僔僼僩 }
procedure TForm1.Button2Click(Sender: TObject);
var x, y: integer;
begin
	for y := 31 downto 1 do
		for x := 0 to 31 do
			pat[ x, y ] := pat[ x, y - 1 ];
	for x := 0 to 31 do
		pat[ x, 0 ] := False;

	Disp;
end;

{ 嵍僔僼僩 }
procedure TForm1.Button3Click(Sender: TObject);
var x, y: integer;
begin
	for y := 0 to 31 do
		for x := 0 to 30 do
			pat[ x, y ] := pat[ x + 1, y ];
	for y := 0 to 31 do
		pat[ size_x - 1, y ] := False;

	Disp;
end;

{ 塃僔僼僩 }
procedure TForm1.Button4Click(Sender: TObject);
var x, y: integer;
begin
	for y := 0 to 31 do
		for x := 31 downto 1 do
			pat[ x, y ] := pat[ x - 1, y ];
	for y := 0 to 31 do
		pat[ 0, y ] := False;

	Disp;
end;

{ Load BMP }
procedure TForm1.LoadBMP1Click(Sender: TObject);
var
  Bitmap: TBitmap;
  x, y: integer;
begin
	OpenDialog1.FileName := '*.BMP';
	OpenDialog1.InitialDir := 'C:\FONT';
	if not OpenDialog1.execute then
		exit;

	Bitmap := TBitmap.Create;
	try
		Bitmap.LoadFromFile(OpenDialog1.FileName);
		Image2.Canvas.Brush.Bitmap := Bitmap;
		Image2.Canvas.FillRect(Rect(0,0,31,31));
		for x := 0 to 31 do
			for y := 0 to 31 do
				if Image2.Canvas.Pixels[ x, y ] = 0 then
					pat[ x, y ] := True
				else
					pat[ x, y ] := False;
		Disp;
  finally
	 Image1.Canvas.Brush.Bitmap := nil;
	 Bitmap.Free;
  end;

end;

{ CLEAR }
procedure TForm1.Button5Click(Sender: TObject);
var x, y: integer;
begin
	for x := 0 to 31 do
		for y := 0 to 31 do
			pat[ x, y ] := False;
	Disp;
end;

procedure TForm1.Button6Click(Sender: TObject);
var f: file of byte;
	 b: byte;
	 i, j: integer;
begin
	OpenDialog1.FileName := '*.FNT';
	OpenDialog1.InitialDir := 'C:\FONT';
	if not OpenDialog1.execute then
		exit;
	fn := OpenDialog1.FileName;
	AssignFile( f, fn );
	Reset( f );
	Read( f, b );
	bdata.sz := b;
	size_x := bdata.sz;
	DispGrid( Image1, Image2 );
	DispPat;
	for i := 0 to bdata.sz - 1 do begin
		Read( f, b );
		bdata.bitmap[ i ] := b;
	end;
	CloseFile( f );
	Save1.Enabled := True;
	for i := 0 to size_x - 1 do
		for j := 0 to size_y - 1 do begin
			if bdata.bitmap[ i ] and bit[ j ] > 0 then begin
				pat[ i, j ] := True;
				Image1.Canvas.Brush.Color := clBlue;
				Image2.Canvas.Brush.Color := clBlue;
			end else begin
				pat[ i, j ] := False;
				Image1.Canvas.Brush.Color := clWhite;
				Image2.Canvas.Brush.Color := clWhite;
			end;
			Image1.Canvas.FillRect( Rect( i * 10 + 1, j * 10 + 1, i * 10 + 10, j * 10 + 10) );
			Image2.Canvas.FillRect( Rect( i, j, i + 1, j + 1) );
		end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品99久久久| 亚洲乱码国产乱码精品精的特点| 久久久99久久| 亚洲精品日日夜夜| 福利一区二区在线观看| 91精品福利在线一区二区三区 | 欧美日韩国产小视频| 日韩一区二区电影| 一区二区三国产精华液| 高潮精品一区videoshd| 26uuu精品一区二区| 亚洲永久精品大片| 亚洲色图一区二区| 国产精品日韩精品欧美在线| 香蕉乱码成人久久天堂爱免费| 欧美日韩一区二区电影| 亚洲欧洲精品一区二区三区| 日本vs亚洲vs韩国一区三区| 欧美在线免费观看亚洲| 亚洲国产岛国毛片在线| 开心九九激情九九欧美日韩精美视频电影 | 国产午夜亚洲精品理论片色戒| 五月婷婷久久丁香| 在线视频欧美精品| 中文字幕亚洲电影| 成人性视频网站| 国产欧美中文在线| 国产美女娇喘av呻吟久久| 欧美手机在线视频| 天使萌一区二区三区免费观看| 91久久精品一区二区三| 一区二区三区.www| 欧美这里有精品| 五月综合激情婷婷六月色窝| 91久久人澡人人添人人爽欧美| 亚洲人成亚洲人成在线观看图片| www.视频一区| 亚洲欧洲日产国码二区| 91丝袜美女网| 亚洲美女视频在线| 欧美色涩在线第一页| 亚洲午夜在线视频| 欧美日韩一区二区欧美激情| 亚洲国产美女搞黄色| 欧美日韩一区二区在线视频| 天堂成人免费av电影一区| 91麻豆精品国产91久久久更新时间| 亚洲国产欧美一区二区三区丁香婷| 欧美三电影在线| 欧美aa在线视频| 日韩免费电影一区| 粉嫩av一区二区三区| ●精品国产综合乱码久久久久| 成人99免费视频| 亚洲午夜精品网| 精品裸体舞一区二区三区| 粉嫩嫩av羞羞动漫久久久| 亚洲欧美色综合| 欧美一区二区视频在线观看 | 精品久久久影院| 成人午夜av电影| 亚洲一区二区影院| 日韩免费视频一区二区| 懂色av一区二区三区免费观看| 亚洲天堂免费在线观看视频| 欧美写真视频网站| 国产一本一道久久香蕉| 亚洲精品中文在线| 日韩午夜小视频| jlzzjlzz国产精品久久| 首页综合国产亚洲丝袜| 久久色.com| 欧美少妇bbb| 国产精品夜夜嗨| 性做久久久久久久免费看| 亚洲精品一区二区三区精华液| 99视频超级精品| 麻豆精品在线播放| 亚洲男女毛片无遮挡| 日韩欧美精品在线| 91久久精品一区二区三| 国产麻豆9l精品三级站| 亚洲mv在线观看| 亚洲婷婷综合色高清在线| 亚洲精品一区二区三区99| 精品视频在线免费| 99re热视频精品| 国产精品自在在线| 日韩1区2区3区| 亚洲一区精品在线| 国产精品电影一区二区三区| 日韩欧美高清一区| 欧美性生活大片视频| av一区二区三区四区| 激情文学综合丁香| 免费观看一级特黄欧美大片| 一区二区三区在线视频观看| 欧美激情综合五月色丁香| 日韩欧美aaaaaa| 欧美一区二区性放荡片| 欧美日韩国产系列| 欧美亚洲禁片免费| 色综合天天综合在线视频| 成人精品在线视频观看| 久99久精品视频免费观看| 亚洲一区二区精品视频| 亚洲激情av在线| 亚洲视频一区在线观看| 国产精品―色哟哟| 国产午夜精品一区二区三区视频| 日韩免费视频一区| 精品国产污网站| 精品国产一区二区三区不卡| 欧美成人性福生活免费看| 91精品免费在线| 91精品午夜视频| 欧美一级免费大片| 欧美一区二区三级| 日韩午夜在线播放| 久久亚洲综合色| 久久精品夜夜夜夜久久| 国产日韩欧美亚洲| 亚洲国产精品高清| 亚洲欧美一区二区久久| 亚洲永久精品国产| 亚洲激情av在线| 久久国产麻豆精品| 五月天激情综合网| 蜜桃精品视频在线| 国产aⅴ综合色| 中文字幕av一区 二区| 欧美成人官网二区| 久久久777精品电影网影网 | 亚洲精品一区二区三区四区高清| 欧美成人video| 欧美精品一区二区精品网| 久久精品夜色噜噜亚洲a∨| 欧美激情综合网| 一级精品视频在线观看宜春院| 亚洲综合视频在线观看| 日本欧洲一区二区| 丁香六月久久综合狠狠色| 成人av电影免费观看| 欧美体内she精高潮| 欧美一级二级三级乱码| 亚洲国产精品99久久久久久久久| 欧美高清视频不卡网| 亚洲免费视频中文字幕| 日韩免费一区二区| 亚洲欧洲av色图| 图片区日韩欧美亚洲| 国产精品影视天天线| 日韩免费观看2025年上映的电影| 久久久精品2019中文字幕之3| 亚洲天堂中文字幕| 精品一区二区三区香蕉蜜桃| www.爱久久.com| 91精品国产乱码久久蜜臀| 欧美国产精品久久| 日韩av在线发布| 99久久婷婷国产综合精品电影 | 欧美精品丝袜久久久中文字幕| 久久在线免费观看| 亚洲午夜精品网| 成人app软件下载大全免费| 67194成人在线观看| 国产精品久久福利| 麻豆一区二区99久久久久| 色猫猫国产区一区二在线视频| 精品日韩av一区二区| 亚洲精品老司机| 成人永久aaa| 久久亚洲私人国产精品va媚药| 亚洲综合精品自拍| 成人激情av网| 精品久久久三级丝袜| 视频一区视频二区在线观看| 成人高清免费观看| 国产亚洲一区字幕| 美女脱光内衣内裤视频久久影院| 91国偷自产一区二区三区观看| 久久久五月婷婷| 国产真实精品久久二三区| 91.com在线观看| 午夜电影久久久| 欧美影片第一页| 亚洲精品成人天堂一二三| 不卡电影一区二区三区| 久久亚洲综合色一区二区三区| 免费视频最近日韩| 欧美精品第1页| 日韩精品亚洲专区| 欧美日韩国产综合草草| 一区二区三区四区国产精品| 99免费精品在线| 国产精品入口麻豆原神| 白白色 亚洲乱淫| 国产午夜精品一区二区三区嫩草 | 国产亚洲一区二区三区在线观看| 日韩高清电影一区|