4月 122013
 

1. 今天check out项目的时候,svn突然报了一个如下错误:

在网上查了一上解决办法为:

在地址和项目名称之间加上svn,本例中为如下:http://127.0.0.1/svn/financing,再进行check out就没问题了

SVN客户端:TortoiseSVN 1.7.11, Build 23600 – 64 Bit, Subversion 1.7.8

SVN服务端:VisualSVN Server Manager Version: 2.5.9

3月 122013
 

 

1月 172013
 

注意:
1. 使用WM_SYSCOMMAND时,鼠标的一些消息可能会受到影响,比如不能响应MouseUp事件,可以在窗口中捕获WM_SYSCOMMAND消息,并判断消息的CommandType来判断消息执行完毕的情况

SC_CLOSE 关闭窗口
SC_HOTKEY Activate the window associated with the application-specified hot key.
SC_HSCROLL Scroll horizontally.
SC_KEYMENU Retrieve a menu through a keystroke.
SC_MAXIMIZE 最大化窗口
SC_MINIMIZE 最小化窗口.
SC_MOUSEMENU Retrieve a menu through a mouse click.
SC_MOVE Move the window.
SC_NEXTWINDOW Move to the next window.
SC_PREVWINDOW Move to the previous window.
SC_RESTORE Save the previous coordinates (checkpoint).
SC_SCREENSAVE 激活屏幕保护程序.
SC_SIZE Size the window.
SC_TASKLIST 激活开始菜单.
SC_VSCROLL Scroll vertically.
SC_MONITORPOWER 关闭显示器(LPARAM为非0参数)
SC_SEPARATOR
SC_CONTEXTHELP 显示帮助
SC_DEFAULT

SC_SIZE = $F000
SC_MOVE = $F010
SC_MINIMIZE = $F020
SC_MAXIMIZE = $F030
SC_NEXTWINDOW = $F040
SC_PREVWINDOW = $F050
SC_CLOSE = $F060
SC_VSCROLL = $F070
SC_HSCROLL = $F080
SC_MOUSEMENU = $F090
SC_KEYMENU = $F100
SC_ARRANGE = $F110
SC_RESTORE = $F120
SC_TASKLIST = $F130
SC_SCREENSAVE = $F140
SC_HOTKEY = $F150
SC_DEFAULT = $F160
SC_MONITORPOWER = $F170
SC_CONTEXTHELP = $F180
SC_SEPARATOR = $F00F
有的时候我们看到一些这里没有的命令,比如用鼠标拖动控件时用的panel1.Perform(WM_SYSCOMMAND, $F012, 0);这个$F012这个命令在定义里没有,其实它是SC_MOVE or 2的结果,微软的文档中提到WM_SYSCOMMAND命令中wParam的值的低4位值是保留的。
举例说明:
在Form的MouseDown事件里写如下代码
ReleaseCapture;
Perform(WM_SYSCOMMAND, SC_SIZE OR 1, 0); // Left
Perform(WM_SYSCOMMAND, SC_SIZE OR 2, 0); // Right
Perform(WM_SYSCOMMAND, SC_SIZE OR 3, 0); // Top
Perform(WM_SYSCOMMAND, SC_SIZE OR 4, 0); // left-top
Perform(WM_SYSCOMMAND, SC_SIZE OR 5, 0); // Right-top
Perform(WM_SYSCOMMAND, SC_SIZE OR 6, 0); // bottom
Perform(WM_SYSCOMMAND, SC_SIZE OR 7, 0); // left-bottom
Perform(WM_SYSCOMMAND, SC_SIZE OR 8, 0); // right-bottom

Listview实现移动功能

 分类:Other 阅读 (2,067)  No Responses »
1月 122013
 

在Delphi的ListView中实现向上移动或者向下移动某行的功能,代码如下:

 

XML的NodeName的特殊值

 分类:Other 阅读 (2,396)  1 Response »
12月 242012
 

今天写一个用Java读取XML文件的代码的时候,突然在for循环里发现NodeName=#text的情况,翻来覆去的看XML并没有发现有NodeName为#text的节点。GG了一下才发现原来XML的NodeName并不只是按“<”右边的节点名来定义的,在W3C的文档中还定义了一些特殊的NodeName。

下面先看一下W3C文档中对NodeName的定义

Interface nodeName
Element The tag name, eg. HTML
Attr The attribute name, eg. id
Text #text
CDATASection #cdata-section
EntityReference The name of the entity reference, eg. amp
Entity The entity name, eg. &
ProcessingInstruction The target of the processing instruction, eg.xml-stylesheet
Comment #comment
Document #document
DocumentType The name of the document type, eg. html
DocumentFragment #document-fragment
Notation The notation name

本人今天使用的XML如下:

在两个<User..>的前面各有一个#text类型的Node,乍一看什么都没有啊?其实<UserList>和下行的<User…>之间是有一堆的空格的,于是这堆空格就被当成了#text类型。将XML改成如下样子后就没有那两个#text类型的Node了

现在也明白为什么有的地方会用如下的判断节点类型的代码了

 

 

 

 Posted by on 2012-12-24

Eclipse快捷键大全

 分类:Other 阅读 (2,038)  No Responses »
12月 192012
 

调试

F11 开始调试
Ctrl+F11 开始执行程序
Ctrl+Shift+B  创建/取消断点
F5  步进调试,如遇子函数进入子函数中调试
F6  步进调试,不进入子函数调试
F7  跳出本函数并定位到调用本函数的地方
F8  运行程序
Ctrl+F2  结束调试

编辑器

Ctrl+Shift+O 管理Import部分,将代码中需要引入但还没引入的单元添加到import头
Ctrl+D 删除本行代码
Ctrl+M 最大化面板窗口
F3 跳转代码到光标所在类的定义处
Alt+左方向键 回到上一次按F3的地方
Ctrl+Shift+1 添加书签(本人自定义)
Alt+Shift+S 打开Source菜单

12月 102012
 

因为在Delphi 2009及更高的版本中,已增加对Unicode的支持,所以当在此版本中调用Windows Api的时候调用的都是Unicode版本的Api,比如:调用CreateProcess时实际是调用的CreateProcessW,在之前的版本则是调用的是CreateProcessA。

同样地,如果声明的是string类型,则此变量也是Unicode类型的字符串变量,使用此种类型的变量作为参数是没有问题,但是如果把变量强制声明成了AnsiString再作为参数传入的话则会出现问题了。

以CreateFile函数为例,第一个参数为lpFileName,为要打开的文件路径,如果传入的是String类型的变量,则可以执行成功,如果传入的是AnsiString类型的变量则会失败,用GetLastError会得到文件未找到的错误ERROR_FILE_NOT_FOUND (2)。

10月 312012
 

原来用Delphi处理XML文件就感觉头疼,不知道该用哪种方法比较好,现在将方法总结如下:

本文中演示用到的XML文件

1. 使用msxml

msxml实际上是Delphi导入的Windows的msxml2.dll,所以最终是使用的windows的方法去解析的xml文件。在PHP中对XML的解析也是用的MSXML,与Delphi的各函数都非常的类似。使用时需要在uses中加入mshtml。读取XML文件的代码

写XML文件的代码

用此方法生成的XML文件没有被格式化,即不是一个NODE一行,如果需要格式化输入,需要使用SaxWriter输出到文件。
另外还有一些其他比较有意思的方法,如:cloneNode,以后应该能用得到。

2. 使用TXmlDocument读写XML

读取XML文件

写XML文件

注意事项:

10月 292012
 

Cookie是网站存在用户本地的一些变量,用于保存一些数据以识别用户的身份或者记录用户偏好设置等。
使用smartsniff等网络截包工具查看,当执行请求时实际上是在http请求数据里加入了cookie: key1=value1; key2=value2 …这样的值,返回数据时是类似set-cookie: key1=value1这样的值。
因为我们完全可以在用TIdHttp执行网络请求的时候模拟自己的cookie值并发送到服务器端。
这里要先说明一些TIdhttp的一个属性,AllowCookies,当此值为False时允许用户发送自定义的cookie,当此值为True时,不允许用户发送自定义的cookie。
下面是一段代码:

 

Html特殊字符编码表

 分类:Other 阅读 (2,407)  No Responses »
10月 262012
 
