Ir para conteúdo
Fórum Script Brasil

Zeero

Membros
  • Total de itens

    7
  • Registro em

  • Última visita

Tudo que Zeero postou

  1. Você pode incluir a propriedade "Nível" na classe de usuários e fazer uma verificação desse valor ativando e desativando botões num form principal dependendo da resposta da verificação. Por exemplo: If usuario.nivel < 3 Then 'defini nível 3 para o atendente btnAtendente1.Enabled = True btnAtendente2.Enabled = True ' . . . End If Você pode fazer comunicação de forms para facilitar essa interação. Abraços
  2. Interessante. Essa classe é nova pra mim também.
  3. Você complicou um pouco o código. Desenvolvi duas soluções simples: Varredura nos caracteres: Function FLUCase(ByVal strFrase As String) As String Dim i As Integer Dim buff As String For i = 1 To strFrase.Length If i = 1 OrElse Mid(strFrase, i - 1, 1) = Chr(32) Then buff &= UCase(Mid(strFrase, i, 1)) Else buff &= Mid(strFrase, i, 1) End If Next Return buff End Function Varredura nas palavras: Function FLUCase(ByVal strFrase As String) As String Dim buff As String Dim tolk As Object() = Split(strFrase, Chr(32)) Dim i As Integer For i = tolk.GetLowerBound(0) To tolk.GetUpperBound(0) buff = buff & UCase(Mid(tolk(i), 1, 1)) & Mid(tolk(i), 2, Len(tolk(i))) & Chr(32) Next buff = Mid(buff, 1, Len(buff) - 1) 'Remove o espaço sobressalente. Return buff End Function É engraçado como na programação temos vários caminhos que dão no mesmo fim. Abraço.
  4. A forma mais inteligente de desenvolver tal aplicação é utilizando sistema de tolkiens(a função Split do VB). Neste caso primeiro você deve ler o arquivo completamente. Proceda como achar melhor com base nesse código: Dim Arq As Integer Dim Linha As String Dim Conteudo As String Arq = FreeFile Open "C:\ .. Onde está o seu arquivo .TXT" For Input As #Arq Do While Not EOF(Arq) Input Line sLinha If Conteudo = vbNullString Then Conteudo = sLinha Else Conteudo = Conteudo & vbCrLf & sLinha End If Loop Close #Arq Assim você terá todo o conteúdo do arquivo dentro da variável Conteudo. No caso da primeira dúvida, não precisariamos dividir a variável em tolkiens, bastaria colocar um contador no loop Do-While e na terceira repetição do código atribuir o valor de sLinha à variável em questão, ou utilizar algum tipo de função Seek para "navegar" pelo arquivo. Porém vou explicar como fazer com tolkiens, pois assim podemos resolver os dois problemas. Na primeira dúvida queremos a terceira linha do conteúdo do arquivo, logo vamos ter que separar o conteúdo tendo como critério o caracter [ENTER] composto pelos caracteres 13 e 10, no caso do VB temos a constante vbCrLf. Ficaria assim: Dim Linhas As Variant Linhas = Split(Conteudo, vbCrLf) 'Lembrando que Linhas(0), será a primeira linha, Linhas(2) será a terceira. MsgBox Linhas(2) Quanto a segunda dúvida, podemos utilizar o caracter '=' como critério para a divisão da string: Dim TermosDivididos As Variant TermosDivididos = Split(Conteudo, "=") 'Podemos fazer uma varredura e encontrar os valores a partir dos termos que os antecedem. Exemplo: 'Se o valor é "João Pedro" eu sei que o que antecede o "=" é Nome. (Nome = João Pedro). For i = LBound(TermosDivididos) To UBound(TermosDivididos) If TermosDivididos(i) = "Nome" Then MsgBox "Valor encontrado no campo nome: " & TermosDivididos(i + 1) ElseIf TermoosDivididos(i) = "Idade" Then MsgBox "Valor encontrado no campo idade: " & TermosDivididos(i + 1) End If Next Essa é uma das várias soluções para sua dúvida. Lembrando que os termos podem não ser exatamente iguais ao que você comparar. Quero dizer, "nome " não é igual a " nome" que não é igual a "nome". Daí você pode utilizar a função Trim() para acabar com os espaços sobressalentes, mas o mais seguro mesmo é utilizar InStr() para procurar melhor a sua string. Abraços.
  5. Zeero

    Botao pressionado

    Você pode utilizar CheckBoxs com a propriedade .Style = 1. Daí você pode repetir um mesmo código, para fazer elas voltarem ao normal ao clicar em outra, em todos os eventos Click, ou fazer um array de controles utilizando a propriedade Index. Daí ficaria mais ou menos assim: Private Sub SuaCheckBox_Click(Index) Dim i As Integer 'Desabilita todas as CheckBoxs, exceto a que foi clicada: For i = LBound(SuaCheckBox) To UBound(SuaCheckBox) If i <> Index Then SuaCheckBox(i).Value = 0 Next 'Código de cada CheckBox separado pela Caption(também poderia ser pelo Index mesmo): Select Case SuaCheckBox(Index).Caption Case "Fechar Programa": 'código ... Case "Abrir Banco de Dados": 'código ... End Select End Sub É por aí... Abraço.
  6. Essa é uma função que eu desenvolvi para desenhar cubos em C. Criei uma variável que chamei de índice de rotação, a partir dela a função desenha o cubo com certa inclinação, com um loop podemos fazer uma animação 3D de rotação. O movimento é rotativo, isto é: o cubo gira em seu próprio eixo. É um ótimo exemplo pra quem está começando a programar com gráficos em C. Minha função: /* Criação de Cubos por Raphael Pina Viana */ void drawCube(int x, int y, int aresta, int ir) { int i; float dif = (aresta / 2); /* constante diferenca */ if(ir > aresta / 2) { ir = ir % (aresta / 2); } /* Quadrado Principal */ line(x, y + (2 * ir), x - ir, y + aresta - ir); line(x, y + (2 * ir), x + aresta, y + (2 * ir)); line(x + aresta, y + (2 * ir), x + aresta - ir, y + aresta - ir); line(x + aresta - ir, y + aresta - ir, x - ir, y + aresta - ir); /* Arestas que ligam os dois quadrados */ line(x, y + (2 * ir), x - dif + ir, y - dif + ir); line(x + aresta, y + (2 * ir), x + dif + ir, y - dif + ir); line(x - ir, y + aresta - ir, x - dif, y + dif - (2 * ir)); line(x + aresta - ir, y + aresta - ir, x + dif, y + dif - (2 * ir)); x = x - dif; y = y - dif; /* Quadrado Secundario */ line(x + ir, y + ir, x, y + aresta - (2 * ir)); line(x + ir, y + ir, x + aresta + ir, y + ir); line(x + aresta + ir, y + ir, x + aresta, y + aresta - (2 * ir)); line(x + aresta, y + aresta - (2 * ir), x, y + aresta - (2 * ir)); } Explicação das variáveis de chamada: X e Y são as coordenadas X e Y do ponto superior esquerdo do quadrado principal do cubo. Aresta é o comprimento de cada "traço" que compõe o cubo. ir é o índice de rotação. Um sistema que eu criei para alterar o desenho do cubo em seu próprio eixo, fazendo o efeito de rotação. Note que o índice de rotação deve valer de 0 até a metade do valor da aresta. Logo 0 e (aresta / 2) é o estado estático do cubo. Um exemplo que eu criei em que o cubo da 5 voltas e para, daí você pressiona qualquer tecla e a aplicação é finalizada: /* Animação 3D, por Raphael Pina Viana */ #include <stdio.h> #include <conio.h> #include <dos.h> #include <graphics.h> int main() { /* VARIAVEIS */ int far *gDriver, *gMode; int color = WHITE; int i; /* FUNCOES */ void drawCube(int, int, int, int); /* Inicia componentes gráficos */ detectgraph(gDriver, gMode); initgraph(gDriver, gMode, ''); for(i = 0; i <= 40 * 5; i ++) { cleardevice(); drawCube(450, 200, 80, i); delay(25000); } /* Fecha componentes gráficos e encerra o programa */ getch(); closegraph(); return 1; } void drawCube(int x, int y, int aresta, int ir) { int i; float dif = (aresta / 2); /* constante diferenca */ if(ir > aresta / 2) { ir = ir % (aresta / 2); } /* Quadrado Principal */ line(x, y + (2 * ir), x - ir, y + aresta - ir); line(x, y + (2 * ir), x + aresta, y + (2 * ir)); line(x + aresta, y + (2 * ir), x + aresta - ir, y + aresta - ir); line(x + aresta - ir, y + aresta - ir, x - ir, y + aresta - ir); /* Arestas que ligam os dois quadrados */ line(x, y + (2 * ir), x - dif + ir, y - dif + ir); line(x + aresta, y + (2 * ir), x + dif + ir, y - dif + ir); line(x - ir, y + aresta - ir, x - dif, y + dif - (2 * ir)); line(x + aresta - ir, y + aresta - ir, x + dif, y + dif - (2 * ir)); x = x - dif; y = y - dif; /* Quadrado Secundario */ line(x + ir, y + ir, x, y + aresta - (2 * ir)); line(x + ir, y + ir, x + aresta + ir, y + ir); line(x + aresta + ir, y + ir, x + aresta, y + aresta - (2 * ir)); line(x + aresta, y + aresta - (2 * ir), x, y + aresta - (2 * ir)); }Programa com a animação: http://rapidshare.com/files/96573512/3D_em_C.zip.html Abraços !
  7. E aí galera. Esse aplicativo utiliza o speaker do gabinete para transmitir mensagens em código morse. O usuário escreve a mensagem, o programa converte para código morse e trasmite pelo speaker. Note: se o speaker da sua máquina não estiver funcionando a mensagem não será transmitida. Código: #include <stdio.h> #include <conio.h> #include <dos.h> #include <math.h> char morse[600]; int c = 0; int main() { char msg[200]; int i; void addDitDah(char); printf("Telegrafo C v1.0\n"); printf("por Raphael Pina Viana\n\n"); printf("Mensagem: "); for(i = 0; i < 200; i++) { printf("%c", msg[i] = getch()); if(msg[i] == 13) { msg[i] = ''; break; } } printf("\n"); printf("\n\nEncriptando mensagem ... "); for(i = 0; i <= 200; i++) { /* Converte para Alfabeto em Codigo Morse */ switch(msg[i]) { case (int)'a': { addDitDah('.'); addDitDah('-'); addDitDah('0'); break; } case (int)'b': { addDitDah('-'); addDitDah('.'); addDitDah('.'); addDitDah('.'); addDitDah('0'); break; } case (int)'c': { addDitDah('-'); addDitDah('.'); addDitDah('-'); addDitDah('.'); addDitDah('0'); break; } case (int)'d': { addDitDah('-'); addDitDah('.'); addDitDah('.'); addDitDah('0'); break; } case (int)'e': { addDitDah('.'); addDitDah('0'); break; } case (int)'f': { addDitDah('.'); addDitDah('.'); addDitDah('-'); addDitDah('.'); addDitDah('0'); break; } case (int)'g': { addDitDah('-'); addDitDah('-'); addDitDah('.'); addDitDah('0'); break; } case (int)'h': { addDitDah('.'); addDitDah('.'); addDitDah('.'); addDitDah('.'); addDitDah('0'); break; } case (int)'i': { addDitDah('.'); addDitDah('.'); addDitDah('0'); break; } case (int)'j': { addDitDah('.'); addDitDah('-'); addDitDah('-'); addDitDah('-'); addDitDah('0'); break; } case (int)'k': { addDitDah('-'); addDitDah('.'); addDitDah('-'); addDitDah('0'); break; } case (int)'l': { addDitDah('.'); addDitDah('-'); addDitDah('.'); addDitDah('.'); addDitDah('0'); break; } case (int)'m': { addDitDah('-'); addDitDah('-'); addDitDah('0'); break; } case (int)'n': { addDitDah('-'); addDitDah('.'); addDitDah('0'); break; } case (int)'o': { addDitDah('-'); addDitDah('-'); addDitDah('-'); addDitDah('0'); break; } case (int)'p': { addDitDah('.'); addDitDah('-'); addDitDah('-'); addDitDah('.'); addDitDah('0'); break; } case (int)'q': { addDitDah('-'); addDitDah('-'); addDitDah('.'); addDitDah('-'); addDitDah('0'); break; } case (int)'r': { addDitDah('.'); addDitDah('-'); addDitDah('.'); addDitDah('0'); break; } case (int)'s': { addDitDah('.'); addDitDah('.'); addDitDah('.'); addDitDah('0'); break; } case (int)'t': { addDitDah('-'); addDitDah('0'); break; } case (int)'u': { addDitDah('.'); addDitDah('.'); addDitDah('-'); addDitDah('0'); break; } case (int)'v': { addDitDah('.'); addDitDah('.'); addDitDah('.'); addDitDah('-'); addDitDah('0'); break; } case (int)'w': { addDitDah('.'); addDitDah('-'); addDitDah('-'); addDitDah('0'); break; } case (int)'x': { addDitDah('-'); addDitDah('.'); addDitDah('.'); addDitDah('-'); addDitDah('0'); break; } case (int)'y': { addDitDah('-'); addDitDah('.'); addDitDah('-'); addDitDah('-'); addDitDah('0'); break; } case (int)'z': { addDitDah('-'); addDitDah('-'); addDitDah('.'); addDitDah('.'); addDitDah('0'); break; } case 32: { addDitDah('/'); break; } case 0: { addDitDah(''); break; } } } printf("[OK]\n\nPressione qualquer tecla para trasmitir mensagem ..."); getch(); for(i = 0; i <= 600; i++) { nosound(); delay(9 * pow(10, 15)); if(morse[i] == '.') { sound(200); delay(10000); } else if(morse[i] == '-') { sound(200); sleep(1); } else if(morse[i] == '0') sleep(1); else if(morse[i] == '/') sleep(2); else if(morse[i] == '') break; } printf("\n\nTrasmissao terminada."); getch(); return 1; } void addDitDah(char DitDah) { morse[c] = DitDah; c++; }Download(*.exe + *.c): http://rapidshare.com/files/97004799/Tel_grafo.rar.html Abraço.
×
×
  • Criar Novo...