Fórum OpenDialog Como editar os Botoes de Abrir e Cancelar? #449159

23/07/2013

0

Bom Dia!

Queria saber se tem como Editar os Botoes do OpenDialog, tipo Quando eu Clicar para abrir o OpenDialog ele da duas opções
"Abrir" e "Cancelar" queria colocar para quando o usuário Clicar em "Cancelar" toda a operação fosse cancelada.
Eduardo Mendonça

Eduardo Mendonça

Responder

Post mais votado

25/07/2013

Acabei de testar o seguinte:
if OpenDialog1.Execute then
	ShowMessage('Abriu um arquivo.')
else
	ShowMessage('Cancelou a operação.')

Se selecionar um arquivo, cai na primeira mensagem. Se cancelar, cai na segunda.
Não tive problemas.

Joel Rodrigues

Joel Rodrigues
Responder

Gostei + 1

Mais Posts

23/07/2013

Jefferson Rudolf

if OpenDialog.Execute then
begin
//coloque a condição caso o usuario cancelar não acontece nada.
end;
Responder

Gostei + 0

23/07/2013

Eduardo Mendonça

if OpenDialog.Execute then
begin
//coloque a condição caso o usuario cancelar não acontece nada.
end;


deste modo logo quando ele analisar o if vai cair no cancela não da.
Responder

Gostei + 0

23/07/2013

Joel Rodrigues

Eu creio que a solução que o amigo deu acima sirva para essa situação. Por que o código passaria direto para o Cancelar?
Dê um exemplo de como está seu código, aí podemos lhe ajudar a chegar na solução mais adequada.
Responder

Gostei + 0

23/07/2013

Eduardo Mendonça

Assim o sistema tem uma parte que o usuário pode add um arquivo a uma pasta ai abre o OpenDialog onde ele pode escolher o arquivo certo, ai si ele não quiser mas add o arquivo e clicar em cancelar o banco fica em modo e edição / inserção correto
ai eu quero colocar para se ele for add o arquivo ele clicar em "Abrir" e se ele desistir ele clica em "cancelar" e saia do modo de edição / inserção.

o codigo de OpenDialog
procedure TfrmVisualizadorProcessos.opdNomeArquivoSelectionChange(Sender: TObject);
begin
    if (opdNomeArquivo.FileName <> '') then
edtProcuraArquivo.Text := opdNomeArquivo.FileName;
end;// Fim do evendo opdNomeArquivoSelectionChange
Responder

Gostei + 0

23/07/2013

Eduardo Mendonça

Eu esatva pensando algo com uma case
procedure TfrmVisualizadorProcessos.opdNomeArquivoSelectionChange(Sender: TObject);
begin
   case opdNomeArquivo.Execute of

   Botão de Canelar: {não sei a referencia} btnCancelarClick(Sender); 
   Botão de Abrir  : {não sei a referencia} edtProcuraArquivo.Text := opdNomeArquivo.FileName;
end;
Responder

Gostei + 0

23/07/2013

Joel Rodrigues

Creio que seja algo da seguinte forma que você precisa:
if opdNomeArquivo.Execute then//se clicar em Abrir
begin
	if opdNomeArquivo.FileName <> '' thn
	begin
		//fazer alguma coisa no dataset
		dataset.Post; //
	end
	else
		dataset.Cacel; //cancela a edição
	end;
end
Responder

Gostei + 0

23/07/2013

Francisco Macário

Use o retorno de OpenDialog.Execute (bolean) e não o FileName.
Responder

Gostei + 0

23/07/2013

Eduardo Mendonça

Creio que seja algo da seguinte forma que você precisa:
if opdNomeArquivo.Execute then//se clicar em Abrir
begin
	if opdNomeArquivo.FileName <> '' thn
	begin
		//fazer alguma coisa no dataset
		dataset.Post; //
	end
	else
		dataset.Cacel; //cancela a edição
	end;
end


Não deu certo!

Responder

Gostei + 0

23/07/2013

Joel Rodrigues

Cara, poste seu código aqui. Mas veja só. SE OpenDialog.Execute ENTÃO o cara clicou em abrir o arquivo. SENÃO, ele mandou cancelar. A partir disso você consegue fazer o que quer.
Responder

Gostei + 0

23/07/2013

Francisco Macário

Um exemplo:


procedure Teste;
begin
 ClientDataSet1.Append;
 ClientDataSet1.FieldByName('ID').AsInteger := iID;

  if NOT opdNomeArquivo.Execute then
  begin
    ClientDataSet1.Cancel;
    Exit;
  end;

  ClientDataSet1.FieldByName('').AsString := opdNomeArquivo.filename;
  ClientDataSet1.Post;

end
Responder

Gostei + 0

23/07/2013

Joel Rodrigues

Mesmo clicando em Cancelar ele não entra no IF?
Responder

Gostei + 0

23/07/2013

Eduardo Mendonça

não
Responder

Gostei + 0

23/07/2013

Eduardo Mendonça

é assim
Código de Add item não influencia + só para entender
procedure TfrmVisualizadorProcessos.btnNovoClick(Sender: TObject);
begin  {Botão para Add nó na arvore e no banco de dados}
  AddNo(ntFile);    {Isso Chama um  DataModuleGeral.tbArquivo.Append; e um  opdNomeArquivo.Execute;}  
end;// Fim btnNovo OnClick


e ai aparece a tela de escolher o arquivo e la em baixo "abrir" e "Cancelar"
Quando Clica em "abrir" ele copia o caminho e ate ai tudo beleza e se o usuário clicar em cancelar tem que cancelar
tem que cancelar o Append

ai tem o código do evento SelectionChange
procedure TfrmVisualizadorProcessos.opdNomeArquivoSelectionChange(Sender: TObject);
begin

  if (opdNomeArquivo.FileName <> '') then
    edtProcuraArquivo.Text := opdNomeArquivo.FileName  // <=== essa 

end;// Fim do evendo opdNomeArquivoSelectionChange

que quando o usuário aperta em "abrir" executa a linha acima marcada se o "opdNomeArquivo.FileName <> ''"
e se o usuário aperta em "cancelar" preciso que ele execute o comando Cancelar
btnCancelarClick(Self);
Responder

Gostei + 0

25/07/2013

Eduardo Mendonça

Ajuda :(
Responder

Gostei + 0

25/07/2013

Francisco Macário

Ajuda :(


Se puder coloque o codigo de "AddNo(ntFile)"
Responder

Gostei + 0

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

Aceitar