📄 unit4.pas
字号:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, bsSkinCtrls, StdCtrls,Gamemap;
type
TForm4 = class(TForm)
Label1: TLabel;
Shape1: TShape;
procedure FormCreate(Sender: TObject);
procedure point1(x:integer;y:integer;w:integer;z:integer);
procedure FormPaint(Sender: TObject);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
FileName : string ;
T1 : TMapInfo;
p1,p2 : Point ;
MouseX,MouseY : Integer ;
rp: TTmpPnt;
implementation
{$R *.dfm}
procedure TForm4.point1(x:integer;y:integer;w:integer;z:integer);
begin
if (x<1) or (x>T1.GetXMax) or (y<1) or (y>T1.GetYMax) then
begin
ShowMessage('点不在地图上');
exit;
end;
if (p1.x=0) and (p1.y=0) then
begin
p1.x:=x;
p1.y:=y;
end;
if (p2.x=0) and (p2.y=0) then
begin
p2.x:=w;
p2.y:=z;
end;
RP:=TTmpPnt.Create;
if T1.FindRoad(p1,p2,RP)=false then
ShowMessage('无法到达');
while RP.GetSize<>0 do
begin
Shape1.Top:=RP.GetTail.y;
Shape1.Left:=RP.GetTail.x;
end;
p1.x:=0;
p2.x:=0;
p1.y:=0;
p2.y:=0;
RP.Free;
end;
procedure TForm4.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
s1:string;
begin
MouseX:=X;
MouseY:=Y;
s1:=InttoStr(MouseX)+','+IntToStr(MouseY);
Label1.Caption:=s1;
end;
procedure TForm4.FormCreate(Sender: TObject);
begin
T1:=TMapInfo.Create;
end;
procedure TForm4.FormPaint(Sender: TObject);
var
i,j:Integer;
begin
for j:=1 to T1.GetYMax do
begin
for i:=1 to T1.GetXMax do
begin
if T1.TestPoint(i,j)=false then
begin
Canvas.Pixels[i,j]:=clBlack;
end;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -