文档章节

WinAPI: GetPath - 获取路径中的点

涂孟超
 涂孟超
发布于 2014/09/26 15:34
字数 325
阅读 7
收藏 0
点赞 0
评论 0
本例效果图:



代码文件:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    procedure FormPaint(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormPaint(Sender: TObject);
type
  TPArr = array[0..0] of TPoint;
  TTArr = array[0..0] of Byte;
var
  pts: ^TPArr;
  types: ^TTArr;  {上面四行只是为了记录数据位置的起始点, 直接用指针也可以, 但用数组方便}
  count: Integer;
  i,x,y: Integer;
begin
  Canvas.Font.Size := 150;
  Canvas.Font.Style := [fsBold];
  SetBkMode(Canvas.Handle, TRANSPARENT);

  {路径}
  BeginPath(Canvas.Handle);
  Canvas.TextOut(2, 0, '万');
  EndPath(Canvas.Handle);

  Canvas.Pen.Color := clWhite;

  {GetPath 最后一个参数是 0, 可以先获取点总数}
  count := GetPath(Canvas.Handle, pts^, types^, 0);

  {分配内存}
  GetMem(pts, count*SizeOf(TPoint));
  GetMem(types, count);

  {获取点序列, 同时也获取了点类型序列}
  count := GetPath(Canvas.Handle, pts^, types^, count);
  Text := '路径中点的总数是: ' + IntToStr(count);

  {路径描边}
  StrokePath(Canvas.Handle);

  Memo1.Clear;
  Canvas.Brush.Color := clRed;

  {显示和绘制点序列}
  for i := 0 to count - 1 do
  begin
    x := pts^[i].X;
    y := pts^[i].Y;
    Memo1.Lines.Add(Format('x:%d;' + #9 + 'y:%d', [x, y]));
    Canvas.FillRect(Rect(x-1,y-1,x+1,y+1));
  end;

  {释放内存}
  FreeMem(pts);
  FreeMem(types);
end;

end.

 
 
 
 
 

 

 

  
窗体文件:
object Form1: TForm1
  Left = 329
  Top = 269
  Caption = 'Form1'
  ClientHeight = 235
  ClientWidth = 331
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  Position = poDesigned
  OnPaint = FormPaint
  PixelsPerInch = 96
  TextHeight = 13
  object Memo1: TMemo
    Left = 216
    Top = 0
    Width = 115
    Height = 235
    Align = alRight
    Lines.Strings = (
      'Memo1')
    ScrollBars = ssBoth
    TabOrder = 0
    ExplicitHeight = 264
  end
end

 
 
 
 
 

 

 

  

© 著作权归作者所有

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
iTween基础之iTweenPath(自定义路径移动)

在游戏开发中经常会用到让一个游戏对象按照指定的路线移动,iTweenPath就提供了可视化的编辑路径功能. iTweenPath 下载地址: http://download.csdn.net/detail/IGames/9482833 原文地址: htt...

乐逍遥jun ⋅ 2016/04/06 ⋅ 0

关于ClassLoader中getResource与getResourceAsStream的疑问

背景: 某日临近下班,一个同事欲任何类中获取项目绝对路径,不通过Request方式获取,可是始终获取不到预想的路径。于是晚上回家google了一下,误以为是System.getProperty("java.class.path...

六只 ⋅ 2011/12/14 ⋅ 5

hadoop文件路径问题

使用ubuntu虚拟机进行数据处理,搭好hadoop完全分布式环境之后,将要处理的2个文件上传到hadoop集群中,不是有eclipse,直接使用shell脚本去调用class文件进行处理数据,其中有2个fromcsv.c...

颠覆 ⋅ 2014/12/02 ⋅ 0

java中获得当前文件路径多种方法

java中获得当前文件路径多种方法 public String getClassPath(){ try {path=new File(getClass().getClassLoader().getResource("").toURI()).getPath(); } 取程序运行时的目录路径。即程序在......

小老傅 ⋅ 2015/04/21 ⋅ 0

Java路径问题解决方案汇集

最近查看了网上很多关于路径问题资料大概总结了一下: Java路径中的空格问题 1、 URLTest.class.getResource("/").getPath(); URLTest.class.getResource("/").getFile(); URLTest.class.ge...

afreon ⋅ 2013/02/17 ⋅ 0

[Python源码学习]之Py_InitializeEx

Py_InitializeEx 进行python的初始化工作。多数东西都不懂,简单记录一下,备忘。 进程状态 首先创建: 进程状态PyInterpreterState对象 interp 线程状态PyThreadState对象 tstate 当前线程状...

晨曦之光 ⋅ 2012/05/08 ⋅ 0

Java 获取当前路径

Java获取当前路径 System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径 2、使用File提供的函数获取当前路径: File directory = new File("");//设定为当前文件...

塔塔米 ⋅ 2014/09/19 ⋅ 0

获取Android手机中SD卡存储信息 获取剩余空间

SD卡作为手机的扩展存储设备,在手机中充当硬盘角色,可以让我们手机存放更多的数据以及多媒体等大体积文件。因此查看SD卡的内存就跟我们查看硬盘的剩余空间一样,是我们经常操作的一件事,那...

鉴客 ⋅ 2011/12/05 ⋅ 0

Android获取指定目录下的文件代码

// 从sd卡获取图片资源 private List<String> getImagePathFromSD() { // 图片列表 List<String> picList = new ArrayList<String>(); / // 得到sd卡内路径 String imagePath = Environment......

xiahuawuyu ⋅ 2012/12/13 ⋅ 0

PHP SPL中提供了SplFileInfo和SplFileObject两个类来处理文件操作。

PHP SPL中提供了SplFileInfo和SplFileObject两个类来处理文件操作。 SplFileInfo用来获取文件详细信息: $file = new SplFileInfo('foo-bar.txt'); print_r(array( 'getATime' => $file->ge......

雾妄 ⋅ 2016/12/15 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

笔试题之Java基础部分【简】【一】

基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法,其他 1.length、length()和size() length针对...

anlve ⋅ 17分钟前 ⋅ 1

table eg

user_id user_name full_name 1 zhangsan 张三 2 lisi 李四 `` ™ [========] 2018-06-18 09:42:06 星期一½ gdsgagagagdsgasgagadsgdasgagsa...

qwfys ⋅ 41分钟前 ⋅ 0

一个有趣的Java问题

先来看看源码: public class TestDemo { public static void main(String[] args) { Integer a = 10; Integer b = 20; swap(a, b); System.out......

linxyz ⋅ 46分钟前 ⋅ 0

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 今天 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 8

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部