标签: delphi-2006

使用Delphi打开ANSI文件并保存Unicode文件

出于某种原因,最近我的许多客户端系统上的*.UDL文件不再兼容,因为它们曾被保存为ANSI文件,后者不再与预期的UNICODE文件格式兼容.最终结果是一个错误对话框,指出"该文件不是有效的复合文件".

以编程方式打开这些文件并保存为unicode文件的最简单方法是什么?我知道我可以通过在记事本中打开每个文件然后保存为同一个文件但在保存为对话框的编码部分中选择"unicode"来执行此操作,但我需要在程序中执行此操作以减少支持调用.

这个问题很容易复制,只需在目录中创建一个*.txt文件,将其重命名为*.UDL,然后使用microsoft编辑器进行编辑.然后在记事本中打开它并将其另存为ANSI编码文件.尝试从udl编辑器打开udl,它会告诉你它的损坏.然后将其(使用记事本)保存为Unicode编码文件,它将再次正常打开.

delphi unicode delphi-2009 delphi-2006

6
推荐指数
2
解决办法
9478
查看次数

如何使用Delphi的TSplitter和面板避免这种不必要的行为?

包括一个展示我的问题的小项目.我有一个TPageControl与主表格对齐的.在两个标签页中的每一个上,我都有面板客户端对齐.在每个面板上,我有2个子面板和一个分割器.LH面板和分离器左对齐,RH面板客户端对齐.

基本上问题是两个选项卡之间的交互.展示:

  • 运行程序
  • 水平拉伸主窗体.第3小组将会增长
  • 将分离器尽可能向右移动.面板2将增长,面板3将缩小到其10像素的最小宽度约束.
  • 选择标签页2.面板5按设计,面板6在主窗体拉伸时生长
  • 将主窗体宽度减小到原始宽度.面板6收缩太多(不合需要)
  • 单击标签页1.主窗体再次增加宽度(不合需要)

好的,这种行为可能是根据对齐面板的规则来解释的,但有人可以建议改进操作吗?

unit Unit17;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, ComCtrls;

type
  TForm17 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Panel1: TPanel;
    Panel2: TPanel;
    Splitter1: TSplitter;
    Panel3: TPanel;
    Panel4: TPanel;
    Splitter2: TSplitter;
    Panel5: TPanel;
    Panel6: TPanel;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form17: TForm17;

implementation

{$R *.dfm}

end.


object Form17: TForm17
  Left = 0
  Top = 0
  Caption …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-2006 tpanel ttabsheet

6
推荐指数
1
解决办法
4319
查看次数

如何从我的软件的所有打开表单中获取列表?

我想要求用户在终止我的应用程序之前关闭所有打开的表单.

如何从打开的表单中自动获取列表?

我使用Delphi 2006中,不使用表单的自动创建,但我使用了自动创建窗体的引用varApplication.CreateForm.

致以我的问候.

forms delphi delphi-2006

6
推荐指数
1
解决办法
6007
查看次数

Delphi - 从应用程序中捕获所有action.onexecute

我有一个包含数百个TActions的大型应用程序.它们中的每一个都被使用并实现所需的不同功能.

可以从应用程序中捕获(挂钩)所有TAction.OnExecute吗?有没有我可以挂钩的Windows消息,所以我可以记录执行的动作名称?

delphi delphi-2006

6
推荐指数
1
解决办法
759
查看次数

解释GetKeyState/GetCursorPos中的错误

有时我会收到客户的错误报告,我无法解释.在Delphi中的Application.Run()之后,我收到以下错误:

 EOSError: System error: Code:_5 Access denied

 Call Stack Information:
-------------------------------------------------------------------
|Address |Module     |Unit       |Class |Procedure       |Line    |
-------------------------------------------------------------------
|Running Thread: ID=4352; Priorität=0; Klasse=; [Main Thread]     |
|-----------------------------------------------------------------|
|772B291F|USER32.dll |           |      |GetKeyState     |        |
|772B7B96|USER32.dll |           |      |GetPropA        |        |
|772B7B5A|USER32.dll |           |      |GetPropA        |        |
|772A7BC5|USER32.dll |           |      |DispatchMessageA|        |
|772A7BBB|USER32.dll |           |      |DispatchMessageA|        |
|00A6D804|Program.exe|Program.dpr|      |                |803[369]|  // Application.Run
-------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

