Jump to content
Fórum Script Brasil
  • 0

Abrir Diretório


luizf
 Share

Question

Ola pessoal, sou novo no site.

É meu primeiro tópico e tambem sou novo em delphi e autodidata.

Preciso da ajuda dos senhores e senhoras.

Estou fazendo um programinha para rodar direto do cd, e preciso colocar no form 2 botões um para abrir um diretorio ao ser clicado, ou seja, abrir o windows explorer no diretorio especifico, mas esse diretorio pode ser do hd e/ou do cd, OK, outro botão para copiar para a area de transferencia do windows o que estiver escreto em um Edit .

Por favor me ajundem me dando essas dicas.

Muito Obrigado

Olha pessoal, se não puderem me dar esta dica, então me dê a seguinte:

Como esse programinha vai rodar direto do cd, gostaria que ele reconhecesse o drive em que ele esta sendo rodado.

Por exemplo:

Aqui em casa tenho o drive de CD = F:\ e o DVD = G:\.

Então, só como exemplo, se eu rodasse ele, aqui em casa no drive de CD. Eu clicaria num button e teria a resposta em edit = F, mas se fosse rodado na casa de outra pessoa poderia ser D:\ ou E:\ (é os dois que a maioria usa).

Entenderam, então o que preciso, é que o programa reconheça o drive em que ele esta sendo rodado.

Muito Obrigado.

E se souberem de um outro forum sobre o assunto (Delphi), me passa o endereço.

T+ :)

Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Opa

Para abrir o explorer numa pasta ->

procedure TForm1.Button1Click(Sender: TObject);
var
  st : string;
begin
  st:='Explorer "C:\arquivos de programas"';
  WinExec(PAnsiChar(st),SW_ShowNormal)
end;
Para copiar texto de uma edit para área de transferencia->
Edit1.CopyToClipBoard;
Para saber o drive que está o programa->
ExtractFileDrive(paramstr(0));

Tá me testando é?

Abraço.

Link to comment
Share on other sites

  • 0

Obrigado pela dica Thales.

Não estou te testando não, é que sou novato mesmo.

Vou ver o que consigo fazer com a tua dica.

Agora, quanto a abrir o explorer numa pasta especifica, não posso usar

st:='Explorer "C:\arquivos de programas"';

Pois, a pasta que desejo abrir não esta no disco rigido, e sim no cd que esta rodando o programa, entaum, não sei o drive, por isso quis saber como descobrir o drive em que esta sendo rodado o programa, para primeiro descobrir o drive, e juntar o drive com o caminha da pasta, por exemplo:

Drive = F:\

Pasta = "\Programas\Teste"

Entaum ficaria st:='Explorer "F:\Programas\Teste"';

Não entendi, muito bem como usar o ExtractFileDrive(paramstr(0));, onde eu coloco este codigo para descobrir o drive que esta sendo rodado o programa.

Ok, vou ver se consigo fazer isso usando a tua dica, mas se puder me dar mais dicas disso, fico grato.

Muito Obrigado e T+ :D

Link to comment
Share on other sites

  • 0

Opa, vamos supor que seu CD tenha uma pasta chamada dados, então para abri-la ficaria assim - >

procedure TForm1.Button1Click(Sender: TObject);
var
  st : string;
begin
  st:='Explorer "' + ExtractFileDrive(ParamStr(0)) + '\Dados"';
  WinExec(PAnsiChar(st),SW_ShowNormal);
end;

O ExtractFileDrive apenas pega uma string que representa o caminho de um arquivo ou pasta e copia dela apenas a porção que identifica o drive ->

ExtractFileDrive('C:\Dados\Mulheres\Ellen Rocche\Ellen.jpg') = 'C:';

Ok?

Link to comment
Share on other sites

  • 0

Ola Thales.

Fiz assim:

procedure TForm1.Button2Click(Sender: TObject);

begin

// era para copiar para a area de transferencia

Edit1.CopyToClipBoard;

end;

Mas, não copiou.

Criei um txt para colar e fazer o texte, mas colou no txt o que eu tinha copiado antes de clicar no button.

O que aconteceu?

Para fazer o inverso, funcionou.

procedure TForm1.Button3Click(Sender: TObject);

begin

// copia da area de transferencia

edit1.PasteFromClipboard;

end;

Eu copiei um texto qualquer e colei no edit clicando no button, deu certo, mas copiar do edit, não.

Não entendi.

T+ .

Link to comment
Share on other sites

  • 0

Iniciante, c sabe como é.

Mas agora funcionou, muito obrigado.

Fiz um teste com copiar colar e recortar.

procedure TForm1.Button2Click(Sender: TObject);

begin

// era para copiar para a area de transferencia

Edit1.SelStart:=0;

Edit1.SelLength:=length(edit1.text);

Edit1.CopyToClipBoard;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

// copia da area de transferencia

edit2.PasteFromClipboard;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

// recorta para a area de transferencia

Edit3.SelStart:=0;

Edit3.SelLength:=length(edit3.text);

Edit3.CutToClipboard;

end;

Belezinha.

Voce não usa o Skype e/ou MSN, me passa por PM.

T+

.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.8k
    • Total Posts
      648.7k
×
×
  • Create New...