TOpenDialog和空间

时间:2009-12-29 00:52:12

标签: delphi directory spaces lazarus

我有一个关于Lazarus的项目,我想使用gcc编译源代码,为此我有一个名为TOpenDialog的{​​{1}}和一个名为OpenDialog1的{​​{1}}。< / p>

我用这段代码打电话给gcc:

TProcess

它编译好(Lazzarus上的项目),但是当我测试它时,通过尝试编译位于AProcess的源test.c,我在procedure TFormMain.btCompileClick(Sender: TObject); begin if OpenDialog1.Execute then begin AProcess := TProcess.Create(nil); try AProcess.CommandLine := 'gcc.exe ' + OpenDialog1.FileName; AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes]; AProcess.Execute; OutputMemo.Lines.BeginUpdate; OutputMemo.Lines.Clear; OutputMemo.Lines.LoadFromStream(AProcess.Output); OutputMemo.Lines.EndUpdate; finally AProcess.Free; end; end; end; 上得到了这个:

  

'C:\ Documents':没有这样的文件或目录

然后,C:\Documents and Settings\Nathan Campos\Desktop没有得到空格的完整路径,或者gcc无法在带空格的文件夹中找到它。

有任何建议可以帮助我吗?

1 个答案:

答案 0 :(得分:5)

它需要在引号中,因此空格不会绊倒它。像这样:

AProcess.CommandLine := 'gcc.exe "' + OpenDialog1.FileName + '"';

这应该有效。