António44 Postado Dezembro 19, 2008 Denunciar Share Postado Dezembro 19, 2008 Preview com mais de uma página, apresenta um erro da Classe: EFCreateError com a seguinte mensagem: Cannot Create file [][][] alguém pode ajudar-me??Agradeço.Abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Dezembro 19, 2008 Denunciar Share Postado Dezembro 19, 2008 António44, eu já comentei no seu outro post, mas já que você abriu um novo tópico, vou repetir o texto aqui.Como você disse anteriormente que utiliza ainda o Delphi 3, é 99,999% de chance que seu problema seja este pelo qual eu já passei: Bug Com Quickreport 2 - D3 - veja a excelente explicação do colega Churc. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 António44 Postado Dezembro 19, 2008 Autor Denunciar Share Postado Dezembro 19, 2008 (editado) interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Db, DBTables, Grids, DBGrids, ExtCtrls, DBCtrls, ComCtrls, Buttons, StdCtrls; type TForm1 = class(TForm) DBNavigator1: TDBNavigator; DBGrid1: TDBGrid; SpeedButton1: TSpeedButton; Edit1: TEdit; DateTimePicker1: TDateTimePicker; DateTimePicker2: TDateTimePicker; DataSource1: TDataSource; Tabela: TTable; RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; RadioButton4: TRadioButton; SpeedButton2: TSpeedButton; TabelaData: TDateField; TabelaHorainicial: TStringField; TabelaHorafinal: TStringField; TabelaClube: TStringField; TabelaEscalao: TStringField; TabelaAtletas: TFloatField; TabelaEspaco: TStringField; TabelaBalneario: TFloatField; TabelaUtilizacao: TFloatField; TabelaValor: TFloatField; TabelaNota: TMemoField; TabelaDescr: TStringField; SpeedButton3: TSpeedButton; procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit2, Manygrp, Unit3; {$R *.DFM} function SetGlobalEnvironment(const Name, Value: string; const User: Boolean = True): Boolean; resourcestring REG_MACHINE_LOCATION = 'System\CurrentControlSet\Control\Session Manager\Environment'; REG_USER_LOCATION = 'Environment'; begin with TRegistry.Create do try if User then { User Environment Variable } Result := OpenKey(REG_USER_LOCATION, True) else { System Environment Variable } begin RootKey := HKEY_LOCAL_MACHINE; Result := OpenKey(REG_MACHINE_LOCATION, True); end; if Result then begin WriteString(Name, Value); { Write Registry for Global Environment } { Update Current Process Environment Variable } SetEnvironmentVariable(PChar(Name), PChar(Value)); { Send Message To All Top Window for Refresh } SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar('Environment'))); end; finally Free; end; end; { SetGlobalEnvironment } procedure TForm1.SpeedButton1Click(Sender: TObject); begin Form2.Query1.Active := false; Form2.Query1.Params[0].AsDate := DateTimePicker1.Date; Form2.Query1.Params[1].AsDate := DateTimePicker2.Date; Form2.Query1.Prepare; Form2.Query1.Active := true; Form2.QuickRep1.preview; end; procedure TForm1.SpeedButton2Click(Sender: TObject); begin ManyGrpForm.RepQuery.Active := false; ManyGrpForm.RepQuery.Params[0].AsDate := DateTimePicker1.Date; ManyGrpForm.RepQuery.Params[1].AsDate := DateTimePicker2.Date; ManyGrpForm.RepQuery.Prepare; ManyGrpForm.RepQuery.Active := true; ManyGrpForm.QuickRep.preview; end; procedure TForm1.SpeedButton3Click(Sender: TObject); begin Form3.Query1.Active := false; Form3.Query1.Params[0].AsDate := DateTimePicker1.Date; Form3.Query1.Params[1].AsDate := DateTimePicker2.Date; Form3.Query1.Prepare; Form3.Query1.Active := true; Form3.QuickRep1.preview; end; procedure TForm1.FormCreate(Sender: TObject); begin CreateDir('C:\Temp'); SetGlobalEnvironment('TMP', 'C:\Temp'); end; end.Ocolega Churc sugere isto:?pra você resolver, se você tiver os sources deste quickreport, procurepor algo como String[30]e altere para MAX_PATH que é 255, o tamanho máximo permitido para um caminho... String[MAX_PATH];Eu não sei onde estão os sources do quickreport no delphi3 :rolleyes: ..???eu tentei tb usar a variavel acima mas não sei como usa-la...falta qualquer coisa??? Editado Dezembro 19, 2008 por António44 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Dezembro 20, 2008 Denunciar Share Postado Dezembro 20, 2008 Ocolega Churc sugere isto:?pra você resolver, se você tiver os sources deste quickreport, procurepor algo como String[30]e altere para MAX_PATH que é 255, o tamanho máximo permitido para um caminho... String[MAX_PATH];Eu não sei onde estão os sources do quickreport no delphi3 :rolleyes: ..???A versão Standard não é mesmo acompanhada dos fontes.eu tentei tb usar a variavel acima mas não sei como usa-la...falta qualquer coisa???Aparentemente seria mesmo este o modo. Eu a tenho procedo basicamente da mesma forma, mas talvez fosse interessante você testar o resultado das funções antes de chamar a seguinte. Assim, se estiver havendo algum erro com uma delas você fica sabendo onde.procedure TForm1.FormCreate(Sender: TObject); begin if CreateDir('C:\Temp') then begin if not SetGlobalEnvironment('TMP', 'C:\Temp') then ShowMessage('Houve erro ao tentar modificar a variável de ambiente "TMP".'); end else ShowMessage('Não foi possível criar o ficheiro temporário') end;Voce aida tem a opção de alterar esta variável na mão, como o colega Churc também sugeriu naquele post.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 António44 Postado Dezembro 21, 2008 Autor Denunciar Share Postado Dezembro 21, 2008 A variavel tá dando erros :1 nesta linhaconst User: Boolean = True): Boolean;1 nesta linhawith TRegistry.Create do1 nesta linhaResult := OpenKey(REG_USER_LOCATION, True)1 nesta linhaRootKey := HKEY_LOCAL_MACHINE;1 nesta linhaWriteString(Name, Value); { Write Registry for Global Environment }1 nesta linha Free; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Dezembro 21, 2008 Denunciar Share Postado Dezembro 21, 2008 (editado) António44, você não comentou antes qual o erro e eu não "antenei" neste detalhe que não é aceito pelo D3:- a definição do valor default para a constante UserConsiderando que seria interessante você fazer a modificação para uso do seu programa apenas, seria conveniente que, ao finalizar o programa, você retornasse a variável ao seu estado inicial. Assim, vou postar a função corrigida e outros códigos complementares que implementei naquele meu projeto em Delphi3:uses Registry; // unit com a declaração de TRegistry // função para mudança de variáveis de ambiente function SetGlobalEnvironment(const Name, Value: string; const User: Boolean): Boolean; resourcestring REG_MACHINE_LOCATION = 'System\CurrentControlSet\Control\Session Manager\Environment'; REG_USER_LOCATION = 'Environment'; begin with TRegistry.Create do try if User then { User Environment Variable } Result := OpenKey(REG_USER_LOCATION, False) else { System Environment Variable } begin RootKey := HKEY_LOCAL_MACHINE; Result := OpenKey(REG_MACHINE_LOCATION, False); end; if Result then begin WriteString(Name, Value); { Write Registry for Global Environment } { Update Current Process Environment Variable } SetEnvironmentVariable(PChar(Name), PChar(Value)); { Send Message To All Top Window for Refresh } SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar('Environment'))); end; finally Free; end; end; { SetGlobalEnvironment } // função para obtenção do valor de variáveis de ambiente function GetGlobalEnvironment(const Name: string; const User: Boolean): string; resourcestring REG_MACHINE_LOCATION = 'System\CurrentControlSet\Control\Session Manager\Environment'; REG_USER_LOCATION = 'Environment'; var Resultado :Boolean; begin with TRegistry.Create do try if User then { User Environment Variable } Resultado := OpenKey(REG_USER_LOCATION, False) else { System Environment Variable } begin RootKey := HKEY_LOCAL_MACHINE; Resultado := OpenKey(REG_MACHINE_LOCATION, False); end; if Resultado then Result := ReadString(Name); finally Free; end; end; { GetGlobalEnvironment } procedure TForm1.FormCreate(Sender: TObject); var TMP, WinDir :String; begin TMPOld := ''; // variável declarada na sessão private do form WinDir := GetGlobalEnvironment('windir', False); // o código abaixo só irá funcionar no Windows XP e superior, abaixo destes // não deve haver problemas com nomes longos if WinDir = '%SystemRoot%' then begin TMP := GetGlobalEnvironment('TMP', False); Delete(TMP, 1, Length(WinDir)); TMPOld := GetGlobalEnvironment('TMP', True); if not SetGlobalEnvironment('TMP', 'c:\windows'+TMP, True) then ShowMessage('Não foi possível alterar a variável de ambiente "TMP"'); end; end; procedure TBrwChaves.FormDestroy(Sender: TObject); begin if TMPOld <> '' then // se variável foi alterada... SetGlobalEnvironment('TMP', TMPOld, True); end; Mas, no caso específico da variável de ambiente que armazena o caminho da pasta temporária (TMP), segue uma versão enxuta e que não muda o path padrão - apenas altera-a para conter o caminho curto (short path) fazendo uso da função da API GetShortPathName: uses Registry; // unit com a declaração de TRegistry // função para mudança de variáveis de ambiente function SetGlobalEnvironment(const Name, Value: string; const User: Boolean): Boolean; resourcestring REG_MACHINE_LOCATION = 'System\CurrentControlSet\Control\Session Manager\Environment'; REG_USER_LOCATION = 'Environment'; begin with TRegistry.Create do try if User then { User Environment Variable } Result := OpenKey(REG_USER_LOCATION, False) else { System Environment Variable } begin RootKey := HKEY_LOCAL_MACHINE; Result := OpenKey(REG_MACHINE_LOCATION, False); end; if Result then begin WriteString(Name, Value); { Write Registry for Global Environment } { Update Current Process Environment Variable } SetEnvironmentVariable(PChar(Name), PChar(Value)); { Send Message To All Top Window for Refresh } SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar('Environment'))); end; finally Free; end; end; { SetGlobalEnvironment } procedure TBrwChaves.FormCreate(Sender: TObject); var LongPath :array[0..512] of char; ShortPath :array[0..MAX_PATH] of char; begin GetTempPath(SizeOf(LongPath), LongPath); if LongPath <> '' then begin if GetShortPathName(LongPath, ShortPath, MAX_PATH) > 0 then begin if not SetGlobalEnvironment('TMP', ShortPath, True) then ShowMessage('Erro ao tentar mudar a variável de ambiente "TMP"'); end else ShowMessage('Erro ao obter o path curto.'); end; end;Abraços Editado Dezembro 21, 2008 por Micheus Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 António44 Postado Janeiro 15, 2009 Autor Denunciar Share Postado Janeiro 15, 2009 (editado) Testei esta variavel 1º Code , e ela funciona...mas muda o TMP para C:\Windows\Temp...?estou na duvida se ela devia mudar ou não a TMP...??? e não retorna,fica definitivo.????No micro onde estou rodando a Aplicação que é na Camara...que vocês no Brasil chamam de Prefeitura penso ? eles usam uma internet Movel por USB e cada vez que liga ela dá um erro de Run Time 32 até ai tudo normal eu pensava que não tinha a ver com o meu programa mas na via das duvidas eu quis testar com a outra variavel que retorna ao TMP original que está no 2º Code primeiro liguei a net entrei na rede e depois executei o meu programa...e lá estava o erro:?????no soft. da Net Movel , sai voltei a executar e não há duvidas, tb eles usam o OpenOfice e ao abrir o editor de texto foi criar uma pasta em Meus documentos com o nome %USERPROFILE%\definicões locais\Temp...???,será que não haveria outra maneira de dar a volta a isso???.uses Registry; // unit com a declaração de TRegistry // função para mudança de variáveis de ambiente function SetGlobalEnvironment(const Name, Value: string; const User: Boolean): Boolean; resourcestring REG_MACHINE_LOCATION = 'System\CurrentControlSet\Control\Session Manager\Environment'; REG_USER_LOCATION = 'Environment'; begin with TRegistry.Create do try if User then { User Environment Variable } Result := OpenKey(REG_USER_LOCATION, False) else { System Environment Variable } begin RootKey := HKEY_LOCAL_MACHINE; Result := OpenKey(REG_MACHINE_LOCATION, False); end; if Result then begin WriteString(Name, Value); { Write Registry for Global Environment } { Update Current Process Environment Variable } SetEnvironmentVariable(PChar(Name), PChar(Value)); { Send Message To All Top Window for Refresh } SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar('Environment'))); end; finally Free; end; end; { SetGlobalEnvironment } procedure TBrwChaves.FormCreate(Sender: TObject); var LongPath :array[0..512] of char; ShortPath :array[0..MAX_PATH] of char; begin GetTempPath(SizeOf(LongPath), LongPath); if LongPath <> '' then begin if GetShortPathName(LongPath, ShortPath, MAX_PATH) > 0 then begin if not SetGlobalEnvironment('TMP', ShortPath, True) then ShowMessage('Erro ao tentar mudar a variável de ambiente "TMP"'); end else ShowMessage('Erro ao obter o path curto.'); end; end; 2º Code. uses Registry; // unit com a declaração de TRegistry // função para mudança de variáveis de ambiente function SetGlobalEnvironment(const Name, Value: string; const User: Boolean): Boolean; resourcestring REG_MACHINE_LOCATION = 'System\CurrentControlSet\Control\Session Manager\Environment'; REG_USER_LOCATION = 'Environment'; begin with TRegistry.Create do try if User then { User Environment Variable } Result := OpenKey(REG_USER_LOCATION, False) else { System Environment Variable } begin RootKey := HKEY_LOCAL_MACHINE; Result := OpenKey(REG_MACHINE_LOCATION, False); end; if Result then begin WriteString(Name, Value); { Write Registry for Global Environment } { Update Current Process Environment Variable } SetEnvironmentVariable(PChar(Name), PChar(Value)); { Send Message To All Top Window for Refresh } SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Integer(PChar('Environment'))); end; finally Free; end; end; { SetGlobalEnvironment } // função para obtenção do valor de variáveis de ambiente function GetGlobalEnvironment(const Name: string; const User: Boolean): string; resourcestring REG_MACHINE_LOCATION = 'System\CurrentControlSet\Control\Session Manager\Environment'; REG_USER_LOCATION = 'Environment'; var Resultado :Boolean; begin with TRegistry.Create do try if User then { User Environment Variable } Resultado := OpenKey(REG_USER_LOCATION, False) else { System Environment Variable } begin RootKey := HKEY_LOCAL_MACHINE; Resultado := OpenKey(REG_MACHINE_LOCATION, False); end; if Resultado then Result := ReadString(Name); finally Free; end; end; { GetGlobalEnvironment } procedure TForm1.FormCreate(Sender: TObject); var TMP, WinDir :String; begin TMPOld := ''; // variável declarada na sessão private do form WinDir := GetGlobalEnvironment('windir', False); // o código abaixo só irá funcionar no Windows XP e superior, abaixo destes // não deve haver problemas com nomes longos if WinDir = '%SystemRoot%' then begin TMP := GetGlobalEnvironment('TMP', False); Delete(TMP, 1, Length(WinDir)); TMPOld := GetGlobalEnvironment('TMP', True); if not SetGlobalEnvironment('TMP', 'c:\windows'+TMP, True) then ShowMessage('Não foi possível alterar a variável de ambiente "TMP"'); end; end; procedure TBrwChaves.FormDestroy(Sender: TObject); begin if TMPOld <> '' then // se variável foi alterada... SetGlobalEnvironment('TMP', TMPOld, True); end; Editado Janeiro 15, 2009 por António44 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Janeiro 16, 2009 Denunciar Share Postado Janeiro 16, 2009 Testei esta variavel 1º Code , e ela funciona...mas muda o TMP para C:\Windows\Temp...?estou na duvida se ela devia mudar ou não a TMP...??? e não retorna,fica definitivo.????No micro onde estou rodando a Aplicação que é na Camara...que vocês no Brasil chamam de Prefeitura penso ? eles usam uma internet Movel por USB e cada vez que liga ela dá um erro de Run Time 32 até ai tudo normal eu pensava que não tinha a ver com o meu programa mas na via das duvidas eu quis testar com a outra variavel que retorna ao TMP original que está no 2º Code primeiro liguei a net entrei na rede e depois executei o meu programa...e lá estava o erro:?????no soft. da Net Movel , sai voltei a executar e não há duvidas, tb eles usam o OpenOfice e ao abrir o editor de texto foi criar uma pasta em Meus documentos com o nome %USERPROFILE%\definicões locais\Temp...???,será que não haveria outra maneira de dar a volta a isso???.António44, é possível resolver o problema sem mudar o caminho original. O que dá para fazer é transformar o long path em short path. Eu tenho um código que desses e que verifica a questão da variável %USERPROFILE% (que percebi quando comecei a usar o meu antigo programa no XP), só que está na empresa em que travalho, então eu posto no domingo - caso alguém não lhe tenha respondido.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 António44 Postado Janeiro 16, 2009 Autor Denunciar Share Postado Janeiro 16, 2009 ;) Obrigado Micheus eu posso esperar que você poste ai o código,muito obrigado.Abraços pra você amigo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Janeiro 19, 2009 Denunciar Share Postado Janeiro 19, 2009 António44, vou postar a nova sugestão aqui, mas lembro que este problema diz respeito ao seu outro tópico: Preview com mais de uma página, apresenta um erro ?.A função abaixo, tem como objetivo, retornar o caminho completo, já com as variáveis de ambientes devidamente substituidas, no parâmetro path:function ConvertEnvironmentName(Path :string) :string; const VarName :array[1..3] of string = ('WINDIR', 'SYSTEMROOT', 'USERPROFILE'); var Idx, IdxVar :Integer; VarPath :array[0..MAX_PATH] of char; begin Path := UpperCase(Path); for Idx := 1 to 3 do begin IdxVar := Pos('%'+VarName[Idx]+'%', Path); if IdxVar > 0 then begin GetEnvironmentVariable(PChar(VarName[Idx]+#0), VarPath, MAX_PATH); Delete(Path, IdxVar, Length(VarName[Idx])+2); Insert(StrPas(VarPath), Path, IdxVar); Break; end; end; Result := Path; end; Até aqui ainda estaremos trabalhando com long path. Observar que em Path, o nome das variáveis vem delimitados pelo caracter "%", os quais são concatenados na função Pos para permitir sua correta localização e substituição. As funções SetGlobalEnvironment e GetGlobalEnvironment continuam as mesmas; Apenas iremos alterar o evento OnCreate do seu form principal para fazer uso da nova função. Já o evento OnDestroy, talvez seja melhor manter para que quando sua aplicação fechar as coisas fiquem como estavam antes de seu início. procedure TForm1.FormCreate(Sender: TObject); var TMP :String; LongPath :array[0..512] of char; ShortPath :array[0..MAX_PATH] of char; begin TMPOld := GetGlobalEnvironment('TMP', False); // Salva o valor de TMP antes da alteração StrPCopy(LongPath, ConvertEnvironmentName(TMPOld)); // Preenche LongPath com o caminho completo if LongPath <> '' then if GetShortPathName(LongPath, ShortPath, MAX_PATH) <> 0 then // obtém path no formato curto - short path begin if not SetGlobalEnvironment('TMP', ShortPath, True) then // altera path na variável TMP para o formato curto ShowMessage('Erro ao tentar mudar a variável de ambiente "TMP"'); end else ShowMessage('Erro ao obter o path curto.'); end; procedure TBrwChaves.FormDestroy(Sender: TObject); begin SetGlobalEnvironment('TMP', TMPOld, True); end;Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 António44 Postado Janeiro 19, 2009 Autor Denunciar Share Postado Janeiro 19, 2009 Muito obrigado Micheus,vou alterar o código e depois digo alguma coisa.Abraços ;) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 António44 Postado Fevereiro 2, 2009 Autor Denunciar Share Postado Fevereiro 2, 2009 (editado) Micheus peço desculpa por só agora testar aqui os codigos ...mas é que estive fora.No inicio a variavel é esta aqui... %USERPROFILE%\Definições locais\Temp =C:\Documents and setings\Definições locais\Temp Mudei o codigo como você disse no FormCreate para esse aqui.procedure TForm1.FormCreate(Sender: TObject); var TMP :String; LongPath :array[0..512] of char; ShortPath :array[0..MAX_PATH] of char; begin TMPOld := GetGlobalEnvironment('TMP', False); // Salva o valor de TMP antes da alteração StrPCopy(LongPath, ConvertEnvironmentName(TMPOld)); // Preenche LongPath com o caminho completo if LongPath <> '' then if GetShortPathName(LongPath, ShortPath, MAX_PATH) <> 0 then // obtém path no formato curto - short path begin if not SetGlobalEnvironment('TMP', ShortPath, True) then // altera path na variável TMP para o formato curto ShowMessage('Erro ao tentar mudar a variável de ambiente "TMP"'); end else ShowMessage('Erro ao obter o path curto.'); end; E ficou tb no form destroy como você disse, no create ela muda a variavel para C:\Windows\Temp...mas quando fecho o Form leva mais de 1 minuto a fechar e a variavel não retorna ao valor inicial ...%USERPROFILE%\Definições locais\Temp .? Mantive tb as funções SetGlobalEnvironment e GetGlobalEnvironment , no painel das mensagens dá tb um aviso que a variavel ... TMP :String; não está sendo utilizada e tb se eu tirar o code do formDestroy ele fecha rápido....?????? procedure TForm1.FormDestroy(Sender: TObject); begin SetGlobalEnvironment('TMP', TMPOld, True); end;Um abraço. Editado Fevereiro 2, 2009 por António44 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Fevereiro 4, 2009 Denunciar Share Postado Fevereiro 4, 2009 No inicio a variavel é esta aqui... %USERPROFILE%\Definições locais\Temp =C:\Documents and setings\Definições locais\TempAntónio44, apenas para arredondar, o caminho deveria ficar igual a alco como: C:\Documents and setings\Micheus\Definições locais\Temp, já que %USERPROFILE% corresponde a C:\Documents and setings\<user name>.Ou seja, deveria aparecer o nome do usuário logado na posição onde pus o meu nome.E ficou tb no form destroy como você disse, no create ela muda a variavel para C:\Windows\Temp...Posto o que eu disse antes, como poderia ter ficado com C:\Windows\Temp ?mas quando fecho o Form leva mais de 1 minuto a fechar e a variavel não retorna ao valor inicial ...%USERPROFILE%\Definições locais\Temp .?Mantive tb as funções SetGlobalEnvironment e GetGlobalEnvironment , (...) e tb se eu tirar o code do formDestroy ele fecha rápido....??????É estranha esta demora. Não parece fazer muito sentido, porque a princípio não teria como o registro ou as variáveis de ambiente ficarem "lockadas". Difícil de avaliar uma causa.No processo de alteração inicial, por acaso, tudo está ocorrendo corretamente: não há esta demora; a variável está sendo alterada;...Verifique como está a declaração destas variáveis via propriedades do seu computador ->Avançado->Variáveis de ambiente, com tantos testes, ela pode não ter sido restaurada ao seu valor default e pode prejudicar a avaliação do problema.No meu caso (aqui), elas estão:1) caixa "Variáveis de usuário para Administrador" -> TMP = %USERPROFILE%\Configurações locais\Temp (usando a opção editar)2) caixa "Variáveis do sistema" -> TMP = %SystemRoot%\TEMP (usando a opção editar)no painel das mensagens dá tb um aviso que a variavel ... TMP :String; não está sendo utilizadaSempre que este tipo de mensagem aparecer, esteja certo de que a declaração da mesma pode ser removida com segurança. É que alterando aqui, alterando ali, acabou sobrando lixo. ;)Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
António44
Preview com mais de uma página, apresenta um erro da Classe: EFCreateError com a seguinte mensagem: Cannot Create file [][][] alguém pode ajudar-me??
Agradeço.
Abraço.
Link para o comentário
Compartilhar em outros sites
12 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.