Nell'applicazione Delphi, vorrei aggiungere i parametri della riga di comando per impostare automaticamente alcuni parametri nella schermata di accesso.Suggerimenti su come definire i parametri della riga di comando
Attualmente ho una schermata di accesso in cui l'utente imposta alcune informazioni (come server, database, utente, password, AuthenticationType, AUtoLogin, ...).
Uso MRU per popolare i campi. Comunque, nelle grandi organizzazioni, c'è la necessità di non lasciare che l'utente scelga alcuna informazione. Per questo, la cosa più semplice che posso fare nel mio scenario è usare i parametri della riga di comando.
La mia domanda è come suggerisci di scegliere i parametri della riga di comando? Voglio dire, dovrei andare per un approccio "posizione" o per qualche approccio "tag", ad esempio:
MyProject.exe -s:MYSERVER -d:DATABASE
o
MyProject.exe MYSERVER DATABASE
Nel primo caso ho bisogno di ciclo in tutti i parametri utilizzando ParamStr
e "decodifica" cosa sono. Se iniziano con "-s:" so che quello che segue è il nome del server. Il secondo è più veloce e sporco ma potrebbe essere più efficace.
Come gestire i parametri che contengono uno "spazio"? È possibile intercettarli automaticamente con ParamStr o dovrei gestirli tutti manualmente? (Intendo c'è un modo per dire automaticamente ParamStr che un parametro che contiene uno spazio (come l'utilizzo di parentesi graffe o qualcosa del genere).
Qual è la migliore pratica?
Utilizzare le virgolette doppie per racchiudere un parametro che contiene spazi. –
Non so perché ho provato con tutte le combinazioni ma non con virgolette doppie !. Grazie. Ho notato una cosa interessante. Se scrivo: "-s: Nome server" e -s: "Nome server" sono considerati uguali da ParamStr. Questo è molto buono, perché scrivere "-s: Nome server" non è facile da usare come -s: "Nome server". – LaBracca
1 ° approccio è più pratico e facile per te e per gli utenti finali ..per "decodificare" params puoi usare 'TStringList' (strip' -' simboli all'inizio di ogni riga) e usare la sua proprietà 'Values' con' NameValueSeparator' impostato a ':' – teran