引言:
陷阱一、接口的类型转换陷阱 a) 不能把一个对象引用强制转换成这个引用的类型没有声明实现的接口,即使这个对象实际实现了这个接口(呵呵,优点拗口)。
摘要:
^知道了可以用nmhttp控件下载网页,可是d7找不到这个控件了。^找到了idhttp控件似乎可以实现相同的功能,可是线上关于其的讨论太少^摘录一点代码:
直接采用delphi自带的控件的indy组件为例.新建一个工程,放上一个tidhttp控件,一个tidantifreeze控件,一个tprogressbar用于显示下载进度.最后放上一个tbutton用于开始执行我们的命令.代码如下: pr......
摘要:
需要一个用来注入的dll(inject.dll)及一个调用程序(caller.exe)流程: caller.exeprocedure testhook;var pwnd,hchild, hwndinject :hwnd; msg:tmsg;begin //通过窗口标题用findwindow找到要注入的程序的主窗口句柄pwnd pwnd := findwindow(progman,nil); //......
Delphi接口编程的两大陷阱
陷阱一.接口的类型转换陷阱 【程序编程相关:
Delphi实用代码:自绘XP风格菜单】 【推荐阅读:
利用钩子捕捉鼠标信息的一个问题】 a) 不能把一个对象引用强制转换成这个引用的类型没有声明实现的接口,即使这个对象实际实现了这个接口(呵呵,优点拗口). 【扩展信息:
用DELPHI实现对象持久层(-)】 b) 当把一个对象变量赋给一个接口变量,在把这个接口变量赋还给对象变量时,这个对象变量的地址已经变了,也就是不再是原来的对象了,而是指向一个错误的地址. 例如:
i1 = interface function do: boolean; end; tc1 = class ...
下一页 摘要:
前两天简单实现了一个delphi下的mvc模式,没想到真的就遇到问题了,想想就在不久前和人争论用不用mvc的时候还暗自认为遇到麻烦是功力不够的表现,呵呵,汗啊,报应来得真快。 其实说起来都不是什么大问题,先是重复触发更新的问题。ta有3个属性,每个改动都会change,tb里包含2个属性,每个改动都会它更新内部的一个ta的3个属性,结果我在外面一次改了tb的两个属性,change了6次。这个通......