Domanda

Attualmente si utilizza TOpenTextFileDialog in quanto ha la possibilità codifiche, ma sotto Vista appare utilizzando la finestra di stile aperto più vecchio. Mi piacerebbe la nuova finestra di dialogo aperta stile, ma con un combobox codifica che posso riempire con stringhe personalizzate. Fondamentalmente voglio l'esatto finestra aperta che Notepad mostra sotto Vista. Naturalmente ho anche bisogno il corrispondente finestra di dialogo Salva come bene.

Ho fatto qualche ricerca e sembra che la bandiera OFN_ENABLETEMPLATE fa sì che il comune di dialogo Vista per cadere di nuovo al vecchio stile. Purtroppo questo è anche la bandiera che permette al TOpenTextFileDialog modificare la finestra per aggiungere il combobox codifiche (se ho capito le cose per bene.)

Qualcuno ha un suggerimento su come ottenere ciò che voglio in Vista, ma ancora farlo funzionare sotto XP? Suppongo che Windows 7 avrà lo stesso problema. Sto utilizzando D2009. Grazie per eventuali suggerimenti o aiutare!

È stato utile?

Soluzione

Con Vista è stato introdotto un nuovo modo di trattare con finestre di dialogo, per ulteriori informazioni Google per la IFileDialog interfaccia o dare un'occhiata a questo post del blog . Come dici tu te stesso, utilizzando il OFN_ENABLETEMPLATE bandiera fa sì che il comune di dialogo Vista per cadere di nuovo al vecchio stile.

Con Delphi 2007 e il 2009 è possibile utilizzare il TFileOpenDialog e TFileSaveDialog nel Vista Finestre di dialogo Categoria Componenti. Per rendere l'applicazione compatibile con le versioni pre-Vista di Windows si dovrebbe continuare a utilizzare il TOpenTextFileDialog per chi, e verificare in fase di esecuzione se siete su Vista e in grado di utilizzare le nuove finestre di dialogo:

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

Ora avete solo bisogno di aggiungere la personalizzazione alla finestra di dialogo Vista. Il post sul blog mostra come per fare questo, con l'aggiunta di un gestore per OnExecute della finestra (in quanto nel momento in cui questo è chiamato il Dialog interfaccia è stato istituito già), l'interrogazione del IFileDialogCustomize membro della finestra di file per il <= > interfaccia, e usando questo per aggiungere i controlli aggiuntivi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top