随笔分类 - Delphi
摘要:有的共享软件赚了一百万美元,而为什么你没有? 转自:http://blog.csdn.net/wangjiwei2010/article/details/1267044 译:DreamGoal 原作:Steve Pavlin 几个月以前,我决定对共享软件业进行一项非正式的长期研究。我首先提出的问题是
阅读全文
posted @ 2016-10-22 23:23
阳光不远
摘要:通过文件头标识判断图片格式用Delphi从内存流中通过文件头标识判断图片格式文件头标识大全:http://www.garykessler.net/library/file_sigs.htmlhttp://filext.com/index.php图片的格式很多,一个图片文件的后缀名并不能说明这个图片的真正格式什么,那么如何获取图片的格式呢?我想到了几个简单但有效的方法,那就是读取图片文件的文件头标识。我们知道各种格式的图片的文件头标识识不同的,因此我们可以通过判断文件头的标识来识别图片格式。 我对各种格式的图片文件头标识进行了分析,不仅查找资料,也用十六进制编辑器察看过图片的文件头,以下是我收集
阅读全文
摘要:【转】sqlite3加密SQLite 3 开源版不带加密功能,对于一个保存在本地的数据库来说没有加密功能让人难以接受,只要用记事本打开数据库就可以看到数据库内保存的数据,对安全多多少少有一点影响。有一个办法是把内容加密后保存到数据库中,但遇到类似 like,或字段内容与字段内容比较这就不行了。治本的办法是让 SQLite 原生的支持加密。好在 SQLite 的作者预留了加密解密的相关接口,许多爱好者也自己修改源版添加加密功能。如果你也在关注,那你可能已经阅读了大量关于如何添加加密的文章,同时我也不是很通相关的技术,我就不再讲解如何修改源码了。虽然网上有大量的文章教你如何修改源码,但都没有提供编
阅读全文
摘要:Socket线程获取源码无阻塞socket编程阻塞的问题搞了我几个月,这段时间实在是太漫长了,其实我只是需要一个很简单的函数,那就是获取网页源码,就是一个这么简单的需要,我搞了几个月。最初我把所有的socket函数放入一个线程,在线程中设置超时时间,但这样会遇到一个问题,如果线程的超时时间设为30秒,30秒没接收完成就表达失败,但在正常情况下网页文件在30秒内也有可能接收不完,所以这个方法宣告失效。接着又找了个Linux下的多线程下载软件,研究了一下代码,写了个多线程的网页文件下载,这又把问题弄得更复杂了,可能是我的代码没控制好,程序虽然不会阻塞了,但下载的网页源码偶尔会不完整,遇到这个问题又
阅读全文
摘要:调用外部程序,等待外部程序运行完成,相当于Showmodal功能,呵呵delphi代码1.function WinExecAndWait32(FileName: string; Visibility: Boolean): integer;2.var3. zAppName: array[0..512] of char; //存放应用程序名4. StartupInfo: TStartupInfo;5. ProcessInfo: TProcessInformation;6. exitCode: Dword;7. aVisibility: integer;8.begin9. StrPCopy(zApp
阅读全文
摘要:Use Jpegprocedure TForm1.snapscreen(a,b,c,d:Integer);var bmpscreen:Tbitmap; jpegscreen:Tjpegimage; FullscreenCanvas:TCanvas; dc:HDC; sourceRect, destRect: TRect;begin try dc:=getdc(0); fullscreencanvas:=Tcanvas.Create; fullscreencanvas.Handle:=dc; bmpscreen:=Tbitmap.create; bmpscreen.Width :=c-a; bm
阅读全文
摘要://声明:sndPlaySound( lpszSoundName: PChar; {声音文件} uFlags: UINT{播放选项}): BOOL;//uFlags 参数可选值:SND_SYNC = 0; {同步播放, 程序须等到播放完毕才向下执行}SND_ASYNC = 1; {异步播放, 在函数返回之后开始播放, 不影响程序继续执行}SND_NODEFAULT = 2; {声音文件缺失时, 函数自动返回不播放默认声音}SND_MEMORY = 4; {播放内存中的声音, 譬如资源文件中的声音}SND_LOOP = 8; {循环播放, 需要和 SND_ASYNC 组合使用}SND_NOSTO
阅读全文
摘要:Delphi使用Indy、ICS组件读取网页使用Indy 10中TIdHTTP的例子:代码usesIdHttp;...functionHttpGet(constUrl:string;varHtml:string):Boolean;varHttpClient:TIdHTTP;beginResult:=False;HttpClient:=TIdHTTP.Create(nil);tryHtml:=HttpClient.Get(Url);Result:=True;exceptone:Exceptiondobeginend;end;HttpClient.Free;end;Indy采用的是同步I/O的方式
阅读全文
摘要:http://www.cnblogs.com/28088191/archive/2008/12/25/1362519.html下面是一个在14个数据产生10个不重复的随机数-----------------------------------------------procedure TForm1.Button1Click(Sender: TObject);var a:array[1..14]of integer;//14个数 b:array[1..10]of integer;//结果 c:array[1..14]of boolean;//标志,默认false i,temp:integer;
阅读全文
摘要:Delphi:界面美化,用网页做界面用TWebBrowser控件设置显示的网页,如果在本地则写全路径,放到窗体的create或show事件中123456var str:string;begin str:=ExtractFilePath(Application.ExeName)+test.html ; //程序目录下的test.html页 webbrowser1.Navigate(str);End;假设网页中有一个链接控件的OnBeforeNavigate2事件12345678910procedure TFmain.WebBrowser1BeforeNavigate2(Sender: TObje
阅读全文
摘要:当Delphi支持了Unicode,它将会变成什么样子呢?我的看法如下:1. 开发变得复杂了,因为要更多的考虑编码问题2. 绝大多数控件都需要修改,以使其能适应Delphi20093. 多国语言的软件得到了较好的支持第一点和第二点,相信很多人都有体会了,原本在Delphi2007上通顺利编译通过的项目,放到Delphi2009上就要进行很大的改动。特别是API的调用,MessageBoxA改成MessageBoxW之类,会让原本简单的程序变得很复杂。我在论坛上承接移植控件的项目时,已经有很深的体会。比如说 str: array[0..15] of Char,原本这个 str 是可以直接拿来用作
阅读全文
摘要:转http://www.programbbs.com/doc/175.htm首先申明:我是菜鸟,我只不过想把困绕了我很长时间的问题的解决方案发表出来,免得以后我又忘记,同时给还不知道这些小知识的同僚一些帮助。各位不要笑我的浅薄。同时为了表示我的低级,我会很罗嗦的讲一些基本的东西,这些都是我的理解,很不准确。用我的方法来控制其他程序窗体上的窗口控件,必须先了解什么是回调函数。我的理解是这样的:回调函数写出来不是自己的程序去调用的,反而是让其他的东西去调用,比如windows操作系统,比如其他的程序等等之类的。但是什么时候被调用却不知道了。回调函数一般是按照调用者的要求定义好参数和返回值的类型,你
阅读全文
摘要:http://cy03wqh.blog.163.com/http://blog.csdn.net/sunstone/category/608413.aspx
阅读全文
摘要:unit Unit2;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;type TForm2 = class(TForm) Timer1: TTimer; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; L
阅读全文
摘要:FROM:http://hi.baidu.com/ytlvy2008/blog/item/e5a03ad1b1447cdb572c849f.html多线程编程(1) - 先入门再说。 多线程应该是编程工作者的基础技能, 但这个基础对我来讲的确有点难(起码昨天以前是这样). 开始本应该是一篇洋洋洒洒的文字, 不过我还是提倡先做起来, 在尝试中去理解. 先试试这个:procedure TForm1.Button1Click(Sender: TObject);var i: Integer;begin for i := 0 to 500000 do begin Canvas.TextOut(10, 1
阅读全文
摘要:unit Unit2;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;type TForm2 = class(TForm) Timer1: TTimer; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; procedure Timer1Timer(Sender: TObject); private { Private declara
阅读全文
摘要:procedure TForm1.Button1Click(Sender: TObject);varszText: array[0..254] of char;hCurrentWindow :hwnd;r:trect ;point:tpoint;begin hCurrentWindow := GetWindow(Handle,GW_HWNDFIRST); memo1.Clear; while hCurrentWindow <> 0 do begin if GetWindowText(hCurrentWindow ,@szText,255) > 0 then if pos(
阅读全文
摘要:谁能使得以下代码能够快点,或者用其他方法实现功能,目前2000行数据需要10秒钟左右,如果不加红色部分代码的话需要1秒。unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,RzLstBox,RzChkLst,DB,MemDS,DBAccess,Uni,ComCtrls,RzTreeVw,SQLServerUniProvider;typeTForm1=class(TForm)UniConnection1:TUniConnection;U
阅读全文
摘要:好久没写技术文了 datasnap传大流。 完整代码,同时感谢叶兄传流的指点,(只公开十天)附:下面代码,转载请注明出处::code服务端:function TServerMethods1.DownLoadFile(AfileName: string): TStream;constSaveFolder = 'FSimage\';defaultName = 'Default.png'; // 此文件必须有//用默认文件处理不存在图片varALLpath: string;beginALLpath := LocalPath + SaveFolder + AfileNa
阅读全文
摘要://相关生成代码,VirtualStringTree有点难入门,研究了二天半,终于入门了。PTagCustomListItem = ^TTagCustomListItem;TTagCustomListItem = record Name: string; Id: string;end;varMainFrm: TMainFrm;SysPath: string;List: TStringList;implementation{$R *.dfm}uses fDMfrm;procedure TMainFrm.BuildTree;beginList.Clear;Self.VirtualStringTre
阅读全文

浙公网安备 33010602011771号