Entrar    Registrar

Duvida com o TOpenDialog.

Programação Delphi e Pascal

Moderadores: guest2003, 51

  • Autor
    Mensagem

Duvida com o TOpenDialog.

Mensagempor leo_alves_br » 17 Fev 2009 10:33

Olá a todos, sou iniciante com o Delphi e estou precisando de uma ajuda com o TOpenDialog.

O meu problema:
- Preciso que quando eu execute o TOpenDialog, ele seja direcionado para a pasta onde o programa foi instalado, sempre!
- O problema eh que não sei onde será instalado o programa, pois sabendo-se bastava utilizar a opção InitialDir com ForceCurrentDirecotry := True.
- Isso se deve a fato deu utilizar o InstallShield para a pessoa escolher o diretorio de instalação.

Alguem pode me passar o Código para descobrir a pasta de instalação.

Obrigado
leo_alves_br
Bit
 
Mensagens: 27
Registrado em: 01 Mai 2008 09:32

Mensagempor Jorge_Francisco » 17 Fev 2009 12:21

ExtractFilePath( ParamStr(0) )

ParamStr retorna strings contendo os paramêtros(argumentos). Por exemplo ao colocar 0(zero) na função é retornado o argumento que indica a localização do executável, caso coloque 1 em ParamStr e arraste um arquivo para cima do executável ele mostrará o caminho do arquivo, uso muito ao associar uma extensão ao meu programa, mas quem encarrega-se de enviar o caminho é o registro do Win.

A função ExtractFilePath extrai o pasta do caminho indicado.

Vlw
Editado pela última vez por Jorge_Francisco em 17 Fev 2009 12:30, em um total de 1 vez.
Avatar do usuário
Jorge_Francisco
Dword
 
Mensagens: 1009
Registrado em: 12 Out 2006 09:53
Localização: Rio de Janeiro

Mensagempor Jorge_Francisco » 17 Fev 2009 12:27

Em C++ :

Código: Selecionar todos

OpenDialog1->InitialDir = ExtractFilePath( ParamStr(0) ) ;


if(OpenDialog1->Execute())
{
//Seu código aqui
}
Avatar do usuário
Jorge_Francisco
Dword
 
Mensagens: 1009
Registrado em: 12 Out 2006 09:53
Localização: Rio de Janeiro

Mensagempor leo_alves_br » 17 Fev 2009 13:36

Ajuda perfeita Jorge.

em Delphi o Código ficou assim:

unit principal;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
OpenDialog1: TOpenDialog;
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
caminho : String;

begin

caminho := ExtractFilePath(ParamStr(0));
Edit1.Text := caminho;
OpenDialog1.InitialDir := ExtractFilePath(ParamStr(0));
OpenDialog1.Execute;

end;

end.
leo_alves_br
Bit
 
Mensagens: 27
Registrado em: 01 Mai 2008 09:32

Mensagempor Wagner de Queiroz » 18 Fev 2009 10:43

Eu prefiro uma outra abordagem a moda Delphi:


Código: Selecionar todos
OpenDialog1.InitialDir := ExtractFilePath(Application.exename);


O Objeto TApplication é o executavel do programa.

Application.Terminate por exemplo encerra a aplicacao corrente.
Seja Livre, Use Linux
Avatar do usuário
Wagner de Queiroz
Word
 
Mensagens: 872
Registrado em: 11 Out 2006 13:38
Localização: Barueri-SP

Voltar para Delphi e Pascal

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron