加载中…
个人资料
红鱼儿
红鱼儿
  • 博客等级:
  • 博客积分:0
  • 博客访问:817,995
  • 关注人气:205
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
评论
加载中…
留言
加载中…
访客
加载中…
好友
加载中…
博文
标签:

转载

分类: Delphi

http://52delphi.com/list.asp?ID=1341

 

TValue大概是新RTTI最重要最抽象的类!说他复杂,因为他是新版的万能变体类型,但比 Variant类型多带了RTTI类型信息。
在执行方法中,遇到复杂的参数类型(比如 record )必须带上RTTI类型信息。
例子如下:
type
  TMsgInfo =  record
    MsgInfo:string;
    MsgID:Integ

阅读  ┆ 评论  ┆ 转载原文 ┆ 收藏 
分类: Delphi10.2
在Delphi FireMonkey中,用LiveBindings去计算字段的值,可以代替编写一堆代码来做同样的任务。

LiveBindings使用它的CustomFormat属性,可以非常容易的将字段合计到一起。LiveBindings利用CustomFormat属性支持各种操作,更多的信息可以在Embarcadero DocWiki中查看。

下面,我要做一个演示程序,演示如何计算三个字段的合计,并将结果输出到第四个字段。

您应该可以在Android,IOS,OSX和Windows上运行这个演示程序。该演示使用了TMS FMX UI的组件,但是如果您在自己的应用程序中实现了这些想法,则使用的组件不是必需的。该项目中有一个TFDMemTable,其中有4个字段称分别为FieldEdit1,FieldEdit2,FieldEdit3和FieldEdit4,四个字段使用LiveBindings绑定到4个Edit控件,称为Edit1,Edit2,Edit3和Edit4。您还可以使用功能更齐全的TTMSFMXLiveGrid组件,查看TFDMemTable的内容。在任意Edit1,Edit2和Edit3控件中输入数值,程序都会将这3个值相加,并在Edit4控件中显示出来。您可以看到,当您在Edit1,Edit2和Edit3中输入值时,可以控制该值在TFDMemTable中自动更新。最后,
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

delphi

分类: Delphi
Delphi 下的FireMonkey,很好地实现了 DirectUI与跨平台。学习了解他,对DirectUI编程及项目的跨平台实现有一定帮助。
虽然作为开发者个体,并不需要了解太多这些东西,只要求拿来能用能实现功能就行,但对 FireMonkey的学习分析,对自己程序设计思想的提升,会有一定帮助。
昨天用FireMonkey控件写了一个小例子,发现他的 Animation类在实现控件的小动画时,很高效,很灵活。
初步印象是 FireMonkey的内核有很多值得学习的地方,尤其他的界面渲染上,可以深入了解。鉴于都有代码,了解只是时间上的问题。
今天才开始认真地看了下 FireMonkey的代码。跟踪查看了他的程序启动的各个步骤。先初略整理一下。在了解框架之后,再逐步深入了解其他各方面。
FireMonkey跨平台实现:
FM为了考虑跨平台,使用了很多服务接口类,来转嫁各种服务任务处理。
应用程序管理接口 IFMXApplicationService
系统字体接口 IFMXSystemFontService
窗体创建接口 IFMXWindowService
系统菜单接口 IFMXMenuService
计时器接口 IFMXTimerService
鼠标拖曳
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

delphi

分类: Delphi
手机打印方案的一个实现思路,原文在这里,向作者致敬!
这是作者分析出来的Java代码:

    String epsonPrintApkPackageName = 'epson.print';  
    Intent intent = new Intent();  
    intent.setAction('android.intent.action.SEND');  
    intent.setPackage(epsonPrintApkPackageName);  
    intent.setClassName(epsonPrintApkPackageName,'epson.print.ActivityDocsPrintPreview');  
              
    Uri uri = Uri.fromFile(new File(path));  
    intent.putExtra('android.intent.extra.STREAM', uri);  
    intent.setType('application/pdf');  
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
 
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: Delphi
问题:弄的手机版网页,图片太宽 挤到屏幕边上了,怎么能让它根据手机屏幕大小自适应呢?

答案:
图片的宽度设置为百分比,不要设置高度,这样图片就会按照设置的百分比自动缩放了。
<img src='图片地址' width='100%' alt='图片描述' />
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

kbmmw

delphi

分类: kbmMW
基于'REST easy with kbmMW#1'博文,我将展示一种与数据库进行交互的方法。

kbmMW支持多种方式来访问数据库,不管如何复杂,性能绝对最快,也更易于使用,性能非常好。

更好的是,你可以根据场景选择要使用的方式。在99.99%的情况下,可能都用最为方便的方式。在极少数情况下,你才真的需要从硬件中获得最高的性能,可能希望使用较少抽象的路由,完全由kbmMW来支持。

但是,大道至简,简单才是首选方式,这是我现在将要展示的:

我们以前的REST演示仅仅用几种方式来显示Hello world。

现在,创建一个通讯录管理的REST服务器将会更有趣,因为它更像REST服务器的典型案例。

首先是让服务器联接数据库,我们通过打开主窗体(上篇博客中的Unit7),并添加以下每个组件:

  • TkbmSQLiteConnectionPool
  • TkbmMWSQLMetaData
这样做,你的Form看起来就像这样:
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: kbmMW
kbmMW 5.0非常容易实现REST服务器。

首先我们制作一个服务器应用程序(或服务,这取决于你),在这种情况下,我们将增加一个简单的Form,来放置的kbmMW组件。

在Delphi中单击File - New - VCL Forms Application

然后将以下kbmMW组件添加到Form中:

  • TkbmMWServer
  • TkbmMWTCPIPIndyServerTransport


将kbmMWTCPIPIndyServerTransport1的Server属性设置为kbmMWServer1。

双击kbmMWTCPIPIndyServerTransport1的Bindings属性打开其编辑器,添加0.0.0.0及绑定80端口,这是默认的HTTP服务器端口。您可以选择所需的任何其他端口来绑定,但请确保告知您的REST用户要访问的端口。

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
今天debug下编译android项目,出这个错误。官网论坛找到这个解决办法,但没看懂。
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

delphi

kbmmw

分类: Delphi
盒子中的souledge大侠发布了新的Socket库,以下为原文:

我之前写过一个iocp的框架,放到googlecode上了。

由于当时的delphi版本尚无法跨平台,所以该框架只能运行在Windows下。

现在Delphi的跨平台编译器基本已经成熟了,主流的操作系统基本都已支持,这是一个很好的契机,于是催生了我新的通讯框架的诞生,这个新的通讯框架就是Delphi Cross Socket。

期间有很多朋友通过QQ或邮箱联系过我,希望我尽快发布新的框架源码,不过工作一直很忙,我也只能用闲暇时间整理,直到今天终于整理出了一份初稿,放到github上了。

希望能帮助到需要的人,也希望Delphi越来越好!

https://github.com/winddriver/Delphi-Cross-Socket

Delphi 跨平台 Socket 通讯库

作者: WiNDDRiVER(soulawing@gmail.com)

特性

针对不同平台使用不同的IO模型:

IOCP
Windows

KQUEUE
FreeBSD(MacOSX, iOS...)
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有