周末了,来一篇关于RTMP协议的东西。RTMP(Real Time Messaging Protocol)实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输 开发的开放协议。它有三种变种: 1)工作在TCP之上的明文协议,使用端口1935; 2)RTMPT封装在H
...阅读更多
阅读全文
分类:多媒体相关
2013-11-09
很久以前,我以为写程序是不存在技巧的,任何需要的资料都可以在网络上查找到,但最近几年发现这个观点并非百分之百正确。任何一个技术,即使是小到一个按钮的绘制,里面都是有技巧的,而且大多数真正做过的人对这些都三缄其口,留一手。 老外,慷慨吧,到处都是他们的开源项目,但一些很细节很内幕的东西,他们是秘而不宣的。举个小例子:我经常在Delphi里面使用C语言的东西,因为C语言的资源非常丰富。一般情况下我是翻译,当然
...阅读更多
阅读全文
分类:未分类
2013-11-01
本文属于基础类文章,只适合初学者,高手请止步。另外,本文的前置知识可以参考本站《 基于Delphi的Windows程序设计(一)》一文。 什么是位(BIT)?其实就是字节的最小组成单位,例如:一个Byte类型的变量占用1个字节,也就是占用8位。一个Word类型占用16位。熟悉C语言的朋友如果使用过位域,可能对此不陌生。例如,IP头结构的定义: [sourcecode language="c"] /* ip
...阅读更多
阅读全文
分类:基础知识
2013-10-31
仅凭西方诞生了库布里克,以及西方文化界对库布里克的推崇这一点,我们就可以断言,那里的文化系统、传统和体统,统统比我们这边高明和先进。差距至少有半个世纪。当然,这种对比唯一的意义仅在于说,目前中国文化的现状,还没到理解库布里克的程度,因为我们还不知道如何看待斯皮尔伯格呢。 所以我们只能把他放在西方的那个系统去说——在那边,那些拥有最一般鉴赏力的人,比如美国电影界里有眼光的资本家和大牌演员,他们对库布里克的评
...阅读更多
阅读全文
分类:未分类
2013-08-30
我们的透明皮肤控件设计系列到此告一段落了,想进一步学习的朋友,可以找一些当前流行的DirectUI的资料来看看。 所谓DirectUI,意思是直接画的,例如QQ之类,除了窗口外,全部控件都是画出来的,没有单独的句柄。DirectUI的好处在于没有句柄外,因为全部控件都是画在一张画布上面,所以闪烁的机会更加少。实际上,Delphi本身所有从TGraphicControl继承下来的控件也是无句柄的,例如TLabel。另外有一个控件包叫DXScene(应该就是FireMonkey的前身)也是基于DirectUI的,除了全部控件都是画的外,它还是基于3D坐标系的,而且是直接在显存里面显示的: 1、原始
...阅读更多
阅读全文
分类:界面设计
2013-08-18
除了第二讲里面的平均颜色之外,实际上一个真正成熟的界面涉及的东西还是很多的。 一、九宫格算法 例如按钮,假如说,图片使用拉伸方式的话,按钮变大后会很难看,这种情况下一般使用九宫格算法。 所谓九宫格算法,就是把图片分成1~9个区域,针对不同区域作不同处理: A---------B---------C--------D | | | | |1不变 | 2只变宽 | 3不变 | E------LtPt-----RTPt--------F | |
...阅读更多
阅读全文
分类:界面设计
2013-08-18
卑劣的街头,又一部韩国黑社会电影。但我更喜欢它的英文名《A Dirty Carnival》。 从名字就可以看出导演对黑社会的一种态度,但是影片却远没有那么简单。当在夜总会中烂醉如泥的检察官揪着柄斗的耳朵说:“败类、寄生虫”的时候,谁才是真正的败类、寄生虫?也许答案远没有黑社会是败类、检察官是寄生虫那么简单。 柄斗为了全家人的生活加入了黑社会,但这个在小说电影中被描绘得纸醉金迷、平步青云的地方,却让他痛苦不已——入会几年了一无所有,家人还住在小小的旧房子中,自己的手下则在租来的房子中过着吃不饱穿不暖的日子。仅仅到这里就可以明白导演的良苦用心:不用去看那些其他的黑社会电影了,他们误导了你们,那并不
...阅读更多
阅读全文
分类:未分类
2013-08-14
滚动条对于界面来说也是非常重要的。修改系统默认滚动条一般有三种方法: 一、覆盖法 覆盖法顾名思义就是创建一个跟滚动条大小一样的控件,覆盖在原来的滚动条上面,当有消息的时候,直接“漏”下去给原来真正的滚动条: [sourcecode language="delphi"] procedure TWinScroll.WMNCHitTest(var Msg: TWMNCHitTest); begin Msg.Result := HTTRANSPARENT; end; [/sourcecode] 优点:不用自己计算变化范围。 缺点:大小无法改变。例如比系统原来的滚动条小的化,就盖不住原来的了。 二、控件
...阅读更多
阅读全文
分类:界面设计
2013-08-14
很多Delphi的使用者依赖控件,比如说,Indy系列。也有很多使用Winsock API的,但是或多或少都有着一些小问题,这是因为对Winsock不了解造成的。 笔者几年前曾经设计过一个完整的TCP协议栈,其中协议栈是纯粹用Delphi写的,驱动部分则是用C挂接到网卡驱动前,鉴于最近“Carberp 木马源码”已经公开,所以打算提提这方面的东西。 我们的讲座将以WinpCap作为底层收发数据部分,应用层则使用Delphi。例如,我们熟悉的两个WinSock函数: function htons(hostshort: Word): Word; begin Result := ((hostshor
...阅读更多
阅读全文
分类:网络相关
2013-08-12
现在我们有了透明窗口,那么所有控件也应该是透明的。 控件透明,原理其实很简单,就是把父控件的图像复制到自己上面即可。例如,常用的方法是给父控件发送背景重画的消息,同时把自己的DC传递过去: SendMessage(Parent.Handle, WM_ERASEBKGND, DC, 0); TCtrl(Parent).PaintControls(DC, nil); 这种方法对于非自己设计的皮肤窗口也有效,但缺点是会因为父窗口重画造成闪烁。 现在因为透明窗口也是我们自己制作的,所以方法就简单多了:根据自己的坐标位置,直接从图片拷贝即可。以CheckBox为例,代码段如下: Buffer := TB
...阅读更多
阅读全文
分类:界面设计
2013-08-11