- 博客(14)
- 收藏
- 关注
原创 C++11特性-<<深入理解C++11>>读书笔记
新增关键字alignasstruct alignas(32) ColorVector{ double r; double g; double b; double a;} //没有alignas关键字的话,对齐到8位,加上的话,对齐到32位,能提升效率。对齐的数据在读写上会有性能上的优势。比如频繁使用的数据如果与处理器的高速缓存器大小对齐,有可能提高缓存的性能。
2016-09-21 20:51:02 765
原创 delphi32位程序转换成64位程序攻略
如果你有一个32位的Delphi程序要升级成64位,可以参考下面的攻略进行升级。先升级成Unicode版本在IDE环境下打开你的32位工程,添加并激活64位的平台,并且编译你的工程为64位的。查找并处理如下的事项(指针的操作,NativeInt的大小,汇编的代码)指针的操作在你的代码里查找以下指针相关的操作:指针的大小改变了在32位的程序中, 指针是4bit,但
2016-05-19 14:30:46 11697 1
原创 Delphi GDI+基本用法总结
GDI+以前只是听说过,还没怎么用过,这段时间用了用,觉得挺好用的.在这里总结一下.留个备忘. GDI+(Graphics Device Interface plus)是Windows XP中的一个子系统,它主要负责在显示屏幕和打印设备输出有关信息,它是一组通过C++类实现的应用程序编程接口。由于它是图形绘制相关的接口,那先了解一下常用的几种图片格式.常见的图片格式常见的图片格式有JPEG,
2016-04-04 16:02:42 3647
原创 Qt刷新机制的一些总结
前段时间做过一个界面刷新的优化,遇到的坑比较多,在这里做一点点总结吧。 优化的方案是滚动滚动条的时候用截屏的方式代替界面全部刷新,优化完成后,界面在滚动时效率能提升大概一倍,背景介绍完毕。 用到最主要的是QT的截屏功能 window原生api会提供截屏滚动的功能。可以用这个ScrollWindowEx这个api。它会根据相应的参数在屏幕中进行滚动相应的区域
2016-02-04 11:09:31 15432
原创 适配者模式-Qt Model的转接
在Qt中,通过写model, 让TableView呈现不同的样式。有时候会遇到比较蛋疼的局面。之前写的一个Model很适合,但是不支树形显示。现在的需求就是要显示树形,其它的跟之前的一样。这种情况下,是重写一个呢,还是想想别的办法。 有两种思路可以考虑,一个是派生,一个是适配。派生的一个Model,并要显示树形的话,很难实现,毕竟要重写index, parent等方法。用适配的方式来实现
2014-12-30 21:37:37 932
原创 Qt 自定义model实现文件系统的文件名排序
前段时间,需要做一个功能是要做文件系统的排序的功能。由于是自己写的model, 自己定义的数据结构。最初的想法只有一个自己去实现文件夹跟文件名的排序算法,不过感觉比较费时间。后来想到的是QFileSystemModel就是Qt标准的文件系统的model,可以把里面关于排序的算法提出来。看了一下QFileSystemModel的源码,找到的排序算法如下(主要单元在qfilesystemmodel.c
2014-10-03 09:37:28 4762 1
原创 delphi中formatFloat代码初探
由于项目需要,需要在qt下实现floatformat的函数。之前写过一个,但是写得不好。决定重新写一个,参考delphi xe2下的实现。把xe2下的相关代码都看了一遍,xe2的代码思路在这里贴出来。xe2下的代码在system.sysutils下,核心函数是InternalFloatToTextFmt。它有汇编的版本跟纯pacal的版本。汇编看不懂,参考的是纯pacal的版本。整体流程是:
2014-05-10 10:29:30 3454
原创 迭代器模式
定义:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。体会:迭代器在STL里面用到很多,vector, list都有迭代器,用的时候,我并不关心里面是怎么实现的,我只是循环地读取里面的值就可以了。实现:
2014-05-06 22:39:22 578
原创 单例模式
定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。体会:用静态成员来实现,因为那个是全局的,如果为空则创建,不为空则返回当前的对象。为了避免出现创建多个对象,所以会把构造函数声明成私有的。总结起来就是三点:1:提供私有的构造函数。2:类的定义中有一个静态私有对象。3:该类提供一个静态的共有函数用于创建或获取它本身的静态私有对象。实现:h文件: class CSinglet
2014-04-22 22:47:09 593
原创 观察者模式
定义:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都可以得到通知并自动更新。 体会:说白了就是一个对象发生变化的时候去通知相关的对象。比如:一个典型的客户端,数据库+界面。当数据库数据变化时,界面肯定也需要进行刷新。如何来通知界面进行刷新呢?这时候就可以考虑采用观察者模式。当然这用别的方法也能办到,在QT里就可以通过发信号来发送通知。实现如下:
2014-03-02 22:22:48 682
原创 DISQLite的一些优化心得
这段时间正在做的项目是DISQLite的数据读写,基本的逻辑都写完了,但是性能方面不行。查了好几天资料,看帮助文档,得到了一些性能优化的心得,给大家分享一下:先说写的部分: 1:写数据的时候手动开启事务 FDataBase.StartTransaction(); try //do something FDataBase.Commit; except
2013-03-18 21:29:15 1927
原创 DISQLite基本用法
SQLite数据库是一款轻量级数据库,而DISQLite则是针对于delphi的自管理,嵌入式和零配置的基于SQLite的SQL数据库引擎,它的特点及相关说明在http://www.yunqa.de/delphi/doku.php/products/sqlite3/index。 它的用法有三层:The Native Api, The Object Layer, The DataSet Lay
2013-03-07 22:17:03 4480 7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人