Fórum O que há de errado com este código???? #256751

31/10/2004

0

procedure TfrmMenu.CapturarPatch(FCaption, FolderName: string);
var
BrowseInfo: TBrowseInfo;
ItemIDList: PItemIDList;
ItemSelected : PItemIDList;
NameBuffer: array[0..MAX_PATH] of Char;
WindowList: Pointer;
IniFile: TRegIniFile;
Result: boolean;
begin
// Função lógica que recebe dois parâmetros um para o rótulo da caixa de seleção de
// diretório presente na unit ShlObj declarada acima e o outro por referência retorna
// uma String com o diretório novo e a escreve na chave correspondente no Registro,
// mas apenas se selecionar OK na caixa de seleção de diretório.
itemIDList := nil;
FillChar(BrowseInfo, SizeOf(BrowseInfo), 0);
BrowseInfo.hwndOwner := Handle;
BrowseInfo.pidlRoot := ItemIDList;
BrowseInfo.pszDisplayName := NameBuffer;
BrowseInfo.lpszTitle := PChar(FCaption);
BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
WindowList := DisableTaskWindows(0);
try
ItemSelected := SHBrowseForFolder(BrowseInfo);
Result := ItemSelected nil;
finally
EnableTaskWindows(WindowList);
end;

if Result then
begin
SHGetPathFromIDList(ItemSelected,NameBuffer);
FolderName := NameBuffer;
end;
end;


Estou utilizando assim:

CapturarPatch(´..::Selecione o Diretório do Banco::..´,caminhoBase);

[color=red:7df7ceb3bc]por quê o caminhoBase retorna vazio mesmo que eu clique no ok???[/color:7df7ceb3bc]


Emir Neto

Emir Neto

Responder

Posts

01/11/2004

Gilvan

Esperimente alterar
de:

procedure TfrmMenu.CapturarPatch(FCaption, FolderName: string)

para

procedure TfrmMenu.CapturarPatch(FCaption:String; var FolderName: string)


Responder

Gostei + 0

01/11/2004

Emir Neto

Muito obrigado Gilvan, funcionou perfeitamente.
Paz Profunda.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar