自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(165)
  • 资源 (1)
  • 收藏
  • 关注

原创 别让我思考 读书笔记

在我还在上大学的时候,我就在学校的图书馆翻阅过这本书,并且很喜欢事隔几年,随着工作内容渐渐从代码越来越关注到交互、设计、可用性、用户体验我对这本书便有了更新的认识。1. WEB 可用性的三大定律,    第一定律:“别让我思考”,即如果你不能做到上一个页面不言而喻,那么至少应该让定自我解释。    第二定律:点击多少次都没关系,只要每次点击都是无须思考,明确无误的选择。(三次无

2013-05-08 10:12:19 944

转载 android 背景渐变色(shape,gradient)

设置背景色可以通过在res/drawable里定义一个xml,如下:http://schemas.android.com/apk/res/android">  android:startColor="#FFF"  android:endColor="#000"  android:angle="45"/>shape是用来定义形状的,gradient定义该形状里面为

2012-06-05 13:50:21 2567

原创 android 一些路径的标准写法

一些路径的标准写法 Environment.getDataDirectory() = /data Environment.getDownloadCacheDirectory() = /cache Environment.getExternalStorageDirectory() = /mnt/sdcard Environment.getRootDirectory() = /syst

2012-05-19 17:09:09 1848

原创 android拍照开发 关于拖拉条控制变焦

一般的SEEKBAR + ZOOM 去变焦是有问题的,因为如果SEEKBAR 控制ZOOM VALUE变化较快,他会抛弃掉一些VALUE,所以需要通过ZOOM 回调信息去判断是否为SEEKBAR 的最终值 顺便求解一个问题现在拍照软件普遍存在对焦AUTOFOCUS之后不能变焦,调用变焦就会失效,求解

2012-03-28 15:02:12 969

转载 android之drawable属性

android控件TextView可以设置四周显示一个图片(drawable); 最简单的方法就是在XML里设置属性drawableLeft; 但有时需求是要动态更换图片,可以参考下面的方法: .setCompoundDrawables(left, top, right, bottom);(注:设进去的Drawable记得SETBROUNDS) 转:http

2012-02-14 14:27:15 4570

原创 2012最新ANDROID框架源码下载方法

a)         在WINDOWS下比较不好,最好是在linux下(我试过Windows下GIT没有64位的支持,用TortoiseGit连接不上服务器,但有人实现成功的)b)        安装虚拟机,安装ubuntu(必须8.04以上)c)         配置安装下载环境http://source.android.com/source/initializing.html

2012-01-06 14:39:40 1918

转载 listview加载性能优化

