本站首页    管理页面    写新日志    退出


«November 2025»
1
2345678
9101112131415
16171819202122
23242526272829
30


公告
================

注会练习软件
http://www.cpasoft.com.cn
我的注会软件官网

http://blog.163.com/abc7105@126/

 

 


哈哈,热爱快“过气”的DELPHI


我的分类(专题)

日志更新

最新评论

留言板

链接

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";
}
}


阅读全文(887) | 回复(0) | 编辑 | 精华 | 删除
 


[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


阅读全文(1043) | 回复(0) | 编辑 | 精华 | 删除
 


[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, '批量自动验收')

阅读全文(1421) | 回复(0) | 编辑 | 精华 | 删除
 


[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为跳过所有文件)

阅读全文(1048) | 回复(0) | 编辑 | 精华 | 删除
 


[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;

阅读全文(1055) | 回复(0) | 编辑 | 精华 | 删除
 


[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

阅读全文(1030) | 回复(0) | 编辑 | 精华 | 删除
 


« 11 12 13 14 15 16 17 18 19 20 »



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.078 second(s), page refreshed 144796264 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号