小编TLa*_*ama的帖子

Inno setup 搜索现有文件

如何搜索现有的 exe 文件,然后将该目录用于我的安装程序?

如果找不到 exe 文件,我希望用户浏览路径。如果 exe 文件安装在其他地方。

情况 1(最常见的情况):

默认目录是 c:\test\My program

这应该显示为“选择目标位置”页面上的路径。当用户按“下一步”时,应该有一个检查。确保默认目录存在 (c:\test\My program) 如果存在,用户应继续进入“准备安装”页面。

Senario 2(极少数情况):

默认目录是 c:\test\My program

这应该显示为“选择目标位置”页面上的路径。当用户按“下一步”时,应该有一个检查。确保默认目录存在 (c:\test\My program) 如果不存在,则应提示用户输入“My program”的路径。随后,用户应继续进入“准备安装”页面。然后我只相信用户选择了正确的路径

我怎样才能在 InnoSetup 中做到这一点?

inno-setup

3
推荐指数
1
解决办法
7413
查看次数

如何从TMemo组件向MS Access数据库添加多行?

我有一个名为ADO的数据库t_codemeaning,下面是表结构:

t_codemeaning
  codemenaing_code AS Text
  codemenaing_title AS Text
  codemenaing_description AS Text
Run Code Online (Sandbox Code Playgroud)

我添加了所有表格ADOQuery1.

我点击了这个Delphi脚本的按钮:

ADOQuery1.edit;
ADOQuery1codemeaning_title.value := edit1.text;  
ADOQuery1codemeaning_description.value := memo1.lines.text;  
ADOQuery1.post;
Run Code Online (Sandbox Code Playgroud)

当我在备忘录中添加单行时,那么每件事都很好.

但是当我在memo1中添加多行文本时,它会显示一个错误:

多步操作产生错误.检查每个状态值.

如何解决这个问题?


我的最后一个进展,我创建了一个新的字符串变量aValue并将memo1.lines.text添加到其中:

  aValue:=memo1.lines.text;
  aValue := StringReplace(StringReplace(aValue, '#10', '', [rfReplaceAll]), '#13', '', [rfReplaceAll]);
Run Code Online (Sandbox Code Playgroud)

我将ADOQuery1codemeaning_description.value ....的脚本更改为:

ADOQuery1codemeaning_description.value := aValue;  
Run Code Online (Sandbox Code Playgroud)

仍然有同样的错误......

delphi ms-access memo delphi-2010 tadoquery

3
推荐指数
1
解决办法
1794
查看次数

如何通过TIdHTTP下载大文件?

我用这段代码下载小文件:

Var
 ms:TMemoryStream;
begin
  ms:=TMemoryStream.Create;
  Idhttp1.get('http://mydomain.com/myfile.zip',ms);
  ms.SaveToFile('myfile.zip');
  ms.Free;
end;
Run Code Online (Sandbox Code Playgroud)

但是文件在存储到磁盘之前保存在RAM中,因此可能难以下载文件> 1Gb,例如.有没有办法按部件下载文件?或者我需要使用WinInet吗?提前致谢!

delphi wininet indy10 delphi-xe2

3
推荐指数
1
解决办法
8196
查看次数

注册表部分项中的根参数如何使用代码功能?

我想将注册表项设置为HKLM用户是管理员还是HKCU普通用户。

我尝试了这个:

[Registry]
Root: "{code:DefRegRoot}"; Subkey: "Software\MyCompany\MySW\Settings"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"

[Code]
function IsRegularUser(): Boolean;
begin
  Result := not (IsAdminLoggedOn or IsPowerUserLoggedOn);
end;

function DefRegRoot(Param: String): String;
begin
  if IsRegularUser then
    Result := HKCU
  else
    Result := HKLM;
end;
Run Code Online (Sandbox Code Playgroud)

但是编译器在注册表的第一行返回一个错误:

Parameter "Root" is not a valid value. 
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

inno-setup

3
推荐指数
1
解决办法
1447
查看次数

如何通过使用inno设置在卸载期间添加确认任务?

我的用户数据位于用户的文件夹中,例如:C:\ Users \ Administrator \ profile.ini