在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候,会占据大量内存,影响性能,这时候就需要按需填充并重新使用view来减少对象的创建。ListView加载数据都是在public View getView(int position, View con

2011-12-21 13:56:02 688

转载 button和imagebutton控件的区别

ImageButton控件和Button控件基本相似,只是通过图像来表现外观,和Button控件的Click事件不同,ImageButton控件的Click事件是配合System.Web.UI.ImageClickEventHandler委托工作的。即ImageButton控件的Click事件处理方法中使用的事件参数类型为System.Web.UI.ImageClickEventArgs,两个参数

2011-12-13 15:14:18 2480 1

转载 SharedPreferences 的用法

SharedPreferences存储类效率分析SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长整形、Int整形、String字符串型的保存,它是什么样的处理方式

2011-12-12 15:30:20 740

转载 setContentView和inflate区别

一般用LayoutInflater做一件事:inflateinflate这个方法总共有四种形式(见下面),目的都是把xml表述的layout转化为View对象。其中有一个比较常用,View inflate(int resource, ViewGroup root),另三个,其实目的和这个差不多。int resource,也就是resource/layout文件在R文件中对应的I

2011-12-12 10:53:28 732

转载 Android Menu理解与响应

理解Android的菜单 菜单是许多应用程序不可或缺的一部分,Android中更是如此,所有搭载Android系统的手机甚至都要有一个”Menu”键,由此可见菜单在Android程序中的特殊性。Android SDK提供的菜单有如下几种:选项菜单:最常规的菜单,android中把它叫做option menu子菜单:android中点击子菜单将弹出悬浮窗口显示子菜单项。子菜单不支持嵌套,

2011-11-22 21:05:19 1193

转载 android menu.add()的使用说明

任何一款软件都少不了对“菜单”的使用。在Android下,每一个activity都捆绑了一个Menu,要想定义和使用菜单,都必须在Activity下进行操作,复写onCreateOptionsMenu 和 onOptionsItemSelected这两个方法。举例如下:@Overridepublic boolean onCreateOptionsMenu(Menu menu){//条用

2011-11-22 19:03:44 1646

原创 r cannot be resolved to a variable 问题解决 / r.java文件没有自动生成

r cannot be resolved to a variable 问题解决 / r.java文件没有自动生成 很多人碰到创建新工程的时候出现 cannot be resolved to a variable的问题时没法在第一时间得到最好的解决其根本原因是r.java文件没有自动生成 关于一般的解决方案在网上很多人提出来了比如CLEAN工程,CLEAN UP RESOURCE

2011-11-20 23:36:53 65206 16

原创 同组合并成列问题

同组合并成列问题 同学问了我将数据库的表同组合并成列的问题,我第一反映是建一个二维数组,两个HASH表分别对应行和列,逐行读取累加,但后来说是要在SQL里直接完成返回结果集,SQL是我最弱的,于是趁此问题也好好地学习了一下,使用方法较水,希望可以得到指点。 一

2011-07-04 14:36:05 1303

原创 关于NextGrid控件和cxTreeList控件中的子节点问题(未完待续)

<br />关于NextGrid控件和cxTreeList控件中的子节点问题<br />本文来自http://blog.csdn.net/jqandjq,引用必须注明出处<br />本文章主要讨论NextSuit控件套件中的NextGrid控件和Express控件套件中的cxTreeList控件中关于子节点使用的不同点,以及转换方式,并着重于NextGrid到cxTreeList控件的转换。<br />NextGrid和cxTreeList对于子节点的管理方式是有很大的不同的,NextGrid作为一个GRI

2011-03-28 14:37:00 3229 2

原创 关于DELPHI的四舍五入

<br />首先,这是弱贴<br />在一群里看到在讨论四舍五入的实现<br />因为DELPHI里的一般默认的舍入方式都是用银行家舍入法<br />也就是“四舍六入五成双”的做法,但是这样的做法往往不太适合中国人的习惯<br />于是居然开始有人用判断语句写函数实现,加入很多判断<br />甚至有人用上了字符串处理实现,还被奉为牛B一般<br />其实一般正数的四舍五入到整数可以用 + 0.5取整实现<br />trunc(x+0.5) <br />对于保留小数位的情况,或可以借用 *X 再除 X<br

2010-11-29 17:17:00 1000

原创 进程列举操作

进程列举操作1.   进程的概念进程是操作系统结构的基础;是一个正在执行的程序;计算机中正在运行的程序实例;可以分配给处理器并由处理器执行的一个实体;由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元。对应用程序来说,进程就像一个大容器。在应用程序被运行后,就相当于将应用程序装进容器里了,你可以往容器里加其他东西(如:应用程序在运行时所需的变量数据、需要引用的DLL文件等),当应用程序被运行两次时,容器里的东西并不会被倒掉,系统会找一个新的进程容器来容纳它。进程是由进程控制块、程序段

2010-11-23 17:11:00 869 4

转载 Delphi WinExec ShellExec 用法介绍(转)

在Windows程序设计中WinAPI也为我们提供了类似的函数,它们就是WinExec()和ShellExecute(),下面就来讨论一下这两个函数的用法。 <br /><br />1)WinExec() 函数原型:<br /><br />UINT WinExec(LPCSTR lpCmdLine,UINT uCmdShow); <br /><br />参数说明:(激活的意思是能接受焦点,即标题栏变成蓝色) <br /><br />lpCmdLine:以0结尾的字符串,命令行参数。<br /><br />u

2010-11-22 09:17:00 1828

原创 关于鼠标钩子使用入门

<br />关于鼠标钩子使用入门1.     MOUSEHOOKSTRUCT 鼠标钩子结构体<br />  当WH_MOUSE钩子处理的鼠标事件时,该结构包含鼠标信息。<br />typedef struct { <br />POINT pt; <br />HWND hwnd; <br />UINT wHitTestCode; <br />ULONG_PTR dwExtraInfo; <br />} MOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT; <br />参数:<br />pt

2010-11-21 22:52:00 1614

原创 1亿个int数从小到大排序列出第1万到第10万个数

1亿个int数从小到大排序列出第1万到第10万个数 这是某天师弟提出的一个面试题,本来还算是比较简单的,但是太久脱离算法,让我顿时没有一个更好的解决方案,于是被人用桶排序直接鄙视了一下。当时因为没提出一个很好的解决方案,还是落败了,只能说桶排序的效率还是满高的。但是我深知,这题肯定不能就这么排序解决。后来由于工作的原因,也把这事给淡忘了。今天无意翻起当时的草稿,遂想起应该用分段的做法。当时也有某师兄提过,但是他没有描述过程,于是被人遗忘。 先分析这题的做法如果用桶排序的方

2010-11-17 15:58:00 1700 1

原创 关于钩子的使用入门

关于钩子的使用入门1.     钩子概念钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该

2010-11-04 14:36:00 1138

原创 关于Windows消息的发送和接收入门

关于Windows消息的发送和接收入门  1.     发送消息 PostMessage 函数功能:该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回,是异步消息模式。 消息队列里的消息通过调用GetMessage和PeekMessage取得。 函数原型: B00L PostMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);

