我试图让用户选择是否要使用主题风格.是否有可能动态"加载"XPManifest?
如果用户接受主题样式,则使用清单,否则使用经典主题.在程序启动后,关闭样式选择的对话框后,我想做类似的事情:
if UserWantsThemedStyle then
LoadManifestSomehow
else
UseClassicStyle;
Run Code Online (Sandbox Code Playgroud)
甚至可以在运行时执行它吗?
谢谢
function GetDesktopFolder: string;
var
buf: array[0..MAX_PATH] of Char;
pidList: PItemIDList;
begin
Result := StrNoDesktopFolderFo;
SHGetSpecialFolderLocation(Application.Handle, CSIDL_DESKTOP, pidList);
if (pidList <> nil) then
if (SHGetPathFromIDList(pidList, buf)) then
Result := buf;
end;
procedure p;
var
i: Integer;
IObject: IUnknown;
ISLink: IShellLink;
IPFile: IPersistFile;
PIDL: PItemIDList;
InFolder: array[0..MAX_PATH] of Char;
TargetName: string;
LinkName: string;
begin
TargetName := 'c:\folder\exeFile.exe';//hardcoded example
IObject := CreateComObject(CLSID_ShellLink) ;
ISLink := IObject as IShellLink;
IPFile := IObject as IPersistFile;
with ISLink do
begin
SetDescription('what ever');
SetPath(pChar(TargetName)) ;
SetWorkingDirectory(pChar(ExtractFilePath(TargetName))) ; …
Run Code Online (Sandbox Code Playgroud) 我想在安装程序的安装步骤中显示如下图所示的内容...我使用备忘录显示内容..但备忘录不适合控制..如果用户将焦点放在备忘录上,它看起来像文本框字段...见下图...当用户进入此步骤时,选择第一个备忘录字段...
在设计a时TForm
,会在表单单元中添加一行来声明表单对象...
var
frmMyForm: TfrmMyForm;
Run Code Online (Sandbox Code Playgroud)
我不需要自动创建这个表单,并且我打算创建它的多个实例,并且为了确保我没有使用这个声明的表单的错误,我评论了它...
//var
//frmMyForm: TfrmMyForm;
Run Code Online (Sandbox Code Playgroud)
我想知道这样做是否安全?我没有看到任何问题,表单设计师仍然工作正常.但如果我把它完全抛弃,会不会有麻烦?
我的程序在中创建文件c:\Users\GameDev\AppData\Local\<my game folder>
.是否有可能告诉InnoSetup在卸载过程中删除整个文件夹,即使安装程序没有把它放在那里?
我的程序在硬盘可用空间上执行任务.任务很长,需要1-2个小时.
问题是,在笔记本电脑上,当用户处于非活动状态时,硬盘可能会在几分钟后关闭.
如何以编程方式防止Windows硬盘关闭(关闭电源)?
是否可以知道数据库中某些表的内容何时以及是否已更改?我的SQL Server如何通知客户端应用程序数据被另一个用户更改?如何使用dbGo实现查询通知?
我的客户是否需要轮询数据库,或者是否有回调机制?
我的客户端是Delphi应用程序TADODataSet
,我的服务器是SQL Server 2005/2008,为多个客户端提供服务.
使用Office XP样式显示聚焦/选定列表框项目的最简单,最干净的方法是什么?
请参阅此示例图像以更清晰地显示该想法:
我想我需要将Listbox Style设置为lbOwnerDrawFixed
或者lbOwnerDrawVariable
然后修改OnDrawItem事件?
这是我被卡住的地方,我不确定在那里写什么代码,到目前为止我试过:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with (Control as TListBox).Canvas do
begin
if odSelected in State then
begin
Brush.Color := $00FCDDC0;
Pen.Color := $00FF9933;
FillRect(Rect);
end;
TextOut(Rect.Left, Rect.Top, TListBox(Control).Items[Index]);
end;
end;
Run Code Online (Sandbox Code Playgroud)
我应该知道这不起作用,我会得到各种各样的时髦事情:
我做错了什么,更重要的是我需要改变什么才能让它发挥作用?
谢谢.
我正在尝试使用ADO连接到SQL Server数据库.密码包含一个空格作为最后一个字符.构建连接字符串时,如何转义密码?
MSDN说它用单引号或双引号,但这似乎不起作用......
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx
这是我的连接字符串的样子:
Provider=SQLOLEDB;Persist Security Info=False;Initial Catalog=master;Data Source=test;uid=john;pwd="123 "
Run Code Online (Sandbox Code Playgroud)
谢谢
delphi ×7
inno-setup ×3
sql-server ×2
ado ×1
conditional ×1
delphi-2009 ×1
delphi-xe ×1
delphi-xe2 ×1
guid ×1
hard-drive ×1
ide ×1
installer ×1
manifest ×1
runtime ×1
sql ×1
winapi ×1
windows ×1