Página 1 de 1
Duvida com o TOpenDialog.

Enviado:
17 Fev 2009 10:33
por leo_alves_br
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

Enviado:
17 Fev 2009 12:21
por Jorge_Francisco
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

Enviado:
17 Fev 2009 12:27
por Jorge_Francisco
Em C++ :
- Código: Selecionar todos
OpenDialog1->InitialDir = ExtractFilePath( ParamStr(0) ) ;
if(OpenDialog1->Execute())
{
//Seu código aqui
}

Enviado:
17 Fev 2009 13:36
por leo_alves_br
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.

Enviado:
18 Fev 2009 10:43
por Wagner de Queiroz
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.