2010-10-31 13:21:00 2229

原创 DELPHI使用键盘钩子

<br />小读了一下《Delphi下深入Windows核心编程》感觉里面的东西写得还算可以,至少有学到东西<br />于是整理了一下书中的代码,并加上注注释发上来<br /> <br />首先是最重要的键盘钩子使用的DLL:<br />unit UnitDll;interfaceuses Windows;const BUFFER_SIZE = 16 * 1024; // 文件映射到内存的大小const HOOK_MEM_FILENAME = 'MEM_FILE'; // 映像文

2010-10-25 16:13:00 2979 1

转载 钩子类型

<br />每一种类型的Hook可以使应用程序能够监视不同类型的系统消息处理机制。下面描述所有可以利用的Hook类型。 <br />  1、WH_CALLWNDPROC和WH_CALLWNDPROCRET Hooks <br />  WH_CALLWNDPROC和WH_CALLWNDPROCRET Hooks使你可以监视发送到窗口过程的消息。系统在消息发送到接收窗口过程之前调用WH_CALLWNDPROC Hook子程,并且在窗口过程处理完消息之后调用WH_CALLWNDPROCRET Hook子程。 <b

2010-10-25 15:45:00 865

原创 使用dumpbin命令查看DLL导出函数列表

<br />命令的使用在DOS模式下 输入dumpbin -exports DLL文件名 如下<br /><br />C:/Documents and Settings/Administrator>dumpbin -exports "C:/Documents and Setti<br />ngs/Administrator/桌面/BaseDB.dll"<br />之后屏幕即显示:<br /><br />Microsoft (R) COFF Binary File Dumper Version 6.00.81

2010-10-22 14:48:00 11332 1

原创 关于文件路径的那些事

