Sugerir nome do arquivo no SaveDialog
no componente SaveDialog, como fazer para sugerir um nome para o arquivo que vai ser salvo?
e se for possível tem como obrigar o usuário a salvar o arquivo apenas com o nome sugerido?
e se for possível tem como obrigar o usuário a salvar o arquivo apenas com o nome sugerido?
Raserafim
Curtidas 0
Respostas
Marco Salles
29/07/2006
apesar de voce não ter , em alguma situações ´correspondido´ a minha assinatura :cry: :cry: :cry: :cry: :cry:
segue ainda que voce pode pre-definir o diretorio
[b:f10d8f4e30]saveDialog1.InitialDir:=´Seu Diretorio.. etc...´[/b:f10d8f4e30]
procedure TForm1.Button2Click(Sender: TObject); var NomeDoArquivo:String; begin saveDialog1.InitialDir:=´C:\´; //********Opcional***** NomeDoArquivo:=´OLA´; saveDialog1.FileName:=´OLA´; if savedialog1.Execute Then begin While (pos(NomeDoArquivo,saveDialog1.FileName)<= 0) do begin saveDialog1.FileName:=NomeDoArquivo; Showmessage(´O Nome Do Arquivo Tem Que ser : ´+NomeDoArquivo); if not (savedialog1.Execute) Then begin NomeDoArquivo:=´´; Break; end end; end else NomeDoArquivo:=´´; if pos(NomeDoArquivo,saveDialog1.FileName)> 0 then Showmessage(´Gravar´) else Showmessage(´cancelado´); end;
segue ainda que voce pode pre-definir o diretorio
[b:f10d8f4e30]saveDialog1.InitialDir:=´Seu Diretorio.. etc...´[/b:f10d8f4e30]
GOSTEI 0
Marco Salles
29/07/2006
outra opção , entre muitas que poderão aparecer..
a diferençã desta para a primeira que esta ultima compara o ´valor´ do que foi digitado na caixa do dialogo e não somente a posição da string ´OLA´ no SaveDialog1.FileName
Por exemplo , se voce tiver Um Caminho (Com a pasta) ´OLA´ no primeiro exemplo , independentemente do que for digitado para o nome do Arquivo a Instrução
pos(NomeDoArquivo,saveDialog1.FileName)<= 0 sera falsa..
Alem disso , usando algumas funçoes , pode-se desconsiderar Maiscula de minusclas e vice-versa.
procedure TForm1.Button1Click(Sender: TObject); var NomeDoArquivo:String; NomeDigitado:String; tamanho:integer; begin saveDialog1.InitialDir:=´C:\´; //********Opcional***** NomeDoArquivo:=´OLA´; saveDialog1.FileName:=´OLA´; if savedialog1.Execute Then begin NomeDigitado:=Copy(savedialog1.filename, length(savedialog1.FileName)-Length(NomeDoArquivo)+1, length(NomeDoArquivo)); While NomeDigitado <> NomeDoArquivo do begin saveDialog1.FileName:=NomeDoArquivo; Showmessage(´O Nome Do Arquivo Tem Que ser : ´+NomeDoArquivo); if not (savedialog1.Execute) Then begin NomeDoArquivo:=´´; Break; end else NomeDigitado:=Copy(savedialog1.filename, length(savedialog1.FileName)-Length(NomeDoArquivo)+1, length(NomeDoArquivo)); end; end else NomeDoArquivo:=´´; if pos(NomeDoArquivo,saveDialog1.FileName)> 0 then Showmessage(´Gravar´) else Showmessage(´cancelado´);
a diferençã desta para a primeira que esta ultima compara o ´valor´ do que foi digitado na caixa do dialogo e não somente a posição da string ´OLA´ no SaveDialog1.FileName
Por exemplo , se voce tiver Um Caminho (Com a pasta) ´OLA´ no primeiro exemplo , independentemente do que for digitado para o nome do Arquivo a Instrução
pos(NomeDoArquivo,saveDialog1.FileName)<= 0 sera falsa..
Alem disso , usando algumas funçoes , pode-se desconsiderar Maiscula de minusclas e vice-versa.
GOSTEI 0
Raserafim
29/07/2006
mais uma vez valeu marco salles pelas sempre prestativas respostas.
GOSTEI 0