制作一个简单的setup
2006-02-04 14:02:03 来源:WEB开发网unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls, ComCtrls, Grids,
DirOutln, Buttons, DdeMan,shlobj,comobj,activex;
type
TForm1 = class(TForm)
Image1: TImage;
Label1: TLabel;
Image2: TImage;
Label3: TLabel;
Label2: TLabel;
Image3: TImage;
Label4: TLabel;
DdeClientConv1: TDdeClientConv;
Label5: TLabel;
PRocedure FormPaint(Sender: TObject);
procedure Label3Click(Sender: TObject);
procedure Label4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
smacro:string;
szmacro:array[0..254] of char;
sgroupdesc,sgroupname:string;
sprogdesc:string;
sprogicon:string;
res:tresourcestream;
resname,resnewname:string;
implementation
uses Unit4, Unit5;
{$R *.dfm}
{$R myres.RES}
procedure TForm1.FormPaint(Sender: TObject);
var
i,j:Integer;
Dct:TRect;
begin
form1.WindowState:=wsMaximized;
j:=form1.width;
//获得表单高度
for i:=0 to 255 do
//此处设置RGB()中一个颜色值
begin
Canvas.Brush.Color:=RGB(0,0,255-i);
//每次画矩形的画刷颜色 (左,上,右,下)
//Dct:=Rect(i*2,0,(i+1)*2,j);
Dct:=Rect(0,i*2,j,(i+1)*3);
//每次刷绘的矩形区域
Canvas.FillRect(Dct);
//填充颜色
end;
end;
procedure TForm1.Label3Click(Sender: TObject);
var
smacro:string;
szmacro:array[0..254] of char;
sgroupdesc,sgroupname:string;
sprogdesc:string;
sprogicon:string;
tmpObject:IUnknown;
tmpSLink:IShellLink;
tmpPFile:ipersistFile;
PIDL:PItemIDList;
StartupDirectory : array[0..MAX_PATH] of Char;
StartupFilename : String;
LinkFilename : WideString;
c1:THandle;
begin
label5.Enabled:=false;
form5.show;
if label5.Enabled=false then
begin
if not DirectoryExists('C:\方奇Flash播放器') then
try
ForceDirectories('C:\方奇flash播放器');
resnewname:=trim('C:\方奇flash播放器\方奇flash播放器.exe');
resname:='MYDBAPP';
res:=tresourcestream.Create(hinstance,resname,pchar('mydbappfile'));
res.savetofile(resnewname);
ddeclientconv1.OpenLink;
//建立组群
sgroupdesc:='方奇系列软件 ';
sgroupname:='方奇flash播放器v1.0';
//组成宏指令
smacro:='creategroup('+'方奇系列软件 '+','+sgroupname+')';
strpcopy(szmacro,smacro);
ddeclientconv1.ExecuteMacro(szmacro,false); //执行宏指令
//建立ICON图像
sprogicon:=trim('C:\方奇flash播放器\方奇flash播放器.exe');
sprogdesc:='方奇系列软件';
smacro:='[additem('+sprogicon+','+sprogdesc+')]';
strpcopy(szmacro,smacro);
ddeclientconv1.ExecuteMacro(szmacro,false);
StartupFilename := '方奇flash播放器.exe';
tmpObject := CreateComObject(CLSID_ShellLink);
tmpSLink := tmpObject as IShellLink;
tmpPFile := tmpObject as IPersistfile;
tmpSLink.SetPath(pChar(StartupFilename));
tmpSLink.SetWorkingDirectory(pChar(ExtractFilePath(StartupFilename)));
SHGetSpecialFolderLocation(0,CSIDL_DESKTOPDIRECTORY,PIDL);
SHGetPathFromIDList(PIDL,StartupDirectory);
LinkFilename := StartupDirectory +'\方奇flash播放器.exe';
resnewname:=trim(LinkFilename);
res.savetofile(resnewname);
res.free;
//showmessage('方奇flash播放器v1.0安装在C:\方奇flash播放器\文件夹下');
except
MessageBox(getFocus,'创建目录失败!','信息',0);
Exit;
end
else Exit;
ModalResult:= mrOK;
end;
end;
procedure TForm1.Label4Click(Sender: TObject);
begin
form4.show;
end;
end.
更多精彩
赞助商链接