我知道如何删除它:

[UninstallDelete]
Type: files; Name: "C:\Users\{username}\profile.ini"
Run Code Online (Sandbox Code Playgroud)

问题是我不想默默地删除此文件,我需要通过复选框将最终操作告知最终用户,例如“ []删除用户数据”。如果最终用户检查了该文件,请删除该文件,否则什么也不做。

我有两个问题:

  1. 有没有办法获取当前记录用户的文件夹?我认为这不是像我在“ C:\ Users {username} \”上面所做的那样的好方法。但是我找不到这样做的任何常数。

  2. 可以在卸载开始时添加一个复选框吗?

inno-setup

3
推荐指数
1
解决办法
2559
查看次数

如何使列表框与Outlook 2013相同?

在Delphi XE2或XE3中,如何创建类似于Outlook 2013电子邮件列表的列表框?

或者是Outlook 2013中的列表还有其他什么?

如何在Delphi XE2或XE3中实现类似的?

谢谢

在此输入图像描述

delphi listbox listbox-control delphi-xe2 delphi-xe3

3
推荐指数
1
解决办法
2031
查看次数

在XML中提取值

我需要解析以下XML:

<?xml version="1.0" encoding="UTF-8" ?>
<revista numero="2226" data="03/09/2013">
  <processo numero="902987089">
    <despachos>
      <despacho codigo="IPAS139"/>
    </despachos>
    <titulares>
      <titular nome-razao-social="AAAAA" pais="BR" uf="PR"/>
    </titulares>
  </processo>
  <processo numero="902812165">
    <despachos>
      <despacho codigo="IPAS029"/>
    </despachos>
    <titulares>
      <titular nome-razao-social="XXXX" pais="BR" uf="SC"/>
    </titulares>
(...)
Run Code Online (Sandbox Code Playgroud)

我对XML没有任何经验.我IXMLDocument在Delphi中使用.

LNodeElement := LDocument.ChildNodes.FindNode('revista');
(...)
for I := 0 to LNodeElement.ChildNodes.Count - 1 do
(...)
Run Code Online (Sandbox Code Playgroud)

我的问题是我如何才能到达标签numero内的属性值<processo>?但如果一个善良的灵魂可以分享一个小例子,那将是最受欢迎的.

xml delphi delphi-xe

3
推荐指数
1
解决办法
1542
查看次数

如何将字体(FontStyle,FontColor,FontSize)转换为字符串

我想在SQL数据库中保存字体(FontStyle,FontColor,FontSize),为此,我需要将其保存为字符串。如何将Tfont转换为TString?

delphi delphi-7

3
推荐指数
1
解决办法
1716
查看次数

我可以将TCriticalSection对象声明为公共类字段吗?

我可以将TCriticalSection对象声明为公共字段,例如:

type
  TMyObject = class
  public
    CS: TCriticalSection;
  end;
Run Code Online (Sandbox Code Playgroud)

我想公开该字段以允许任何线程进入和离开临界区对象,这在内部保护TMyObject实例的完整性.那么,我可以将TCriticalSection对象声明为公共类字段吗?

delphi critical-section

3
推荐指数
1
解决办法
2449
查看次数

如何在Pascal中输出Set的内容?

我正在使用Pascal中的简单集,并且只想输出集合的内容.每次运行代码时,我都会收到以下错误消息:'project1.lpr(17,13)错误:无法读取或写入此类型的变量'.

这是我的代码:

  program Project1;

{$mode objfpc}{$H+}

uses
  sysutils;

type TFriends = (Anne,Bob,Claire,Derek,Edgar,Francy);
type TFriendGroup = Set of TFriends;

Var set1,set2,set3,set4:TFriendGroup;    x:integer;

begin
set1:=[Anne,Bob,Claire];
set2:=[Claire,Derek];
set3:=[Derek,Edgar,Francy];
writeln(set1);
readln;
end.
Run Code Online (Sandbox Code Playgroud)

输出集是否有特殊的方法/功能?

谢谢

freepascal

3
推荐指数
1
解决办法
1504
查看次数