Fórum Sugerir nome do arquivo no SaveDialog #326454

29/07/2006

0

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?


Raserafim

Raserafim

Responder

Posts

29/07/2006

Marco Salles

apesar de voce não ter , em alguma situações ´correspondido´ a minha assinatura :cry: :cry: :cry: :cry: :cry:

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]


Responder

Gostei + 0

30/07/2006

Marco Salles

outra opção , entre muitas que poderão aparecer..


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.


Responder

Gostei + 0

04/08/2006

Raserafim

mais uma vez valeu marco salles pelas sempre prestativas respostas.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar