
kuroi
Membros-
Total de itens
7.184 -
Registro em
-
Última visita
Tudo que kuroi postou
-
sabe qual o problema?? é que toda a vez que, no clique no botao no Form2, você chama o Form1, ele passa pelo Form_Load do Form1 de novo. assim, ele coloca os nomes dos pilotos de novo nos lugares. assim, por exemplo, se o massa ganhou a corrida, ele vai estar com 10 pontos e vai ser o indice 19 do array. assim que passar pelo Form_Load de novo, ele vai chegar aqui: x(19).Nome = "Davidson" x(19).Chance = 35[/code] e o numero 19 vai passar a ser o Davidson, e ele vai ter 10 pontos. pra resolver isso, no seu module, crie uma sub main (Private Sub Main()). ela deve chaamar Main obrigatoriamente. ai tire tdo o que estiver no Form_Load do seu Form1 e cole na sub main. no final da sub main, digite Form1.Show. ai clique no menu Project e selecione Properties (ultima opcao). na janelinha que abrir, na opcao Startup Object, selecione Sub Main. ai deve funcionar.
-
ta la: http://scriptbrasil.com.br/forum/index.php?showtopic=105640
-
codigo pra mover o Form clicando em qualquer parte dele e arrastando. a mesma logica vale pra mover objetos dentro do formulario. Em C#: primeiro defina a struct: public struct MoveForm { public int X; public int Y; }[/code] agora dentro da sua classe do formulario: [code]MoveForm mv = new MoveForm(); private void Form1_MouseDown(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Left) return; mv.X = this.Left - MousePosition.X; mv.Y = this.Top - MousePosition.Y; } private void Form1_MouseMove(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Left) return; this.Left = mv.X + MousePosition.X; this.Top = mv.Y + MousePosition.Y; } Em VB.NET: primeiro defina a estrutura: Structure MoveForm Dim X As Integer Dim Y As Integer End Structure[/code] agora dentro da sua classe do formulario: [code]Dim mv As MoveForm Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown If e.Button <> Windows.Forms.MouseButtons.Left Then Exit Sub mv.X = Me.Left - MousePosition.X mv.Y = Me.Top - MousePosition.Y End Sub Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove If e.Button <> Windows.Forms.MouseButtons.Left Then Exit Sub Me.Left = mv.X + MousePosition.X Me.Top = mv.Y + MousePosition.Y End Sub
-
pra ordenar, você faz vai ter que fazer uma copia daquela funcao de ordenacao. so que la onde ele usa o ai pra ordenar, você poe a pontuacao.
-
e como ficou agora seu codigo??
-
ue e porque você acha que não funciona?? não precisa de hack não em que objeto exatamente você esta tentando por height 50%?? porque tentei isso aqui: <html> <head> </head> <body> <div style="height: 100px; width: 100px; border:1px solid #000000;"> <div style="height: 50%; width: 50%; background-color: #336699;"></div> </div> </body> </html>[/code] e funcionou certinho no ie6, ff, opera. como você esta fazendo?? talvez o objeto que você esta tentando por height 50% não aceite. ou talvez o problema esteja no objeto pai.
-
é, minhas aulas comecaro hj mesmo, mas como estudo a noite não preciso dormi cedo (muito menos acordar cedo). então, tem certeza que não ta somando certo a pontuacao?? porque eu baxei o seu projeto no rapidshare e fiz aquela alteracao que comentei de adicionar o campo chance. ai o Form_Load ficou assim: Private Sub Form_Load() x(0).Nome = "Alonso" x(1).Nome = "Hamilton" x(2).Nome = "Massa" x(3).Nome = "Raikkonen" x(4).Nome = "Heidfield" x(5).Nome = "Kubica" x(6).Nome = "Fisichella" x(7).Nome = "Kovalainen" x(8).Nome = "Rosberg" x(9).Nome = "Wurz" x(10).Nome = "Coulthard" x(11).Nome = "Webber" x(12).Nome = "Schumacher" x(13).Nome = "Trulli" x(14).Nome = "Button" x(15).Nome = "Barrichello" x(16).Nome = "Liuzzi" x(17).Nome = "Speed" x(18).Nome = "Sato" x(19).Nome = "Davidson" x(0).Chance = 99 x(1).Chance = 100 x(2).Chance = 95 x(3).Chance = 96 x(4).Chance = 67 x(5).Chance = 70 x(6).Chance = 65 x(7).Chance = 55 x(8).Chance = 58 x(9).Chance = 45 x(10).Chance = 60 x(11).Chance = 60 x(12).Chance = 55 x(13).Chance = 50 x(14).Chance = 53 x(15).Chance = 47 x(16).Chance = 40 x(17).Chance = 25 x(18).Chance = 30 x(19).Chance = 27 End Sub[/code] ai pra testar se a pontuacao estava somando, pus pra mostrar a pontuacao junto. o codigo do clique ficou assim: [code]Private Sub cmdOK_Click() Dim i As Integer Randomize For i = 0 To 19 x(i).AI = Int(x(i).Chance * Rnd) + 1 Next SelectionSort x(), 19 x(19).Pontos = x(19).Pontos + 10 x(18).Pontos = x(18).Pontos + 8 x(17).Pontos = x(17).Pontos + 6 x(16).Pontos = x(16).Pontos + 5 x(15).Pontos = x(15).Pontos + 4 x(14).Pontos = x(14).Pontos + 3 x(13).Pontos = x(13).Pontos + 2 x(12).Pontos = x(12).Pontos + 1 lbl1.Caption = x(19).Nome & " - " & x(19).Pontos lbl2.Caption = x(18).Nome & " - " & x(18).Pontos lbl3.Caption = x(17).Nome & " - " & x(17).Pontos lbl4.Caption = x(16).Nome & " - " & x(16).Pontos lbl5.Caption = x(15).Nome & " - " & x(15).Pontos lbl6.Caption = x(14).Nome & " - " & x(14).Pontos lbl7.Caption = x(13).Nome & " - " & x(13).Pontos lbl8.Caption = x(12).Nome & " - " & x(12).Pontos lbl9.Caption = x(11).Nome & " - " & x(11).Pontos lbl10.Caption = x(10).Nome & " - " & x(10).Pontos lbl11.Caption = x(9).Nome & " - " & x(9).Pontos lbl12.Caption = x(8).Nome & " - " & x(8).Pontos lbl13.Caption = x(7).Nome & " - " & x(7).Pontos lbl14.Caption = x(6).Nome & " - " & x(6).Pontos lbl15.Caption = x(5).Nome & " - " & x(5).Pontos lbl16.Caption = x(4).Nome & " - " & x(4).Pontos lbl17.Caption = x(3).Nome & " - " & x(3).Pontos lbl18.Caption = x(2).Nome & " - " & x(2).Pontos lbl19.Caption = x(1).Nome & " - " & x(1).Pontos lbl20.Caption = x(0).Nome & " - " & x(0).Pontos End Sub da uma olhada nos resultados. depois do primeiro clique: e agora, depois do segundo: da primeira vez o Massa foi o primeiro colocado, certo?? 10 pontos somados pra ele. ai na segunda vez, ele foi o quarto. mais 5 somados. 10 + 5 = 15, que é o que aparece da segunda vez, ta certinho. e com todos os outros me parece que também esta certo.
-
antes de baixar o turbo c, tenta acessar pelo prompt do dos. faca o seguinte: - no Windows, clique em Iniciar -> Executar - digite cmd e aperta Enter - vai abrir a tela do prompt. nela digite cd\ e aperta Enter - digite cd e o endereco do diretorio onde esta o .exe compilado. exemplo, se ele esta na pasta C:\Programas\DevC, digite cd Programas\DevC e aperta Enter - digite agora o nome do exe, exemplo Projeto1 e aperta Enter ele deve rodar o programa e a tela na vai fechar, então você vai ver se aparece alguma coisa.
-
entendi, é no código você randomiza de acordo com o indice e não com o piloto. e como os pilotos trocam de indice as chances de cada um mudam. então tipo crie uma propriedade a mais no seu tipo que sera o multiplicador. e carregue elas também no seu form_load. ai no clique do botao, multiplique por ela. tipo assim: Private Sub Form_Load() x(0).Nome = "Alonso" x(0).Chance = 99 x(1).Nome = "Hamilton" x(1).Chance = 100 ....etc x(19).Nome = "Davidson" x(19).Chance = 27 End Sub Private Sub cmdOK_Click() Randomize x(0).AI = Int(x(0).Chance * Rnd) + 1 x(1).AI = Int(x(1).Chance * Rnd) + 1 x(2).AI = Int(x(2).Chance * Rnd) + 1 x(3).AI = Int(x(3).Chance * Rnd) + 1 ...etc End Sub[/code] entendeu?? assim a chance fica atrelada ao piloto. e alias, você pode fazer essa parte do random com uma linha so com um For, em vez de por uma linha pra cada um, já que o codigo é igual pra todos, so muda o indice. EDITADO: cara, hora de dormi, que amanha acordo cedo (meio dia). se ficar mais algum problema, vejo amanha beleza?? falou
-
não conheco esse, uso o Turbo C++. mas como exatamente você executa o codigo?? você da um Run direto no compilador ou você cria o exe e tenta abrir separado?? e o que acontece?? ele abre a janelinha e já fecha direto??
-
opa, vi o rapidshare so agora, nem precisou. mas testei aqui o seu codigo, sem alterar uma unica linha e ta tudo funcionando. tipo, td o que estava pra ser feito esta sendo feito. qual o problema pra você?? o que você realmente quis dizer com isso?? hum... você sabe debugar o codigo?? tipo, você quer acompanhar o que acontece a cada linha que o vb executa de codigo. por exemplo, você quer saber o que acontece a cada linha depois do clique do botao. então no codigo, posicione o cursor na primera linha e aperta F9. ela vai mudar de cor. ai quando você rodar o programa (F5), assim que chegar nessa determinada linha, a execucao vai pausar. apertando F8, você faz com que ele execute a linha atual e já pause automaticamente depois pra que você veja o resultado do que foi processado. F5 de novo volta o programa pra execucao normal. mas com a aplicacao pausada, você pode ver o valor de qualquer variavel ou controle no form que esteja sendo executado. exemplo, pare o mouse em cima de x(0).AI no codigo, que uma janelinha vai abrir mostrando o valor que esta guardado nela. ou ainda, se você apertar Ctrl + G, vai aparecer a Immediate Window. la você pode executar qualquer codigo e pode ler valores das variaveis existentes. exemplo, digite: ? x(0).AI e aperta Enter. ele vai mostrar pra você o valor de x(0).AI. desse jeito você pode acompanhar linha por linha o que o vb esta fazendo e pode ver se os valores que aparecem são aqueles que você espera ou não.
-
ta. a primeira linha da sua funcao que ordena, acredito, ta assim, não?? Public Function SelectionSort(Vetor() As piloto, tam) então, faca assim: Public Function SelectionSort(ByRef Vetor() As piloto, tam) veja se resolve. se não resolver poste o seu codigo pra eu testar aqui. a e pra saber o porque dessa alteracao que eu pedi, da uma olhada nesse post: http://scriptbrasil.com.br/forum/index.php...st&p=242323
-
o nome sim deve ir pro form_load. o ia não, tem que continuar no botao porque ele é calculado a cada vez. pensa assim: quando você estiver escrevendo os nomes você esta inicializando a variavel, ou seja jogando os dados dentro, criando os pilotos. agora quando você seta o ia é aí que eles estao correndo.
-
bom, foi isso que eu achei: http://scriptbrasil.com.br/forum/index.php?showtopic=75968 veja se ajuda.
-
duas coisas: - os nomes dos pilotos você deve setar so uma vez no programa todo. assim como qualquer outro dado fixo, tipo o nome do carro, se tivesse. de preferencia ponha no Form_Load do primeiro form que carregar. porque, pensa bem, o Alonso é o 0, mas ai o Massa acaba em ultimo e é ele quem passa a ser o 0. ai você clica no botao de novo e de novo poe o nome do Alonso pro indice 0. desse jeito o Massa virou o Alonso e o mesmo aconteceu cum todos os otros pilotos. - você tem que setar os pontos depois do sort. você so pode dar os pontos depois que a corrida acaba. você so vai saber quem é o primeiro depois que o array for ordenado.
-
é, veja que eu alterei a funcao SelectionSort: Public Function SelectionSort(Vetor() As piloto, tam) o seu array não é mais Variant, então você deve especificar o tipo na funcao. do mesmo jeito, a variavel aux dentro da funcao, você também deve declarar como tipo piloto. EDITADO: hahah beleza. qualquer problema poste ai
-
cara você precisaria de um programa rodando no servidor pra enviar esses e-mails o tempo que o cara escolheu pra enviar o e-mail você grava deve gravar em algum lugar no seu servidor, pode ser num banco de dados. ai esses dados gravados vao ser lidos pelo seu programa e ele envia os e-mails. bom, mas se é você que hospeda o seu proprio site, e o a dica do Henderson não funcionar, você pode fazer o programa rodar no seu proprio pc acessando os dados no servidor, ou mesmo via web.
-
sim, antes de tentar o insert, faca um select pra ver se o e-mail existe. se existir (se o num_rows for maior que 0), de a mensagem, senao insira o email
-
não testei nenhum dos codigos abaixo, veja se funcionam. se o seu tipo é esse: Type piloto Nome As String AI As Integer Pontos As Integer End Type[/code] no modulo, declare assim: [code]Public x(19) As piloto ai pra acessar os dados, faca: x(0).AI = Int(99 * Rnd) + 1 x(1).AI = Int(100 * Rnd) + 1 .... .... x(19).AI = Int(27 * Rnd) + 1 x(0).Nome = "Alonso" x(1).Nome = "Hamilton" .... .... x(19).Nome = "Davidson"[/code] e na funcao de ordenar você deve alterar a funcao pra pegar pela propriedade AI, assim: [code]Public Function SelectionSort(Vetor() As piloto, tam) Dim i, j Dim min Dim aux As piloto For i = 0 To tam min = i For j = i + 1 To tam If Vetor(j).AI < Vetor(min).AI Then min = j Next j aux = Vetor(i) Vetor(i) = Vetor(min) Vetor(min) = aux Next i End Function veja ai se funciona. depois pra fazer a pontuacao, veja o que eu disse nesse post: http://scriptbrasil.com.br/forum/index.php...st&p=440475 veja se consegue aí, qualquer coisa poste
-
qual compilador você usa??
-
a ta, eu achei que você estivesse usando o type (que alias, era o que eu recomendaria), mas se você preferir trabalhando com a matriz, você tera que adicionar mais uma posicao no segundo indice pra gravar a pontuacao deles. e ai você teria que alterar a funcao SelectionSort, adicionando no final o codigo pra mudar de posicao a pontuacao junto. tipo assim: aux = Vetor(i, 2) Vetor(i, 2) = Vetor(min, 2) Vetor(min, 2) = aux[/code] esse é o problema de você fazer com a matriz, entende?? cada dado novo que você quiser acrescentar pro piloto, você precisaria adicionar novas linhas no SelectionSort, o que alias, pode fazer o programa rodar mais lento.
-
hum, qual parte exatamente você não entendeu?? conseguiu declarar o array como publico?? alias, você ta usando array mesmo?? você esta fazendo ordenacao usando aquela funcao?? tipo, posta o seu codigo pra eu ter uma ideia de como você esta fazendo.
-
usa serialize(): http://forum.idone.com.br/index.php?showtopic=992