Fórum ShellApi - URGENTE #180743
08/09/2003
0
Em relação a linha de código abaixo tenho que acrescentar o ShellApi na cláusula USES. O que acontece é no WINDOWS 2000 funciona normal.. No WINDOWS 98 aparece uma mensagem de erro do tipo violação de acesso no Shell. Isto não seria incompatibilidade do Shell ?????
var
Dados: TSHFileOpStruct;
begin
{ Faz cópia de arquivo de uma pasta para outra pasta
ArqFigura - Parâmetro que possue o caminho e arquivo selecionado
sPathFile - Parãmetro que possue o caminho para ser copiado
}
FillChar(Dados,SizeOf(Dados), 1);
with Dados do
begin
wFunc := FO_COPY;
pFrom := PChar(sArqFigura);
pTo := PChar(sPathFile);
fFlags:= FOF_ALLOWUNDO;
end;
SHFileOperation(Dados);
end;
var
Dados: TSHFileOpStruct;
begin
{ Faz cópia de arquivo de uma pasta para outra pasta
ArqFigura - Parâmetro que possue o caminho e arquivo selecionado
sPathFile - Parãmetro que possue o caminho para ser copiado
}
FillChar(Dados,SizeOf(Dados), 1);
with Dados do
begin
wFunc := FO_COPY;
pFrom := PChar(sArqFigura);
pTo := PChar(sPathFile);
fFlags:= FOF_ALLOWUNDO;
end;
SHFileOperation(Dados);
end;
Roger_prog
Curtir tópico
+ 0
Responder
Posts
09/09/2003
Eduardo_chiletto
:D
Faz o seguinte: Essa rotina é realmente terrivelmente perigosa. Outro dia, precisei fazer um programa de backup e me ferrei com ela. Daí, resolvi fazer com TMemoryStream(se alguém tiver uma ideia melhor, favor, me avise)
function Copiar(Destino, Origem : String);
var
Arq : TMemoryStream;
Nome_do_Arquivo : String;
begin
Nome_do_Arquivo := ExtractFileName(Destino);
// obs.: não me lembro se tem que criar a variável. Ex. Arq := TMemoryStream.create... Queira testar para saber.
Arq.LoadFromFile(Destino);
Arq.SaveToFile(Origem + ´\´ + Nome_do_Arquivo);
pronto. Isso vai resolver seu problema. Roda em todo tipo de sistema operacional.
end;
Faz o seguinte: Essa rotina é realmente terrivelmente perigosa. Outro dia, precisei fazer um programa de backup e me ferrei com ela. Daí, resolvi fazer com TMemoryStream(se alguém tiver uma ideia melhor, favor, me avise)
function Copiar(Destino, Origem : String);
var
Arq : TMemoryStream;
Nome_do_Arquivo : String;
begin
Nome_do_Arquivo := ExtractFileName(Destino);
// obs.: não me lembro se tem que criar a variável. Ex. Arq := TMemoryStream.create... Queira testar para saber.
Arq.LoadFromFile(Destino);
Arq.SaveToFile(Origem + ´\´ + Nome_do_Arquivo);
pronto. Isso vai resolver seu problema. Roda em todo tipo de sistema operacional.
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)