EOsError: A call to an OS function failed

Call Stack Information:
-------------------------------------------------------------------
|Address |Module     |Unit       |Class |Procedure …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-2006

6
推荐指数
1
解决办法
1334
查看次数

使用Delphi 2006有条件地更改应用程序图标

我想生成我的应用程序的两个不同版本,具有基于DEFINE的不同图标.我成功地包含了基于定义的不同资源文件,但是我无法摆脱MAINICON我项目的默认.res文件.

我添加了一个资源Version1.rc文件,其中包含以下行:

MAINICON icon "resource\icons\Version1.ico"
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试使用IDE编译MyProject,我总是会收到以下错误:

E2161重复资源:类型14(ICON GROUP),ID MAINICON; 保存文件C:\ MyProject\Version1.RES资源; 文件C:\ MyProject\MyProject.RES资源被丢弃.

我尝试MyProject.res使用资源编辑器进行编辑并删除MAINICON,但delphi自动似乎重新创建包含图标的文件.

delphi delphi-2006

6
推荐指数
1
解决办法
508
查看次数

如何在Delphi中获得64位随机值?

如何在Delphi 2006中创建随机的64位整数值?内置的基于整数的Random()函数似乎只返回0到2 ^ 31之间的值.

delphi random delphi-2006

5
推荐指数
2
解决办法
2288
查看次数

如何在网络计算机上找到公共文档文件夹的名称

鉴于我正在通过网络在计算机上执行EXE文件(D2006应用程序),我如何获取该计算机上commondocs文件夹的路径名,因为可能已从UNC快捷方式或映射的驱动器号调用EXE快捷方式,远程机器的平台不一定是已知的(但将是> = WinXP)?

在这种情况下,客户端拥有大量分散的计算机,并且他们无法在所有PC上安装我的应用程序.所以他们所做的就是在网络上的某个地方安装可执行文件,并为每个人提供快捷方式.这似乎已经很适合他们了,那里没有问题.

根据他们的要求,我让应用程序从与可执行文件放在同一文件夹中的INI文件中读取设置.我只能假设他们已经配置了所有用户可以写入该文件夹,以便可以保存INI文件.

但是,我想更改它以便读取INI文件并将其保存到远程计算机上的commondocs文件夹树中的某个位置,这样它们就不需要提供对Program files文件夹的写入权限.

delphi networking unc mapped-drive delphi-2006

5
推荐指数
1
解决办法
487
查看次数

Delphi IDE自定义菜单项,如何添加它们?

我正在使用Delphi 7Delphi 2006正在开发一个项目,我正在开发一个可以获得某些系统信息的组件.现在要求是在系统上安装组件之后,IDE上应该有一个菜单项,如下所示

在此输入图像描述

而对于delphi 7这样的 在此输入图像描述

我搜索过关于添加菜单项的网,但我没有得到任何东西,项添加到IDE喜欢的一个EurekaLog了.任何人都可以告诉我如何添加项目EurekaLogmysql?它是在注册表中的某些地方吗?

delphi delphi-7 delphi-2006 menuitem

5
推荐指数
1
解决办法
2790
查看次数

从Delphi 2006迁移到Delphi XE2

在delphi 2006中有一个代码库,在过去的许多年里没有开发.如果需要激活开发有哪些选项.

  • 继续在2006年开发.(不确定IDE支持等)
  • 迁移到Delphi XE2.(不确定需要什么)
  • 用Java重新编码.

似乎第二种选择更可行,但它会涉及到什么呢?我读了一些关于Unicode支持的东西,也不确定图形库支持.

为了正确看待事物,我是一名Java程序员,并且拥有C/C++方面的经验.但是,我试图从市场战略的最小阻力路径的角度来理解它.

提前致谢.

delphi delphi-2006 delphi-xe2

5
推荐指数
1
解决办法
2504
查看次数