如何创建一个没有GUI但仍可以使用组件的应用程序

时间:2013-11-29 11:53:50

标签: delphi-xe2

如何编写没有gui的应用程序,但我仍然想使用这些组件?

我的任务是通过一个SQL数据库,然后执行操作并写入事件日志。

溴 Valnurat

2 个答案:

答案 0 :(得分:1)

您应该使用TDataModule。您可以在设计时将非可视组件放在其上,根据需要分配其属性和事件处理程序等。

您可以创建一个VCL Forms项目,删除默认的MainForm,然后在代码中实例化DM或将DM设置为自动创建,这两种方法都可以。

答案 1 :(得分:1)

@ Remy的回答可能是最简单的,但作为替代方案,您也可以将控制台应用程序中的APPTYPE指令从CONSOLE更改为GUI,然后创建代码中运行时的组件。

(请注意,尽管如此,该指令中的GUI并不意味着"显示图形用户界面&#34 ;;它意味着"不输出到控制台"。)

这是一个将测试文件复制到另一个扩展名为.bak的文件中的示例,根本没有用户界面。如果你从IDE运行它,它只会暂停一下然后返回;检查目标文件夹将显示两个文件都存在,这意味着它有效。当然,请确保首先将文件名更改为系统中实际存在的文件名。 : - )

注意:为清楚起见,故意遗漏所有异常处理。当然,实际代码中应该有try..except个块;这里不需要try..finally资源保护因为应用程序立即退出。 它是一个演示应用,而不是生产级代码。

program Project1;

{$APPTYPE GUI}

uses
  System.SysUtils, Classes;

var
  InStream, OutStream: TFileStream;
const
  InFile = 'E:\TempFiles\TestFile.txt';

var
  OutFile: string;

begin
  OutFile := ChangeFileExt(InFile, '.bak'); 

  InStream := TFileStream.Create(InFile, fmOpenRead);
  OutStream := TFileStream.Create(OutFile, fmCreate);
  OutStream.CopyFrom(InStream, InStream.Size);
  OutStream.Free;
  InStream.Free;
end.