1. HTML码都以&开始并以;结尾
2. 记住一些字符的英语全拼可以方便记住这些符号,比如:< lt 为less than, > gt 为greater than, 空格 nbsp为Non-breaking Space
字符 HTML码 十进制码 字符 HTML码 十进制码 字符 HTML码 十进制码
Α &Alpha; &#913; Β &Beta; &#914; Γ &Gamma; &#915;
Δ &Delta; &#916; Ε &Epsilon; &#917; Ζ &Zeta; &#918;
Η &Eta; &#919; Θ &Theta; &#920; Ι &Iota; &#921;
Κ &Kappa; &#922; Λ &Lambda; &#923; Μ &Mu; &#924;
Ν &Nu; &#925; Ξ &Xi; &#926; Ο &Omicron; &#927;
Π &Pi; &#928; Ρ &Rho; &#929; Σ &Sigma; &#931;
Τ &Tau; &#932; Υ &Upsilon; &#933; Φ &Phi; &#934;
Χ &Chi; &#935; Ψ &Psi; &#936; Ω &Omega; &#937;
α &alpha; &#945; β &beta; &#946; γ &gamma; &#947;
δ &delta; &#948; ε &epsilon; &#949; ζ &zeta; &#950;
η &eta; &#951; θ &theta; &#952; ι &iota; &#953;
κ &kappa; &#954; λ &lambda; &#955; μ &mu; &#956;
ν &nu; &#957; ξ &xi; &#958; ο &omicron; &#959;
π &pi; &#960; ρ &rho; &#961; ? &sigmaf; &#962;
σ &sigma; &#963; τ &tau; &#964; υ &upsilon; &#965;
φ &phi; &#966; χ &chi; &#967; ψ &psi; &#968;
ω &omega; &#969; ϑ &thetasym; &#977; ϒ &upsih; &#978;
ϖ &piv; &#982; &bull; &#8226; &hellip; &#8230;
&prime; &#8242; &Prime; &#8243; &oline; &#8254;
&frasl; &#8260; &weierp; &#8472; &image; &#8465;
&real; &#8476; &trade; &#8482; &alefsym; &#8501;
&larr; &#8592; &uarr; &#8593; &rarr; &#8594;
&darr; &#8595; &harr; &#8596; &crarr; &#8629;
&lArr; &#8656; &uArr; &#8657; &rArr; &#8658;
&dArr; &#8659; &hArr; &#8660; &forall; &#8704;
&part; &#8706; &exist; &#8707; &empty; &#8709;
&nabla; &#8711; &isin; &#8712; &notin; &#8713;
&ni; &#8715; &prod; &#8719; &sum; &#8722;
&minus; &#8722; &lowast; &#8727; &radic; &#8730;
&prop; &#8733; &infin; &#8734; &ang; &#8736;
&and; &#8869; &or; &#8870; &cap; &#8745;
&cup; &#8746; &int; &#8747; &there4; &#8756;
&sim; &#8764; &cong; &#8773; &asymp; &#8773;
&ne; &#8800; &equiv; &#8801; &le; &#8804;
&ge; &#8805; &sub; &#8834; &sup; &#8835;
&nsub; &#8836; &sube; &#8838; &supe; &#8839;
&oplus; &#8853; &otimes; &#8855; &perp; &#8869;
&sdot; &#8901; &lceil; &#8968; &rceil; &#8969;
&lfloor; &#8970; &rfloor; &#8971; &loz; &#9674;
&spades; &#9824; &clubs; &#9827; &hearts; &#9829;
&diams; &#9830; &nbsp; &#160; ¡ &iexcl; &#161;
&cent; &#162; &pound; &#163; ¤ &curren; &#164;
&yen; &#165; | &brvbar; &#166; § &sect; &#167;
¨ &uml; &#168; © &copy; &#169; a &ordf; &#170;
« &laquo; &#171; ¬ &not; &#172; &shy; &#173;
® &reg; &#174; ˉ &macr; &#175; ° &deg; &#176;
± &plusmn; &#177; 2 &sup2; &#178; 3 &sup3; &#179;
&acute; &#180; μ &micro; &#181 &quot; &#34;
< &lt; &#60; > &gt; &#62; &#39;
& &amp;