文件操作里,第一步就是文件路径的或获取很多人不在意使用系统自带的“过滤装置”自己写了文件的过滤函数一方面减慢了开发的流程,另一方面加大了出现BUG的可能性首先我们最最常用的就是要知道我们现在所开发的程序的相关文件路径信息这个一般用:ParamStr函数我们看一下帮助文档发现ParamStr的作用是:Returns a specified parameter from the command-line.(在命令行里获得规定的函数)声明:Delphi syntax:function ParamStr(Index

2010-10-20 10:51:00 951

原创 mvc2模式

<br />MVC2模式首见于网络程序,起初因为Model无法通知到Web程序的界面而发明,这种模式采用Controller做中介者,一方面取得View的输入,然后交由Model层处理,之后再把返回的数据传递到View。 <br />  View接受用户输入,并传递到Controller. <br />  Controller统一进行处理命令,交由Model处理具体的业务. <br />  进过处理Model更新后,Controller会选一个View并把Model内容传递(request,session)

2010-10-19 11:29:00 1173

原创 DELPHI 获取版本号、格式化版本信息、比较版本号等相关操作

<br />// 获取版本号function GetFileVersion(FileName: string): string;type PVerInfo = ^TVS_FIXEDFILEINFO; TVS_FIXEDFILEINFO = record dwSignature: longint; dwStrucVersion: longint; dwFileVersionMS: longint; dwFileVersionLS: longint;

2010-09-27 14:41:00 4854 1

转载 delphi多线程访问公共变量

一、用TCriticalSection类来阻塞。(ps:这里的咚咚都涉及Win32编程,我对这些不了解,先掌握如何运用吧。)这个有点类似临界区。要Uses SyncObjs单元。1、声明一个全局的TCriticalSection类的实例。2、建立TCriticalSection.Create,最好是在程序onCreate里面,这样才能保证对所有线程进行控制。3、在全局变量访问前用TCriticalSection.Acquire或TCriticalSection.Enter来阻塞。4、访问完毕,用TCriti

2010-09-17 15:00:00 2254 1

转载 delphi三层构架思想

<br /><br />三层架构指的是界面,业务逻辑和数据存储分离,不是指物理上是否分离。<br />这样做的好处是层次分明,维护好做,系统资源也好分布式处理。<br />数据库层哪就不说了,用MSSQL、Orcale随你了,就是数据服务层<br />业务逻辑的话要分析清楚,就是中间层<br />界面,也叫客户端。这里就是得到数据和显示数据的部分了,不做其它处理。但是数据有效性分析最好放在界面层,以充分利用客户端的性能。不然的话业务逻辑层的负担太大也会形成瓶劲。<br />数据库的建立不说了。<br />三

2010-09-15 14:27:00 739

原创 DELPHI头文件顺序

<br />DELPHI 头文件的加载貌似是覆盖式的<br />比如一个函数在文件里有:<br /> <br />Unit: SysUtils<br />Delphi syntax:<br />procedure FindClose(var F: TSearchRec);<br /> <br /> <br />在另一个文件里也有<br />WINDOWS<br /> <br />BOOL FindClose(<br /> HANDLE hFindFile // file search handle <br

2010-09-08 09:30:00 943

原创 [Warning] Method 'Destroy' hides virtual method of base type 'TObject' 解决方法

<br />[Warning] uDataModel.pas(32): Method 'Destroy' hides virtual method of base type 'TObject'<br /> <br />是因为确保在多态的情况下对象能正确被析构<br />如果不加override关键字,编译器会给出类似"Method Destroy hides virtual method of base type TObject"的警告提示。<br />警告的意思是你定义的Destroy隐藏了基类的虚方法T

2010-07-22 21:09:00 3539

转载 Delphi设计模式之单例模式(Singleton Pattern)

<br /> Singleton Pattern模式的设计意图是:保证一个类仅有一个实例,并提供一个访问他的全局访问点。 <br />有人已经实现了这个模式,详见代码如下: <br />interfaceuses classes,SysUtils; type  TSingletonList = class(TList);   TSingletonl = class  public    constructor Create;virtual;    destructor Destroy; override; 

2010-07-08 14:56:00 1170 1

转载 Delphi单例模式(singleton)

Delphi深度探索-单例模式(singleton)作者陈省(hubdog)所谓单例就是系统中只能存在某个类的一个实例,在现实中只能存在一个实例的对象是很常见的,比如系统配置对象只能有一个,比如一个客户端同服务器的TCP/IP连接经常只允许有一个连接等等。下面是一个单例模式的UML图:单例模式的实现那么如何保证在系统中每时每刻只有一个类的实例存在呢,这可以通过静态变量来实现,在调用GetInstance时判断静态变量是否为nil,如果为nil表示系统中没有类的实例,则构造对象,同时将类实例赋值给静态变量,如

2010-07-08 10:40:00 1833 2

转载 TThreadList 的用法入门

初次使用TThreadList时找不到.Count属性,也找不到.Items属性,没有这两个属性就不能访问列表中的内容,这可怎么用呢,后来发现了LockList方法,这个方法返回一个TList,哦,原来是首先通过LockList安全的得到一个TList然后使用TList返回列表中的内同,当然最后不要忘了调用UnLock函数。例子:with MyThreadList.LockList dobegin try for X := 0 to Count-1 do Som

2010-06-09 17:42:00 1026

转载 delphi多线程

<br />Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就完了。然而这并不是多线程编程的全部,我写此文的目的在于对此作一个补充。<br />    线程本质上是进程中一段并发运行的代码。一个进程至少有一个线程,即所谓的主线程。同时还可以有多个子线程。当一个进程中用到超过一个线程时,就是所谓的“多线程”。<br />    那么这个所谓的“

2010-06-01 10:59:00 3785 2

转载 delphi中Synchronize

<br />delphi中Synchronize这个东东有什么用?我知道是线程同步使用的<br />是否是一个函数或变量,当一个线程在使用时,如果这个函数使用了Synchronize修钸的话就不允许别一个线程来调用这个函数 <br /> <br />1楼:别的线程会等待该操作完成后才能继续 <br />2楼:你说的基本是这个意思。它的目的是避免多个子线程同时访问主线程资源。 <br />示例: <br />procedure ServerThread.ListItemEnd; //子线程的一个方法 <br

2010-06-01 10:49:00 7508

原创 inherited

<br /> <br />The reserved word inherited plays a special role in implementing polymorphic behavior. It can occur in method definitions, with or without an identifier after it.<br />If inherited is followed by the name of a member, it represents a normal me

2010-05-31 17:14:00 856

转载 用Delphi制作DLL

一 Dll的制作一般步骤 二 参数传递 三 DLL的初始化和退出清理[如果需要初始化和退出清理] 四 全局变量的使用 五 调用静态载入 六 调用动态载入 七 在DLL建立一个TForM 八 在DLL中建立一个TMDIChildForM 九 示例: 十 Delphi制作的Dll与其他语言的混合编程中常遇问题: 十一 相关资料 一 Dll的制作一般分为以下几步: 1 在一个DLL工程里写一个过程或函数

2010-05-28 17:23:00 562

转载 delphi中register, pascal, cdecl, stdcall, safecall

注: 使用错误,或者在该加的地方没有加,可能会出现"privileged instruction"错误,或者地址访问错误。常见的调用惯例有register, pascal, cdecl, stdcall, safecall。函数的调用管理决定了参数如何传递给子过程,并从堆栈中退出,以及寄存器在参数传递中的使用,错误和异常的处理。Delphi中默认的调用惯例是register。1) regist

2010-05-28 17:18:00 2016

Object Pascal 使用手册.pdf

Object Pascal 使用手册.pdf

2010-01-20

空空如也

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

TA关注的人

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