Bogos 0 #1 Posted November 28, 2006 Bom galera, Tou meio sem tempo então estou fazend só uma rapidinha. Vou passar um código massa que faz o seguinte. Tendo uma barra de progresso (aquelas tipo loading...) mas que não se meche, daí você clica sobre ela e arrasta, e a deixa como quiser através do clique. Esse tipo de coisa pode ser muito útil em projetos seus. Pra quem ainda não entendeu pra que serve, ai vai como montar e ver o resultado do que estou dizendo xD Crie 1 projeto, clique com o direito na barra de ferramentas no canto esquerdo depois em Components. Agora selecione CCRP Progress Bar (VB6). Insira dê OK e ela aparece << coloque 1 no projeto e nomeie ela para barra pra fica com uma aparencia melhor, mude a propriedade Smooth da barra para True. agora abra a janela de codificação e copie o codigo abaixo: Private Sub Form_Load()barra.Max = 200End SubPrivate Sub barra_FetchAutoCaption(Caption As String, Value As Long, Min As Long, Max As Long)'MUDA O CAPTION INSERINDO O VALOR ATUAL DA BARRACaption = Value - 100End SubPrivate Sub barra_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)'QUANDO O MOUSE SE MOVER NA BARRA, SE O CLIQUE ESTIVER APERTADO,'ELE MUDA O PONTEIRO DO MOUSE E VC MOVIMENTA A BARRA, SENÃO ELE'SOH DEIXA O MOUSE COMO UMA SETINHA COMUMIf Button = 1 Then barra.MousePointer = vbSizeWE If X > 188 Then X = 188 If X < 0 Then X = 0 barra.Value = (X * 200) / 188Else barra.MousePointer = vbDefaultEnd IfEnd SubRode, clique na barra, segure e arraste =D Cya, Bogos EDIT: ela mostra de -100 até 100, dê uma olhada nos códigos e mude as contas se quiser que ela mova do 0 ao 100, do 0 ao 500, 10 ao 20, etc. ;] Share this post Link to post Share on other sites
Fox- 0 #2 Posted November 28, 2006 lol?bem q instalação de jogos poderia ser assim.. ja arasta pro 100% e temina...num intendi mto bem onde iria usa isso mas blz.. o q vale a intenção bom codigo.. Share this post Link to post Share on other sites
Zero 0 #3 Posted November 28, 2006 Muito legal Bogos! Fiz umas pequenas alterações no código que proporcinou melhor desempenho. Veja: Dim px As Single, barval As IntegerPrivate Sub Form_Load() barra.Max = 200End SubPrivate Sub barra_FetchAutoCaption(Caption As String, Value As Long, Min As Long, Max As Long)'MUDA O CAPTION INSERINDO O VALOR ATUAL DA BARRACaption = Value - 100End SubPrivate Sub barra_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) px = x barval = barra.ValueEnd SubPrivate Sub barra_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)'QUANDO O MOUSE SE MOVER NA BARRA, SE O CLIQUE ESTIVER APERTADO,'ELE MUDA O PONTEIRO DO MOUSE E VC MOVIMENTA A BARRA, SENÃO ELE'SOH DEIXA O MOUSE COMO UMA SETINHA COMUMDim val As IntegerIf Button = 1 Then barra.MousePointer = vbSizeWE val = barval - CInt(px - x) If val <= barra.Min Or val >= barra.Max Then val = IIf(val <= barra.Min, barra.Min, barra.Max) barra.Value = valElse barra.MousePointer = vbDefaultEnd IfEnd Sub Fox, você poderia utilizar este método em várias aplicações. Já que você sitou jogos. Imagine um jogo de disparo onde você deveria escolher a força ou potência do disparo. Abraços! Share this post Link to post Share on other sites
Bogos 0 #4 Posted November 30, 2006 @Zero Não sei muito bem o que você adicionou ao codigo, mas não entendi o pq de + desempenho. O código é simples e funcinal, mas enfim, quando eu tiver um tempinho livre vou dar uma olhada xD valeus =P @Fox Serve pra um monte de coisa. Tudo que você escolhe uma valor por ex de força cmo o Zero disse. Dessa maneira ai fica + digamos bunitinho hehe =* Share this post Link to post Share on other sites
Guest Eclipse #5 Posted November 30, 2006 Ótimo, porem como eu estou usando o VB que o vampire disponibilizou para download eu nao possuo esta funcao =~/Meu antigo possuia porem eu tive que formatar a maquina e perdi o programa junto =~/Espero que possa resolver meu problema colocando algum site com o addon deste recurso para o VB 6.Cya Share this post Link to post Share on other sites
Zero 0 #6 Posted December 1, 2006 Bogos, notei uma certa falha no seu código, pois nem sempre funcionava instantaneamente quando se tentava arrastar o valor da barra de progresso, por isso fiz daquele modo.Eclipse, baixe a OCX mscomctl.ocx, se nao me engano, de qualquer site de download de componentes.Abraços! Share this post Link to post Share on other sites
Guest MarioToledo #7 Posted January 3, 2007 Aew, boa. Eu vo coloca um time pra ir em progresso. Agora fico fácil Share this post Link to post Share on other sites