如何强制目录编辑框大写的第一个字符?

时间:2012-08-06 16:46:36

标签: inno-setup

在运行Inno Setup时,我需要确保安装目录的驱动器号在用户输入后是大写的。

原因:Apache的mod_xsendfile需要它。如果以小写形式输入驱动器号,则它不起作用(在httpd.conf中)。只有驱动器号必须更改;如果路径中的任何字符与文件系统中的路径不匹配,则Apache无法处理它(尽管Windows不区分大小写)。

如何使Inno Setup {app}不变自动将其第一个字符大写?

1 个答案:

答案 0 :(得分:2)

这段代码应该保持目录编辑框的第一个字母始终为大写:

[Code]
procedure DirEditChange(Sender: TObject);
var
  S: string;
  SelStart: Integer;
  SelLength: Integer;  
begin
  S := WizardForm.DirEdit.Text;
  if Length(S) > 0 then
  begin
    SelStart := WizardForm.DirEdit.SelStart;
    SelLength := WizardForm.DirEdit.SelLength;
    Insert(UpperCase(S[1]), S, 2);  
    Delete(S, 1, 1);
    WizardForm.DirEdit.Text := S;
    WizardForm.DirEdit.SelStart := SelStart;
    WizardForm.DirEdit.SelLength := SelLength;
  end;
end;

procedure InitializeWizard;
begin
  WizardForm.DirEdit.OnChange := @DirEditChange;
end;