Pergunta

Eu uso atualmente o TOpenTextFileDialog, pois tem a opção de Codificações, mas no Vista ele aparece usando o estilo de diálogo mais velho aberto. Eu gostaria que o novo diálogo aberto estilo, mas com um combobox codificação que eu posso preencher com seqüências personalizadas. Basicamente eu quero o diálogo exato aberto que mostra o bloco de notas sob Vista. Claro que eu também precisa do correspondente de economia de diálogo também.

Já fiz algumas pesquisas e parece que a bandeira OFN_ENABLETEMPLATE faz com que o diálogo comum Vista a cair de volta para o velho estilo. Infelizmente isso também é a bandeira que permite que o TOpenTextFileDialog modificar a janela para adicionar o combobox codificações (se eu entender as coisas corretamente.)

Alguém tem uma sugestão sobre como conseguir o que eu quero no Vista, mas ainda têm que trabalhar sob XP? Presumo que o Windows 7 terá o mesmo problema. Estou usando D2009. Obrigado por todas as sugestões ou ajuda!

Foi útil?

Solução

Com Vista foi introduzida uma nova forma de lidar com diálogos de arquivo, para mais informações google para a interface IFileDialog ou ter um olhar para este post . Como você diz a si mesmo, usando a bandeira OFN_ENABLETEMPLATE faz com que o diálogo comum Vista a cair de volta para o velho estilo.

Com o Delphi 2007 e 2009 você pode usar o TFileOpenDialog e TFileSaveDialog no Vista Diálogos categoria componentes. Para tornar a sua aplicação compatível com versões pré-Windows Vista você deve continuar usando o TOpenTextFileDialog para aqueles, e verificar em tempo de execução se você estiver em Vista e pode usar os novos diálogos:

if Win32MajorVersion >= 6 then begin
  // use TFileOpenDialog
  // ...
end else begin
  // use TOpenTextFileDialog
  // ...
end;

Agora você só precisa adicionar a personalização para o diálogo Vista. O post mostra como para fazer isso, adicionando um manipulador para OnExecute da caixa de diálogo (porque no momento em que este é chamado a interface IFileDialog foi configurado já), consultando o membro Dialog do diálogo de arquivo para a interface IFileDialogCustomize, e usar isso para adicionar os controles adicionais.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top