Ir para conteúdo
Fórum Script Brasil

Thales Pontes Martins

Membros
  • Total de itens

    453
  • Registro em

  • Última visita

Tudo que Thales Pontes Martins postou

  1. Substitua o comando por esse -> DrawIconEx(Bmp.canvas.Handle,pt.x-rt.left,pt.y-rt.top,GetCursor,0,0,0,0,DI_NORMAL or DI_DEFAULTSIZE); Vou mandar. Será que a MP foi pra outro usuário? Eu tenho certeza que mandei pra você. Estranho.
  2. Claro que não está funcionando, você declara a variavel bmp e passa a variavel Bitmap como parametro para DrawIconEx. E na linha Bmp.savetofile(FileName); Que variavel é essa FileName? Putz! Eu escreví quase uma edição inteira da folha de São Paulo e você não recebeu! Que m****!
  3. Quer saber se me ocorre alguma coisa para resolver o seu problema? A resposta é muito simples. Não me ocorre nada. Desculpe amigo, deveria estar entrando aqui pra responder sua pergunta mais ao invés disso vim perguntar. Sabe o que é, é que eu não entendo nada sobre rede e internet, então eu pensei, já que você está perguntando isso você deve sacar alguma coisa sobre o assunto. Então vamos começar com uma coisa mais simples. Você sabe como se faz, por exemplo, para ter acesso a um arquivo que esteja no HD da outra máquina pela rede? Se você souber, eu gostaria que você me desse um exemplo de quais funções e classes devo usar, porque também tenho curiosidade e estou interessado em dar uma fuçada aqui sobre esse assunto. Aí quem sabe eu até posso descobrir a solução pra esse problema. só postei isso porque parece que ninguém está sabendo resolver essa sua dúvida, então se você dividir o conhecimento que você tem com os colegas aqui, vai estar facilitando a pesquisa das pessoas que estiverem interessadas no assunto. Abraços.
  4. Só lembrando que essa ultima linha aí só deve ser colocada quando você for salvar o arquivo, e deve existir a variável FileName que acrescentei só por exemplo. Mas eu não sei porque que tá dando esse erro não. Posta o procedimento todo por favor. PS: mandei uma MP pra você sobre o exe do troca papel.
  5. Editei o código denovo, e coloquei mais um detalhezinho que estava faltando, mas a função antiga também funcionava da mesma maneira, essa só ficou mais rápida. E o Geovani não disse se o çodigo serviu, se ele usou ou não...
  6. Opa, se não for incomodar, estamos curiosos para saber. :D
  7. Opa, não precisa fazer BlockRead/BlockWrite não. Se ele quiser ele pode primeiro fazer uma busca para ver a somatória do tamanho dos arquivos e usar a função CopyFileEx ao invés de CopyFile, que permite o fornecimento da função de CallBack a ser notificada a cada bloco de arquivo copiado.
  8. Repare que eu editei o post, eu tinha esquecido do FindClose(rec);. Agora está certo. :D
  9. Que é isso, se você se propor a ler o arquivo de ajuda do Delphi você aprende rapidinho. Pode mandar, inclusive eu queria aquele dos papéis de parede também.
  10. Amigo, escreví a função abaixo que faz a cópia e cria um TStringList com a lista de arquivos que não puderam ser copiados, espero que ajude -> function CopyDir(sc, ds : string) : TStringList; var List : TStringList; function vldir(dr : string) : boolean; begin result:=((trim(dr) <> '..') and (trim(dr) <> '.')); end; procedure Search(sor, des : string); var Rec : TSearchRec; s,d : string; begin ForceDirectories(des); if (FindFirst(sor+'\*.*',faReadOnly or faHidden or faSysFile or faDirectory or faArchive,rec)<>0) then begin FindClose(rec); exit; end; while true do begin if ((rec.Attr and fadirectory)<>0) then begin if vldir(rec.Name) then Search(sor+'\'+rec.name,des+'\'+rec.Name) end else begin s:=sor+'\'+rec.name; d:=des+'\'+rec.name; if (cardinal(CopyFile(PAnsiChar(s),PAnsiChar(d),false)) = 0) then List.Add(s); end; if (FindNext(rec) <> 0) then begin FindClose(rec); break; end; end; end; begin if (sc[length(sc)] = '\') then delete(sc,length(sc),1); if (ds[length(ds)] = '\') then delete(ds,length(ds),1); if not(directoryexists(sc)) then begin result:=nil; exit; end; List:=TStringList.Create; Search(sc,ds); result:=list; end; Exemplo -> procedure TForm1.Button1Click(Sender: TObject); begin with CopyDir(edit1.Text,edit2.Text) do begin savetofile('c:\log.txt'); free; end;; end; Assim você poderá adapta-la a suas necessidades, tipo perguntar pra substituir...etc... Testei aqui e não apresentou nenhum problema, mas qualquer problema que ocorra não deixe de me avisar.
  11. Olha cara, eu olhei tudo aqui e não descobrí como se faz pre pegar esse erro. Talvez algum outro colega saiba. Uma coisa que reparei. O windows é burro, não é? Quando ele tem uma lista de arquivos pra copiar como é o seu caso, e encontra um erro, ao invés de pular o arquivo e continuar copiando o que der, ele mostra uma menssagem de erro e para de copiar. Além disso essa rotina ainda tem vários incovenientes. Então acho que seria o caso de escrevermos nossas próprias rotinas de cópia de arquivos. Bom, uma rotina pra copiar um arquivo é fácil, mas já pra copiar uma pasta inteira é mais complexo porque envolve conceitos de recursividade, além de exigir variações de comportamento amplas. Eu vou tentar aqui escrever algumas rotinas para fazer essas cópias, mas não garanto nada. Caso consiga posto mais tarde.
  12. interessante. Não vou forçar muito a mente para entender esse seu procedimento porque senão pode começar a feder. Mas deixa eu ver se eu peguei a idéia: O usuário posiciona o mouse numa ponta do retangulo, pressiona uma tecla, arrasta o mouse até a outra ponta do retangulo e depois solta a tecla. é isso? Não me referia a ini's, mas sim a arquivos binários normais, aonde você salvaria as variáveis diretamente. Se você souber algumas técnicas de acesso a arquivos, por exemplo a de montar uma estrutura de fila encadeada dentro do arquivo, e escrever umas rotinas de acesso legais, e usar sistema de constantes identificadoras, tudo isso ajudaria na versatilidade ao acesso ao arquivo, ficaria melhor do que trabalhar com o registro. mas a opção é sua.
  13. É, seria interessante pegar esse erro mesmo. É possivel que naquele registro seja reportado alguma coisa. Vou dar uma olhada na documentação e mais tarde eu posto.
  14. Acontece. Quando tiver um tempo, responda as perguntas do post #8.
  15. Ahh, é verdade, tinha me esquecido disso. Num vai dar não, o tópico vai ter que ser movido pro fórum de lógica.
  16. Nesse caso o Prog'amador criou um procedimento para o evento OnKeyPress e dentro dele chamou o seu procedimento, e como eu citei eu já coloquei o seu próprio procedimento no evento OnKeyPress diretamente;
  17. Eu sei que você não falou por mal, só estava expressando uma opinião. Tem que botar uma sala de chat aqui, hehe. Agora pode fechar.
  18. Meu amigo, você tem sua procedure -> TfrmVLENTR = Class(TForm) procedure ValidaKey(Const Sender: TObject; var key: char); . . implementation procedure TfrmVLENTR.ValidaKey(Const Sender: TObject; var key: char); begin if not(key in ['0'..'9','.',',',#8,#13]) then key := #0; if key in [',','.'] then key := DecimalSeparator; if key = DecimalSeparator then if pos(key,TMaskEdit(Sender).Text) <> 0 then key := #0; end; Agora basta você clicar na sua Edit, ir até o object inspector, clicar na paleta Events, e no evento KeyPress deverá estar listado esse procedimento no combobox, então selecione-o e pressione Enter. Está feito.
  19. Opa, que Thiago??????????????????!!!!!!!!!!!!!!?????????????????!!!!!!!!1 :blink: :huh: :o :unsure:
  20. Então a única solução é instalar o windows 2000 e tentar usar essa função. :D
  21. O tópico só virou flood nos ultimos 10 posts depois que o problema já estava resolvido. Afinal é muito chato um fórum onde só se pode falar de assuntos técnicos. Depois da pesquisa tem que dar uma descontraída.
  22. Ou então -> fFlags := FOF_NOCONFIRMATION or FOF_NOERRORUI; Acho que esse ultimo tem mais a ver, porque FOF_SILENT só não mostrará a caixa de progresso, enquanto FOF_NOERRORUI não mostrará o erro.
  23. Estranho. Na documentação do windows que vem junto com o arquivo de ajuda do Delphi 2006 existe exatamente essa mesma página com todos os dados iguais, a única diferença é que diz que está presente desde o windows 95. Estranho.
×
×
  • Criar Novo...