Ir para conteúdo
Fórum Script Brasil

Paulo Nobre

Membros
  • Total de itens

    717
  • Registro em

  • Última visita

Tudo que Paulo Nobre postou

  1. Supondo Form1 o principal e form2 "secundário", quando minimizamos o form2 ele não vai para a barra de tarefas e sim minimiza acima dela. Existe uma maneira de contornar isto, ou seja, fazê-lo minimizar na barra de tarefas?
  2. Entendi! O arredondamento é inerente da própria função FormatFloat! Obrigado s3c e Progr'amador(a quanto tempo em!! - Bom que você voltou!)
  3. Num artigo que li o escritor exemplifica como arredondar. Para isto ele faz uso de duas funções: function Arredonda1(Valor :Double; Casas: Byte) :Double; var StrFormat :String; begin StrFormat := '#.'; while Casas > 0 do begin // inicializa quantidade de zeros ref. as casas decimais desejadas StrFormat := StrFormat +'0'; Dec(Casas); end; Result := StrToFloat(FormatFloat(StrFormat, Valor)); end; function Arredonda2(Valor :Double; Casas: Byte) :Double; var Multiplicador :Extended; begin Multiplicador := Power(10, Casas); // unit Math ou função acima // desloca casas à direita e arredonda Valor := Round(Valor * Multiplicador); // retorna casas à esquerda Result := Valor/Multiplicador; end; E depois para exemplificar o uso faz o seguinte: procedure TForm1.Button1Click(Sender: TObject); var Valor :Double; begin Valor := 8386.428; Label1.Caption := FloatToStr(Arredonda1(Valor, 2)); Label2.Caption := FloatToStr(Arredonda2(Valor, 2)); end; O resultado é 8386,43 Na função 2 está claro que o uso da função Round cuida do arredondamento. E na função 1, quem está fazendo o arredondamento?
  4. Micheus O tópico que coloquei de novo em discussão tinha sido um que abri em 2006. Coloquei-o exatamente para não ter que abrir outro. Como o assunto é complexo, na ocasião nem boas discussões, como esta atual, foram feitas. Um visitante reabriu um outro semelhante que eu havia colocado em 2004, quando comecei a ter contato com DELPHI, que na ocasião também não chegamos a nenhuma conclusão. Não sei porque o visitante foi buscar este tópico e não aproveitou o mesmo. Embora tenha colocado este tópico a tona pela terceira vez, só agora estou podendo entender de fato a complexidade e as varianters do assunto. Não é a toa que a maioria dos programas que se propôem a fazer isto acabam tendo algum tipo de problema. Pelo menos todos que já testei até hoje sempre recebiam alguma crítica negativa.
  5. Conteúdo que você quer dizer é que você não gostaria que nem os nomes dos arquivos dentro da pasta sejam visíveis? Thales,na realidade gostaria que quando o usuário clicasse na pasta fosse pedida uma senha para conseguir abrí-la, ou seja, só quem tem a senha consegue abrir a pasta pelo explorer. Os nomes apareerem não tem importãncia, se não for possível trancar a pasta. O ícone da pasta você pode mudar alterando (ou criando) um arquivo chamado desktop.ini dentro da mesma, com o seguinte conteúdo: [.ShellClassInfo] Iconfile=c:\pasta\icone.ico Iconindex=0 Se o arquivo do ícone estiver dentro da própria pasta você pode omitir o caminho completo e só colocar o nome do mesmo. Abraços, Graymalkin Valeu pela dica Graymalkin!!
  6. Você diz visível o ícone da pasta? É claro que o conteúdo não! Mas, o ícone poderia aparecer no explorer, qual a sua opinião? Se a pasta que não estivesse disponível mudasse de alguma forma para chamar atenção seria legal.
  7. Essa eu não sabia! Quando usei este programa, muito tempo atrás antes de aprender um pouco de programação, nunca havia atentado para este problema. Será que na versão atual o problema continua?
  8. É, talvez então, oThales é que tenha razão, com a sugestão dele.
  9. Valeu Thales, pela dica e paciência. Tem razão Thales, o s3c é feraça.
  10. Valeu pelo toque Thales Realmente s3c, uma vez vi alguém fazendo uma crítica negativa a um programa deste tipo, pelo fato de poder obter algo pelo DOS!
  11. Acho que estou voando!! Como usaria este código do s3c?
  12. O usuário do programa poderia trancar ou esconder uma pasta, desta forma ninguém teria acesso a ela. A propósito você baixou algum dos programas dos links? Já useo o terceiro, é o único que conheço.
  13. Micheus, Você já compilou o exemplo1. Achei ele interessante, mais ainda pelo botão novo criado ao lado do minimizar, porém ele não aparece, quando compilo o projeto e o executo. Clicando no espaço ao lado do minimizar onde ele deveria estar a ação é executada. Na unit em questão o autor queria que o programa fosse para a área de notificação. Isto acontece, porém sem o botão aparecer. Você poderia dar uma olhada? O projeto compila, mas aparecem as seguintes mensagens: O meu Delphi é o 7.
  14. Muito interessante o exemplo. Inclusive ele ensina como colocar um ícone adicional ao lado do minimizar na janela.
  15. Micheus, Obrigado pela sugestão vou baixar.
  16. Fui verificar se tinha algum ainda comigo e não achei, aí pesquisei estes: http://superdownloads.uol.com.br/download/i41695.html http://superdownloads.uol.com.br/download/i36514.html http://superdownloads.uol.com.br/download/i18933.html (Esse acima já usei é razoável, mas já vi gente metendo o pau no programa. Ele é pequeno e se não me engano é feito em C++ ; Quem fez é um programador chamado Marcos Velasco, ele tem um site e diversos programas alguns até interessantes.) Leia os comentários de algumas pessoas nas páginas acima. São todos do superdowloads
  17. Thales, já vi e testei a muito tempo vários tipos: Um deles fazia a pasta sumir literalmente e para tê-la de volta apenas com senha. Alias s e não me engano tinha que ter senha para trancar a pasta e destrancar. Se não uma pessoa que usasse seu computador sairia trancando as pastas do seu computador e você estaria ferrado. Outro programa, mudava o ícone de uma pasta para outro com um ícone diferente e a pasta ficava inacessível. Só com senha. É claro que dá para fazer pois se não, não existiriam os programas mas deve ser dificil pois venho postando esa pergunta desde quando comecei a usar o delphi(2 anos) e até hoje nínguém se quer teve uma idéia de como começar a fazer, em nenhum forum. Os processos devem ser diferentes para windows diferentes, pois um programa que vi tinha versão para 98 e XP. Vou ver se me lembro onde encontrar e te passo!
  18. Estou ressuscitando esta pergunta para ver se alguém tem alguma idéia. Como vocês estão vendo acima, postei a primeira vez em abril de 2006. Como de lá para cá temos muita gente experiente frequentando o forum pode ser que agora consiga obter a resposta!!
  19. Olá s3c, bom ver você de novo por aqui. Como o Thales disse no tópico acima pelo menos agora o ponteiro já vai para cima do tray. Thales como você mesmo colocou acima agora já tá bem perto.
  20. Churc, acho que é muita viagem. Vou deixar isso de lado, afinal de contas não é nada de tão importante assim.
  21. Thales,depois que postei fiquei pensando nisto. Mesmo achando uma maneira, o mouse iria para a bandeja e não para o ícone! Churc,a idéia seria implementar isto visando aqueles usuários com muito pouca experiência. Pois neste caso o ponteiro iria para cima do programa. Achei que mesmo ele mechendo um pouco o mouse, em algum momento ele iria parar e depois disso o ponteiro iria para cima do ícone. Mas, estou achando que viajei demais! function gettrayhandle: HWND; var hnd: HWND; begin hnd := findwindow('Shell_TrayWnd', nil); hnd := findwindowEx(hnd,0, 'TrayNotifyWnd', nil); hnd := findwindowEx(hnd,0, 'SysPager', nil); result := hnd; end; se quiser testar showwindow(gettrayhandle, sw_hide); estou sem o Delphi aqui na escola. Churc, esta função seria apenas para achar o handle da bandeja, é isto?
  22. Eu de novo! Tenho um programa que quando é aberto pela primeira vez mostra uma messagebox dizendo que o ícone do programa está na área de notificação (ex-tray) em fim ao lado do relógio. A messagebox está no centro com um botão ok. Gostaria de saber como fazer para quando clicar no ok o ponteiro do mouse se movimente,obviamente sozinho, até o ícone do programa que se encontra na área de notificação, . Alguém sabe o código para fazer isto?
  23. Thales, mudei algumaas coisas das quais você falou. O gif paraou de dar erro, mas não captura o ponteiro o jepeg continua na mesma. Ele usa duas units que são grandes e portanto seria deselegante postar aqui. Estou mandando por email para você o projeto. OK?
  24. Thales não está funcionando para Jpeg e Gif no caso da janela ativa: Veja os códigos: //Do Jpeg .... else if reg.ReadString('Capturar Ponteiro')= 'Sim' then begin if reg.ReadString('Capturar')='A tela toda' then begin //Primeiro você cria o JPEG: JPEG := TJPEGImage.Create; //Depois você carrega o bitmap do Image pelo Clipboard: Image1.Picture.Bitmap.LoadFromClipboardFormat(CF_BitMap,Clipboard.GetAsHandle(CF_BitMap),0); GetCursorPos(Pt); //Para capturar o ponteiro DrawIconEx(Image1.picture.Bitmap.Canvas.handle,pt.x,pt.y,GetCursor,0,0,0,0,DI_NORMAL or DI_DEFAULTSIZE);//Para capturar o ponteiro //Depois você assinala o JPEG a partir do Bitmap: JPEG.Assign(Image1.Picture.Bitmap); //Depois você salva o JPEG: JPEG.SaveToFile(FileName); JPEG.Free; end else if reg.ReadString('Capturar')= 'A janela ativa' then begin //Primeiro você cria o JPEG: JPEG := TJPEGImage.Create; //Depois você carrega o bitmap do Image pelo Clipboard: Image1.Picture.Bitmap.LoadFromClipboardFormat(CF_BitMap,Clipboard.GetAsHandle(CF_BitMap),0); GetCursorPos(Pt); //Para capturar o ponteiro GetWindowRect(GetForegroundWindow,Rt); //Para capturar o ponteiro DrawIconEx(Image1.picture.Bitmap.Canvas.handle,pt.x-rt.left,pt.y-rt.top,GetCursor,0,0,0,0,DI_NORMAL or DI_DEFAULTSIZE); //Para capturar o ponteiro //Depois você assinala o JPEG a partir do Bitmap: JPEG.Assign(Image1.Picture.Bitmap); //Depois você salva o JPEG: JPEG.SaveToFile(FileName); JPEG.Free; end; end; //Do gif else if reg.ReadString('Capturar Ponteiro')= 'Sim' then begin if reg.ReadString('Capturar')='A tela toda' then begin Bitmap := TBitmap.Create; Gif:= TGifImage.Create; Image1.Picture.Bitmap.LoadFromClipboardFormat(CF_BitMap,Clipboard.GetAsHandle(CF_BitMap),0); GetCursorPos(Pt); GetWindowRect(GetForegroundWindow,Rt); DrawIconEx(image1.picture.Bitmap.Canvas.handle,pt.x,pt.y,GetCursor,0,0,0,0,DI_NORMAL or DI_DEFAULTSIZE); BitmapToGif(Bitmap,Gif); Gif.Assign(Image1.Picture.Bitmap); Gif.SaveToFile(FileName); Bitmap.Free; Gif.Free; end else if reg.ReadString('Capturar')='A janela ativa' then begin Bitmap := TBitmap.Create; Gif:= TGifImage.Create; Image1.Picture.Bitmap.LoadFromClipboardFormat(CF_BitMap,Clipboard.GetAsHandle(CF_BitMap),0); GetCursorPos(Pt); GetWindowRect(GetForegroundWindow,Rt); GetCursorPos(Pt); //Para capturar o ponteiro GetWindowRect(GetForegroundWindow,Rt);//Para capturar o ponteiro DrawIconEx(Image1.picture.Bitmap.Canvas.handle,pt.x-rt.left,pt.y-rt.top,GetCursor,0,0,0,0,DI_NORMAL or DI_DEFAULTSIZE); //Para capturar o ponteiro Gif.SaveToFile(FileName); Bitmap.Free; Gif.Free; end; end; No caso do Jpeg ele ignora o código: GetCursorPos(Pt); //Para capturar o ponteiro GetWindowRect(GetForegroundWindow,Rt); //Para capturar o ponteiro DrawIconEx(Image1.picture.Bitmap.Canvas.handle,pt.x-rt.left,pt.y-rt.top,GetCursor,0,0,0,0,DI_NORMAL or DI_DEFAULTSIZE); No building ele diz que Rt é declarada e não usada, ou seja como se ele pulasse o código e de fato pula. Coloquei um showmessage entre eles e não passa lá ele pula para JPEG.Assign(Image1.Picture.Bitmap); Muito estranho Não dá erro salva a janela ativa, mas sem o ponteiro. No caso do gif é pior dá erro. Dá uma ajuda aí!Por favor!
×
×
  • Criar Novo...