Criar sub-diretório no diretório do EXE no Delphi

Inclua na seção uses: FileCtrl, SysUtils

Primeiramente vamos conhecer algumas funções do Delphi
que precisaremos usá-las:



ParamStr(Indice) - Retorna valores passados 
na linha de comando quando executamos o programa. Se o valor 
de Indice for 0 (zero) será retornado o caminho+nome do EXE. 

ExtractFilePath(NomeArq) - Retorna o caminho (path) do 
nome de arquivo informado. 
  Exemplo: 
    S := 'C:\NomeDir\Programa.exe';
    ExtractFilePath(S); { retorna: 'C:\NomeDir\' }

DirectoryExists(CaminhoDir) - Retorna true se o diretório 
informado existe. False em caso contrário.

CreateDir(CaminhoDir) - Tenta criar o diretório informado.
Se conseguir, retorna true. Caso contrário retorna false.

Agora que sabemos como trabalham estas funções, vamos
escrever uma função que precisamos para criar um 
sub-diretório conforme proposto.

function CriaSubDir(const NomeSubDir: string): boolean;
var
  Caminho: string;
begin
  Caminho := ExtractFilePath(ParamStr(0)) + NomeSubDir;
  if DirectoryExists(Caminho) then
    Result := true
  else
    Result := CreateDir(Caminho);
end;

Exemplo de uso:

- Chame a função no evento OnCreate do form:

procedure TForm1.FormCreate(Sender: TObject);
begin
  if not CriaSubDir('MeuSubDir') then
    ShowMessage('Não foi possível criar o sub-diretório MeuSubDir.');
end;