自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TU2的专栏

开源:https://gitee.com/245806497

  • 博客(52)
  • 资源 (17)
  • 收藏
  • 关注

原创 FMX调用JAR里的JAVA类Init方法

本文背景:Delphi XE10.3RIO由于FMX的JNIBridge将init作为默认的JAVA对象构造函数名,JAR中如果有方法名为init的类方法,FMX都会映射为构成函数,造成调用失败。这一问题需要官方修改Androidapi.JNIBridge单元的MethodIDFor方法逻辑,这里给出一个临时的Fix方法。unit TU2Helper.Android;interfa...

2019-02-11 15:14:24 708

原创 Delphi内存对齐

本文环境Delphi XE 10.2  我们知道在Delphi中,全局变量存储在应用程序数据段中,其生命周期直至整个应用进程终止;局部变量存储在应用程序栈中,其生命周期直至当前声明的函数方法返回;以GetMem,New等方法动态申请的内存由堆分配,其生命周期直至以FreeMem或Dispose方法销毁;长字符串(Long string), 宽字符串(wide string), 动态数组(dynam...

2018-06-01 16:23:50 989

原创 Firemonkey扩展增强:iOS/Android使用贝塞尔曲线绘制签名(笔迹)

Firemonkey扩展增强:iOS/Android使用贝塞尔曲线绘制签名(笔迹)

2017-09-21 16:56:04 1797 9

原创 Firemonkey扩展增强:Android 浏览器支持Input file标签上传功能

Delphi XE10.2 Tokyo Firemonkey自带的浏览器TWebbrower控件在Android平台上只是简单继承封装了Android系统本身的WebView组件。Android WebView 由于安全等原因本身并没有实现input标签的选择文件功能,而是预留了一个setWebChromeClient方法来设置替换默认的Chrome处理器。

2017-08-07 12:43:42 2075

原创 Delphi货币类型转中文大写金额

在Delphi中,为了实现货币数值运算中的严格精度要求,内部把货币类型数据当作一个放大10000倍的64位整数来处理。这样根据64位整数的范围,可以得出货币类型Currency的范围是 [-922337203685477.5807; 922337203685477.5807]。货币类型一个最常见的应用场景是金额大写转换,网上都是一些先将货币转字符串后再对字符串处理的代码,而且有些方法在有些情况

2017-06-15 15:03:30 2380

原创 技巧笔记:Algin属性设置顺序问题

程序界面设计中都会使用到控件的Align属性,有时一个容器中需要设置相同Align属性的多个控件,但每次依次设置Align的属性,却发现其实际顺序并不是自己想要的。这里面其实有个技巧:1,对于Align=Top,我们需要确保控件在设置Align前,其Y坐标值大于之前的控件;2,对于Align=Left,我们需要确保控件在设置Align前,其X坐标值大于之前的控件;3,对于Ali

2017-06-14 19:19:42 794

原创 Firemonkey扩展增强:Android 浏览器执行JavaScript获取结果及JavaScript调用本地方法

本文写作背景:delphi XE10.1Firemonkey自带的TWebBrower对于JavaScript的交互支持一直不是很好,仅仅提供了一个本地执行JavaScript的方法EvaluateJavaScript,而且该方法不提供JS执行的返回结果。在安卓平台上,EvaluateJavaScript是通过WebView的loadUrl('javascript:' + JavaScri

2017-01-06 13:56:57 4771 10

转载 Delphi汇编基础

The registers are set with values before entering the function or procedure. How these are set depends on how the function or procedure was defined. There are two possibilities.Stand alone, or e

2016-08-15 10:40:33 950

转载 内存对齐分配策略(含位域模式)

转自:http://www.cnblogs.com/ToDoToTry/archive/2011/09/05/2167694.html1:内存对齐定义:     现在使用的计算机中内存空间都是按照字节划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但是实际上计算机系统对于基本数据类型在内存中的存放位置都有限制,要求这些数据存储首地址是某个数K的倍数,这样各种

2016-08-04 11:58:41 2055

原创 扩展IDE——为翻译OC头文件增加编写模板OCImport

扩展IDE——为翻译OC头文件增加编写模板OCImport

2016-06-25 23:56:00 1682

转载 窗口的子类化与超类化

窗口的子类化与超类化——子类化是窗口实例级别的,超类化是在窗口类(WNDCLASS)级别的1. 子类化 理论:子类化是这样一种技术,它允许一个应用程序截获发往另一个窗口的消息。一个应用程序通过截获属于另一个窗口的消息,从而实现增加、监视或者修改那个窗口的缺省行为。子类化是用来改变或者扩展一个已存在的窗口的行为、而不用重新开发的有效途径。想要获得那些预定义控件窗口类(按钮控件、编

2016-04-07 21:39:25 1054

原创 Delphi快捷键

Delphi 快捷键(基于万一博客增加修改)分类快捷键解释备注组件设计类Escape选择当前组件容器 Shift + Click选择多个组件;选择窗体 Tab选择下一个组件 Shift + Tab选择

2016-03-28 15:28:55 804

原创 Firemonkey扩展增强: iOS 运行时更改锁定显示方向(增强版)

之前在这里介绍过Firemonkey如何在运行时更改和锁定iOS设备的显示方向。这里给出一个改良优化的版本,增加考虑原先支持显示方向以减少不必要的重绘。

2016-03-12 18:27:22 1114

原创 Firemonkey扩展增强: iOS 访问钥匙串Keychain

项目中需要区分iOS设备,但是苹果已经封了获取UDID和MAC的API,目前可行的方案是在钥匙串Keychain中存储自己产生的唯一标识,如GUID。关于iOS的唯一标识技术解决方案比较参见:这里苹果官方钥匙串开发指导参见Keychain Services Programming Guide。Firemonkey目前并没有为我们封装好Security.framework,看了苹果官方的...

2016-03-12 17:48:45 2294 4

原创 IP编辑控件

最近需要用一个IP输入控件,网上找了几个,都不符合效果,有些还有一些奇怪的Bug。后来发现原来系统已经提供了IP地址编辑控件,只是系统提供的控件不能设置只读效果。网上找了下资料,封装了一下,自己迂回一下实现了只读效果。unit ueIPEdit;interfaceuses System.SysUtils, System.Classes, Vcl.Controls, Winapi.W

2016-02-02 15:02:39 1579 4

原创 Delphi编译器属性(特别修饰符)

delphi中常量参数就像一个本地常量,或者说只读变量。常量参数与值参数类似,除了不能在过程或函数体内给常量参数赋值,并且不能将常量参数传给另一个var类型参数。(但是,如果你常量参数传递的是一个对象引用,你还是可以修改这个对象的属性的)使用const使得编译器能够为结构体和字符串类型的参数优化代码。而且它也提供了一种保护,防止无意中传递了一个参数引用到其他过程。常量参数可能以值方式或引用

2016-01-05 21:54:20 1677

原创 Firemonkey扩展增强:iOS 实现程序运行时更改锁定显示方向(LockOrientations)

1、为不同的form指定不同的支持方向。2、动态(运行时)强制更改显示方向。

2015-12-09 22:21:39 2765 1

原创 Firemonkey使用iOS的第三方静态库(Link Binary With Libraries)

最近需要从内存流中直接播放音频,想到了使用第三方音频播放库bass。在windows上可以很方便的使用相应动态库(具体参考万一的博客),但在iOS上却没有相应的使用介绍,准确的说是没有用于Firemonkey上的示例。在它官方论坛找到一个用于OSX的Demo,通过分析和测试,研究出了Firemonkey在iOS开发上使用第三方静态库的流程和方法。下面以在Delphi XE10上使用bass的静态库...

2015-12-05 14:24:14 9932 1

转载 TWebBrowser控件使用指定IE版本显示网页

好记性不如烂笔头,转自QQ群。procedure IEEmulator(VerCode: Integer);var RegObj: TRegistry;begin RegObj := TRegistry.Create; try RegObj.RootKey := HKEY_CURRENT_USER; RegObj.Access := KEY_ALL_ACCESS

2015-11-20 10:37:34 4706

原创 Firemonkey扩展增强:自定义Cursor

在VCL中很容易通过Screen.Cursors加载自定义cursor,但在FMX中,cursor是通过IFMXCursorService管理的,只支持系统默认的cursor。如果要加载自定义的cursor,我们需要替换平台默认实现的IFMXCursorService。Windows平台源码如下:unit uWinCursorService;interfaceuses FMX.Pl

2015-11-11 19:58:03 1661

转载 IOS开发之免费证书+不越狱真机调试

本文转自:http://www.cnblogs.com/weii/p/4688299.html苹果发布Xcode7后, 开放了普通的AppleID也能真机调试,非$99 或 $299, 只要能上AppStore下载应用的AppleID就行了。关于Mac系统及Xcode的安装如果不会请参照原文描述,这里只介绍利用Xcode7和普通AppID生成免费证书、Profile。文中测试环境是

2015-09-20 17:50:01 31608 1

原创 delphi android Toast

功能:Android Toast提示消息框

2014-11-23 20:05:09 4025

转载 Android SDK Manager国内更新代理

在Android SDK Manager Setting 窗口设置HTTP Proxy server和HTTP Proxy Port这个2个参数,分别设置为:HTTP Proxy server:mirrors.neusoft.edu.cnHTTP Proxy Por:80然后把下面的Force ..http://...sources to be fetched usin

2014-11-02 15:39:44 6322

原创 根据端口查找占用进程——API方法

使用API方式获取端口占用进程ID……

2014-10-25 22:42:57 8402

转载 保存网页为图片——滚动截取IE(WebBrowse)

对IE进行编程一直觉得是相当可怕的事情,里面的接口、函数、事件之多,解释之乱,需要了解的方方面面知识之博,让我仿佛看到了微软就是造物主,因为它已成功制造了这样的混沌,弄就了宇宙的初始状态……    近来做个项目,要截取网页,试了获取mht,开始倒是成功了,但不知装了什么软件后,就再也无法保存成mht了,查了一堆资料,修复了一轮,又可以部份保存成功,如此不稳定肯定不能应用,放弃!不得不赞的是,网

2014-10-02 16:12:38 5201

原创 将指定目录指定类型文件以指定分隔符组合文件名不换行输出到指定文件命令

for /f "delims=" %i in ('dir /b *.dcp')do (>>C:\Users\Administrator\Desktop\A.txt  set /p="%~ni;"<nul)

2014-09-25 13:37:28 1148

原创 ListView列宽自适应

使用TListView列表显示内容,如果列内容过长,就会显示成‘XXX…’形式,此时如果双击列标题,列宽将变为自适应。用代码设置如下:1、设置ListView.Column[0].Width := -1;//列宽根据列内容自适应,此时保证列内容都可见。2、设置ListView.Column[0].Width := -2;//列宽根据列标题自适应,此时保证列标题可见。

2013-04-01 21:00:51 13659 7

翻译 About Data Alignment(关于数据对齐)

原文:http://msdn.microsoft.com/zh-cn/library/ms253949.aspx翻译:http://www.52rd.com/Blog/Detail_RD.Blog_imjacob_10489.html              很多CPU,如基于Alpha, IA-64, MIPS, 和SuperH 体系的,拒绝读取未对齐数据。当一个程序要求其中之一的

2011-12-04 16:37:01 1061

原创 delphi与变长参数——可变类型开放数组(3)

上接delphi与变长参数——开放数组(2)。 可变类型的开放数组              现在回到文章开头提到的可变类型的开放数组,可变类型的开放数组允许向单个过程或函数传递不同类型表达式的数组。要定义含有变体开放数组参数的方法,需要指定“array of const”或“array of TVarRec”作为参数类型。【注1】//定义含有变体开放数组参数的方法proc

2011-12-01 12:58:47 3246

原创 delphi与变长参数——开放数组(2)

上接delphi与变长参数——开放数组(1)        当过程或函数使用数组参数时,不能在声明参数时包含索引说明符。也就是说,声明定义下面函数将产生编译错误。procedure Sort(A:array[1..10] of Integer);//语法错误       但使用下面这种方法是有效的。但在大多数情况下,开放数组参数是更好的办法。type TDigits=array

2011-11-30 22:06:02 3134

原创 delphi与变长参数——开放数组(1)

与C/C++不同,Delphi中是通过可变类型(TVarRec)的开放数组来指定变长参数的。其实这里已经不能称“变长参数”了,因为实际上只传递了一个参数,只是该参数是由多个基础类型数据构成的一个开放数组。Delphi使用开放数组来容纳不定数目的参数,使用可变类型(TVarRec)表示各种类型数据,因此二者的结合可以达到C/C++中变长参数的功能。       TVarRec是一个记录类型,该记

2011-11-30 15:48:29 8129

原创 C/C++要点全掌握(六)——变长参数

上接C/C++要点全掌握(五)——mutable、volatile  14、变长参数        设计一个参数个数可变、参数类型不定的函数是可能的,最常见的例子是printf函数、scanf函数和高级语言的Format函数。在C/C++中,为了通知编译器函数的参数个数和类型可变(即是不定的、未知的),就必须以三个点结束该函数的声明。// printf函数的声明

2011-11-28 15:25:10 11243

原创 FindChildControl与FindComponent

前两天编码遇到了要使用FindChildControl方法获取指定名称的TSpeedButton按钮,结果折腾了半天就是没得结果(基础不扎实,呵呵),于是赶紧搜索了下,补习关于这两个方法的用法。       TWinControl类的FindChildControl方法在FWinControls中查找返回指定名称的可视且有窗体的组件(继承自TWinControl类)。该方法可以确定当前控件是否

2011-11-11 16:31:44 10496

原创 C/C++要点全掌握(五)——mutable、volatile

上接C/C++要点全掌握(四)。  13、mutable和volatile       很少遇到这两个关键字,学嵌入式估计知道后者,深入研究C++的估计知道前者。       (1)mutable       在C++中,mutable是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中,甚至结构体变量或者类对象为

2011-10-31 11:02:46 20672 4

原创 C/C++要点全掌握(四)——宏

上接C/C++要点全掌握(三)。 12、宏定义三要点              以下三点一般都没被重视,至少我之前就不知道,但这三点是非常重要的,只有满足这三个要求的宏才是无误的,否则有可能出现与宏的原义相左的情况。这里将其单独作为一节,凸显其重要性,在以后的编程中要严格按照这个形式来定义宏。 (1)表达式中参数变元都用括号括起来;(2)将表达式根据运算优先将各个子表达

2011-10-29 22:17:50 2518

原创 C#格式化字符串中转义大括号“{}”

今天,用C#写程序操作Excel,读取单元格内容根据所需格式生成字符串,使用String.Format(string format,object arg0)方法。以前只知“{0}”为索引占位符(即格式项),与参数列表中的第一个对象相对应,格式设置过程将每个格式项替换为对应对象的值的文本表示形式。但这次需将参数对象格式成一对大括号括起来的格式,即返回字符串“{对象arg0的文本表示形式}”。//

2011-10-28 20:32:17 6195 1

原创 N个正整数联接成最小整数

题目描述:设有n个正整数,将它们联接成一排,组成一个最小的多位整数。例如:n=2时,2个整数32,321连接成的最小整数为:32132,n=4时,4个整数55,31,312, 33 联接成的最小整数为:312313355分析:其实这题就是将这些整数以字符串方式排序,整数的第一位越小,其越靠前;若第一位相同则同理比较第二位。依次类推,直至能确定其顺序。当其中一个数是另一个

2011-10-15 21:24:49 2319 1

原创 C/C++要点全掌握(三)——const

上接:C/C++要点全掌握(二)。 11、const辨析         const 是一个“左结合”的修饰符,一般与左侧类型标识符结合声明只读变量(常量);指针修饰符(*)是一个“右结合”修饰符,一般与右侧变量名结合声明指针(在定义指针时可将”*p”看作一个整体,前面类型即为*p内容的数据类型),其优先级高于const与类型修饰符。如果const与类型修饰符(如int)二者直接相

2011-10-13 15:11:15 2356

原创 C/C++要点全掌握(二)——堆栈、指针

上接C/C++要点全掌握(一) 9、堆栈       栈(stack):为程序保存的一块内存区域,用来保存状态数据,其访问顺序是后进先出(LIFO)。例如:过程或函数的地址,参数,有时候还包括局部变量。         堆(heap):为程序保存的一块内存区域,用来保存那些在运行时才知道其存在与大小的数据;程序能够从堆中分配内存给这些元素;在用完之后,应该释放掉这些内存。堆中所

2011-10-10 10:21:24 5526 1

原创 C/C++要点全掌握(一)——基础概念

最近参加了几个公司到学校的招聘会,笔试时大多要求使用C/C++语言,而且有些笔试考到了语言的细节部分。说来汗颜,C/C++只在大一学习时使用了一年,之后一直在学习高级语言的组件开发,到现在C/C++语言的有些细节,部分已经忘记。在此将C/C++的基础要点重拾一遍,以便往后忘记之时查阅。 1、局部变量存储于堆栈上,堆栈是一个动态可变的存储区,所以局部变量是在声明它们的块入口处创建,出口处销毁

2011-10-09 15:52:49 2348

FixJavaInitDemo

FMX调用JAR里的JAVA类Init方法, https://blog.csdn.net/tht2009/article/details/85062696

2019-02-11

TU2WebviewDemo.zip

Firemonkey扩展增强:Android 浏览器支持Input file标签上传功能,详细参见:http://blog.csdn.net/tht2009/article/details/76801223

2017-08-07

libKeychainHelper_iOS.a

http://blog.csdn.net/tht2009/article/details/50812203

2017-04-22

Firemonkey在Android平台上增强浏览器与JavaScript的交互

Firemonkey增强浏览器在Android平台上与JavaScript的交互 http://blog.csdn.net/tht2009/article/details/53996177

2017-01-06

添加了鼠标进入与离开事件的TEdit、TListBox控件

添加了鼠标进入MouseEnter 与离开MouseLeave 事件的TEdit、TListBox控件

2012-03-15

关闭自动关闭显示器功能

关闭"自动关闭显示器功能"实现源码,应一个不懂玩电脑的人写的,运行一次可将电源方案调到: 关闭显示器:从不

2011-05-31

数据库课程设计源代码

数据库课程设计源代码 图书管理系统 数据库 课程设计

2011-03-31

计算机程序大赛常见问题算法分析与源代码

计算机程序大赛常见问题算法分析与源代码:辗转相除法、分数小数相互转换、分治法、快速排序……

2010-12-28

模拟系统请求分页式存储管理

操作系统课程设计:模拟系统请求分页式存储管理,其中设计内存分配及地址映射算法,还有多线程协调更新主界面等内容……

2010-12-28

C#数字图象处理(DIP)

数字图象处理源代码,包括图像增强、图像变换等方面内容,且有还原撤销功能,其中效果与PS相仿

2010-12-02

汇编项目模板Setup

向vs2008扩展汇编功能,一键安装,目前只支持VS2008, 其他版本本质方法一样,只是我没集成到这个软件,所以如果是其他版本请参照http://user.qzone.qq.com/245806497/blog/1287665369 手工修改配置

2010-10-24

汇编模板库VS2008

利用VS强大的功能,结合汇编开发配置,构造一款功能强大的可视化汇编工具。http://user.qzone.qq.com/245806497/blog/1287665369

2010-10-21

VS2008汇编模板库函数

利用VS强大的功能,结合汇编开发配置,构造一款功能强大的可视化汇编工具。具体配置方法http://user.qzone.qq.com/245806497/blog/1287665369

2010-10-21

C# 记事本源码

C#源代码,比系统自带记事本功能更加强大,可以保存字体大小颜色信息,实现打印功能

2010-09-16

豆丁文档免费下载最新版

2010 年9月8日更新 绝对可下载 提示: 现在豆丁搜索你的文档地址粘贴到该软件即可自动下载

2010-09-08

黑桃J(c#)源代码 纸牌游戏

自己照学习包算法写的汉化版源代码 由于wav文件过大所以没上传,自己可随便添加在项目文件目录下Sound文件夹中

2010-08-22

最新电脑故障维修大全 , 是CHM格式的,便于查阅,绝对值得珍藏!

最新电脑维修手册 最新电脑故障维修大全 , 是CHM格式的,便于查阅,绝对值得珍藏!

2010-03-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除