| Blog信息 |
|
blog名称:注册会计师(注会)练习软件 日志总数:398 评论数量:116 留言数量:27 访问次数:3278996 建立时间:2005年6月6日 |

| |
|
[delpih编程]抓取表达式中的所有括号对正则表达式 软件技术
吕向阳 发表于 2009/6/29 6:49:05 |
sub get_() { my $epr=shift; #传递进来的表达式 my @a=(); my @b=(); my $b=0; push (@a,$b++) while (0<=($b=index ($epr,'(',$b))); push (@b,$b++) while (0<($b=index ($epr,')',$b))); if (@b==@a) { for(my $y=0;$y<=$#b;$y++) { for(my $x=$#a;$x>=0;$x--) { if ($b[$y]>$a[$x]) { print substr($epr,$a[$x]+1,$b[$y]-$a[$x]- 1),"\n"; splice (@a,$x,1); last ; } } } } else { print "括号不成对!\n"; } }
|
|
|
[delpih编程]WebBrowser下载完成一个页触发两次onDocumentComplete事件【转】 软件技术
吕向阳 发表于 2009/6/29 6:46:14 |
WebBrowser下载完成一个页触发两次onDocumentComplete事件收藏 因为你浏览的页面可能有框架,每个单独的框架都可能会触发 DocumentComplete事件。 框架集页面会最后触发DocumentComplete事件。 发送事件的对象可以通过DocumentComplete事件的第一个参数访问
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); var CurWebrowser: IWebBrowser; TopWebBrowser: IWebBrowser; Document: OleVariant; WindowName: string; begin CurWebrowser := pDisp as IWebBrowser; TopWebBrowser := (Sender as TWebBrowser).DefaultInterface; if CurWebrowser = TopWebBrowser then ShowMessage('Complete document was loaded') else begin Document := CurWebrowser.Document; WindowName := Document.ParentWindow.Name; ShowMessage(Format('Frame "%s" was loaded', [WindowName])); end; end;
本文来自CSDN博客,转载请标明出处: http://blog.csdn.net/zjhnwlh/articles/1040338.aspx
|
|
|
[delpih编程]delphi 调用进度条窗体 软件技术
吕向阳 发表于 2009/6/29 6:38:21 |
先做一个窗体文件(FORM),在窗体中加入一个进度条件progressbar.
然后是主程序中按如下方法调用
先把调用进度条的窗体禁用:Form1.Enabled:=false; 然后调用进度条窗体,直接show,不要设为模式状态
begin Enabled:=false; //此处禁用主窗体 try frmProgress:=TfrmProgress.Create(self); try frmProgress.Show; frmProgress.Update;
for i:=0 to n do begin ... //你的事务处理代码 frmProgress.Progress.Positon: =frmProgress.Progress.Positon+1; //进度增加 Application.ProcessMessages; //此处别漏了,让系统处 理进度条变化 end; finally FreeAndNil(frmProgress); end; finally Enabled:=true; end; end;
还可参考以下两例
一):
begin Enabled:=false; //此处禁用主窗体 try frmProgress:=TfrmProgress.Create(self); try frmProgress.Show; frmProgress.Update;
for i:=0 to n do begin ... //你的事务处理代码 frmProgress.Progress.Positon: =frmProgress.Progress.Positon+1; //进度增加 Application.ProcessMessages; //此处别漏了,让系统处 理进度条变化 end; finally FreeAndNil(frmProgress); end; finally Enabled:=true; end; end;
二):
Delphi(Pascal) code
Self.Enabled :=False ; //禁止窗体操作 //初始化进度条 initProgressBar(Fra_Preview1.Marcs.Count, '批量自动验收') |
|
|
[delpih编程]WINRAR强悍压缩功能 软件技术
吕向阳 发表于 2009/6/20 19:36:12 |
winrar 的强悍今天略微见识了一下,我用肥猫安装软件制作注会软件 安装程序,共65M,考虑自身上传与他人下载都有困难,想减肥。 用肥猫制作好安装包后,再压缩大小为61M,这种方案不予考虑了。
于是直接用WINRAR压缩后大小为31M,然后将其制成自解压文件,大小仍 为31M。因为很多EXE文件在下载时,在传送时有诸多限制,因此决定对 自解压文件再次压缩成RAR,这样下载起来方便,且进压缩包后直接点 安装文件,人人都会用。没想到的是压缩后此时非常意外地文件大小变 成了21m,令人喜出忘外。
========== 下为引述 winrar是一个著名的文件压缩软件,它功能强大、操作方便,较winzip 有过之而无不及。与winzip相比,winrar有一个比较方便的地方就是它 不用压缩成zip或rar文件就可以直接创建自解压文件(即exe格式文 件)。下面我就以最常用的winamp为例,简单地介绍一下其“安装程 序”的制作方法。 打开所需要安装的文件夹,按ctrl+a全选该文件 夹中的所有文件,单击右键选择“winrar”下的“添加到档案文 件...”,随后打开一个参数设置框,在“常规”选项卡中勾选复选框 “创建自释放格式档案文件”,填入你想要生成的可执行文件的文件 名,压缩方式选择“最好”;
切换至“高级”选项卡,点击中间的“自释放选项”按钮,在弹出 的“高级自释放选项”框中的“释放路径”栏填入“你需要运行的程 序”,“释放后运行”栏中输入“程序名字”;
再切换至“高级”选项卡,点击“添加快捷方式”按钮,则弹出 “添加快捷方式”对话框,在创建位置中选择“桌面”,源文件名中输 入“程序名”、快捷方式描述输入“程序名称”、快捷方式名输入“你 需要的名字”,然后单击“确定”按钮;
若还要为开始菜单添加更多的快捷方式,则继续单击“添加快捷方 式”按钮,所有的快捷方式添加完后,快捷方式文本编辑框中将列出刚 才添加的快捷方式的参数,我们也可以直接在这个文本编辑框中编辑或 修改添加快捷方式的参数内容。所有参数都设置好以后,一直点击“确 定”按钮即可生成p的“安装程序”。
winrar自解压文件的帮助
path=;释放路径
delete= ;需要删除的文件,只能删除path下面的文件
delete=
delete=
delete=也可以用路径,其绝对路径是path+后面的
overwrite=1;默认覆盖所有文件(2为跳过所有文件)
|
|
|
[delpih编程]保存webbrowser中的HTML内容,不出现另存对话框 软件技术
吕向阳 发表于 2009/6/19 21:59:31 |
利用IPersist接口可以实现保存HTML到文件,在VB和Delphi下的实现 是这样的: VB: Dim oPF As IPersistFile Set oPF = WebBrowser1.Document oPF.Save "TheFileNameHere.htm", False Delphi: uses MSHT
利用IPersist接口可以实现保存HTML到文件,在VB和Delphi下的实现 是这样的:
VB:
Dim oPF As IPersistFile Set oPF = WebBrowser1.Document oPF.Save "TheFileNameHere.htm", False
Delphi: uses MSHTML,OleCtrls, SHDocVw, StdCtrls,ActiveX; function GetHTMLCode(WB: IWebbrowser2; ACode: TStrings): Boolean; var ps: IPersistStreamInit; s: string; ss: TStringStream; sa: IStream; begin ps := WB.document as IPersistStreamInit; s := ''; ss := TStringStream.Create (s); try sa:= TStreamAdapter.Create(ss, soReference) as IStream; Result := Succeeded(ps.Save(sa, Bool(True))); if Result then ACode.Add(ss.Datastring); finally ss.Free; end; end;
|
|
|
[delpih编程]delphi 中用NMFTP实现下载 软件技术
吕向阳 发表于 2009/6/19 21:27:32 |
代码如下 unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, Psock, NMHttp, ExtCtrls, jpeg;
type TfrmDownload = class(TForm) NMHTTP1: TNMHTTP; btnGet: TButton; Label1: TLabel; edtURL: TEdit; StatusBar1: TStatusBar; Label2: TLabel; tempFileName: TLabel; Label4: TLabel; finalFileName: TLabel; ProgressBar1: TProgressBar; btnExit: TButton; procedure btnGetClick(Sender: TObject); procedure NMHTTP1Success(Cmd: CmdType); procedure FormCreate(Sender: TObject); procedure NMHTTP1Failure(Cmd: CmdType); procedure NMHTTP1PacketRecvd(Sender: TObject); procedure btnExitClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var frmDownload: TfrmDownload; implementation {$R *.DFM}
procedure TfrmDownload.btnGetClick(Sender: TObject); begin NMHTTP1.Get(edtURL.text); // 下载URL指定的文件 end;
procedure TfrmDownload.NMHTTP1Success(Cmd: CmdType); var filName:string; buf:string; pnewfile,poldfile:pchar; i:inte |
|
|