TFileOpenDialog

di il
5 risposte

TFileOpenDialog

Salve
Esiste la possibilita' di impedire la selezione di file locali ?

Avrei la necessita di obbligare l'utente a selezionare file solo da cartelle condivise in rete

5 Risposte

  • Re: TFileOpenDialog

    Forse puoi provare a sfruttare l'evento OnFolderChanging, che viene sollevato quando l'utente cambia cartella all'interno della finestra di dialogo: la funzione accetta come parametro (passato come riferimento, quindi modificabile) CanChange, di tipo booleano, che può essere reimpostato a False se si vuole impedire il cambio di directory selezionato (avendo cura di selezionare all'avvio una DefaultFolder valida per i principi stabiliti).

    Dovresti ovviamente verificare se la selezione di volta in volta è compiuta su cartella locale o condivisa in rete, ma questo si dovrebbe evincere abbastanza facilmente.

    Controlla anche il flag della proprietà Options della finestra di dialogo.

    Ciao!
  • Re: TFileOpenDialog

    Alla fine ho optato per questa soluzione
    
        with TFileOpenDialog.Create(nil) do
        begin
          try
            Title := 'Select CAD Project File';
            Options := [fdoPathMustExist, fdoForceFileSystem];
            OkButtonLabel := 'Select';
            if (sPathProgetti.Length = 0) then sPathProgetti := 'C:\';
            DefaultFolder := sPathProgetti;
            FileName := sPathProgetti;
            if Execute then
            begin
              if TPath.IsUNCPath(FileName) then
                edtModifyCADDrowName.Text := FileName
              else
                MaxMsgBox('Attenzione!','2','Selezionare solo Path di Rete',MaxIcoConfirm,TypBtnSi, DefBtnSi);
            end;
          finally
            Free;
          end;
        end;
    
    
  • Re: TFileOpenDialog

    MircoSoft ha scritto:


    Alla fine ho optato per questa soluzione [...]
    Io davo per scontato che tu volessi controllare il tipo di percorso durante la visualizzazione della finestra di dialogo, in modo che l'utente possa ravvedersi e correggerla prima di concludere la selezione.

    In questo caso, deve ripetere l'operazione nel caso si sbagli.
  • Re: TFileOpenDialog

    L'idea iniziale era qualla..
    Cioe' mostrare soltanto i percorsi di rete ma non ho trovato esempi funzionanti in rete...
  • Re: TFileOpenDialog

    MircoSoft ha scritto:


    Cioe' mostrare soltanto i percorsi di rete ma non ho trovato esempi funzionanti in rete...
    Per mostrare solo quei percorsi, occorre averli tutti ben definiti, ma questo significherebbe anche inventariare tutti i possibili percorsi selezionabili in rete, cosa che sarebbe eccessivamente dispendiosa e richiederebbe una quantità di tempo esagerata visto che le risorse di rete disponibili potrebbero essere virtualmente infinite.

    Usando però gli eventi che avevo indicato, avevi un modo per intervenire in diretta nella selezione di un percorso, controllando che fosse corretto e consentendo quindi all'utente di "corregge il tiro" facendo un'altra selezione prima di chiudere la finestra, senza dover ripetere l'operazione da capo.

    Ciao!
Devi accedere o registrarti per scrivere nel forum
5 risposte