Ir para conteúdo
Fórum Script Brasil

Graymalkin

Veteranos
  • Total de itens

    8.257
  • Registro em

  • Última visita

Tudo que Graymalkin postou

  1. Graymalkin

    Sorteio De Times

    Infelizmente não sei de alguma apostila para iniciantes em Delphi. Todavia, o que você precisar, poste aqui no fórum que a gente tenta ajudar. Em termos de programação é meio vago definir o "certo" e o "errado" (falo no sentido de algo que esteja realizando exatamente o esperado), uma vez que existem várias maneiras de se fazer a mesma coisa. E essa sua é uma delas. Abraços, Graymalkin
  2. Basicamente sim. Abraços, Graymalkin
  3. Graymalkin

    Abrir Arquivo

    Não sei o que exatamente você entende por "abrir um arquivo", mas, se você estiver se referindo a leitura de um arquivo texto, dê uma olhada no exemplo abaixo: Dim arquivo As New System.IO.FileStream("c:\teste.txt", IO.FileMode.Open) Dim dados(arquivo.Length) As Byte arquivo.Read(dados, 0, arquivo.Length) arquivo.Close() MsgBox(System.Text.Encoding.Default.GetString(dados)) Certo? Graymalkin
  4. Isso já é o que CInt() faz... por isso não entendi qual era a sua dúvida. Abraços, Graymalkin
  5. Experimente com a função Sleep (note o "S" maiúsculo) do <windows.h>. Abraços, Graymalkin
  6. Já tinha um post sobre isso (de uma semana atrás): http://scriptbrasil.com.br/forum/index.php?showtopic=51981 ... Mas é bom pra reforçar. Abraços, Graymalkin
  7. Utilize o operador LIKE e o caracter curinga % na SQL, exemplo: SELECT * FROM tabela WHERE campo LIKE '%Aru%'; Abraços, Graymalkin
  8. Graymalkin

    Sorteio De Times

    O jeito mais simples é jogar para uma matriz e ordenar somente por uma das "colunas". No exemplo abaixo eu fiz isso, e guardo a pontuação na primeira "coluna" e o nome na segunda: var v : array[0..3, 0..1] of string; i, j : integer; aux1, aux2 : string; begin v[0, 0] := '4'; v[0, 1] := 'Time1'; v[1, 0] := '2'; v[1, 1] := 'Time2'; v[2, 0] := '1'; v[2, 1] := 'Time3'; v[3, 0] := '3'; v[3, 1] := 'Time4'; for i:=0 to 3 do for j:=0 to 3 do if strtoint(v[i, 0])>strtoint(v[j, 0]) then begin aux1 := v[i, 0]; aux2 := v[i, 1]; v[i, 0] := v[j, 0]; v[i, 1] := v[j, 1]; v[j, 0] := aux1; v[j, 1] := aux2; end; for i:=0 to 3 do showmessage(inttostr(i+1) + 'º Lugar: ' + v[i, 1] + ' com ' + v[i, 0] + ' pontos!'); end; Certo? Graymalkin
  9. Graymalkin

    Sorteio De Times

    e deu certo... seria esse o geito certo mesmo,ou eu fiz uma gambiarra ?? =]]] Abraços Claudio Sim, está certo. É isso que o loop faz. Abraços, Graymalkin
  10. Se você quiser procurar por *qualquer um* dos campos, basta trocar o AND por OR. Todavia, dessa maneira ele *não vai olhar se ambas* as condições atendem ao critério. Ele vai olhar se *qualquer uma* delas atende. Alternativamente, você pode simplesmente acrescentar somente os critérios que foram preenchidos. Repare que todas as condições serão ligadas por um conectivo lógico, exceto a primeira. Então, para facilitar o trabalho, eu sempre coloco uma condição sempre verdadeira nela e as demais vão sendo preenchidas se for o caso. Um exemplo prático: query1.sql.clear; query1.sql.add('SELECT * FROM tabela WHERE 1=1'); if edtNome.text<>'' then query1.sql.add(' AND Upper(nome) LIKE Upper(' + quotedstr('%' + edtNome.text + '%') + ')'); if edtCodigo.text<>'' then query1.sql.add(' AND Str(codigo) LIKE ' + quotedstr('%' + edtCodigo.text + '%')); {... e assim por diante.} Note que a primeira condição (1=1) vai ser sempre verdadeira, portanto ignoramos. Isso é só um macete para não ter que decidir em qual deveremos colocar o AND na frente (lembrando que a primeira não o tem). Daí, somente se o nome estiver preenchido ele vai colocar a segunda condição. Se o código também estiver aí entrará a terceira condição. Se somente código estiver preenchido, este entrará como a segunda. Sacou? Ah, e veja se o Str(codigo) vai funcionar para o Paradox. No Jet eu sei que funciona. Qualquer dúvida, 'stamos aí. Abraços, Graymalkin
  11. Sim, existe a API GetShortPathName para isso. Exemplo: var resultado : string; tam : integer; begin SetLength(resultado, 255); tam := GetShortPathName(PChar('c:\arquivos de programas\meu sistema\'), PChar(resultado), length(resultado)); SetLength(resultado, tam); showmessage(resultado); end; Abraços, Graymalkin
  12. Sim, exatamente. O operador LIKE só pode ser usado com campos alfanuméricos. Para campos numéricos você terá que utilizar um dos operadores relacionais (=, <>, >, <, etc.). Ou ainda, transformar o valor em alfanumérico (com a função Str(), no caso do mecanismo Jet) e depois aplicar o LIKE. Qual banco de dados você está utilizando? Abraços, Graymalkin
  13. Graymalkin

    Conecção Db

    E a mensagem de erro é a mesma? A pasta onde o BD está tem permissão para escrita? Abraços, Graymalkin
  14. Pra quê reinventar a roda? Utilize a playlist disponibilizada pelo próprio WMP. Exemplo: Dim f As IWMPMedia Dim lista As IWMPPlaylist Set lista = WMP1.newPlaylist("minha_playlist", "") filmes = Array("c:\temp\video1.wmv", "c:\temp\video2.wmv", "c:\temp\video3.wmv") For Each filme In filmes Set f = WMP1.newMedia(filme) lista.appendItem f Next filme WMP1.currentPlaylist = lista WMP1.Controls.play Note que "WMP1" é o controle do Windows Media Player. Abraços, Graymalkin
  15. Graymalkin

    Ordenar Posicoes

    Não... aliás, acho que esta já é uma ótima forma (utilizando Recordsets desconectados). Abraços, Graymalkin
  16. Supondo que o seu código seja texto, você pode fazer uma SQL assim: SELECT * FROM tabela WHERE codigo LIKE '%1%' AND nome LIKE '%J%'; Note que o esquema é ligar as condições pelo conectivo AND. Abraços, Graymalkin
  17. Graymalkin

    Conecção Db

    O problema está na linha... Cadastro.Open "Cadastro", conn, 3, 3 ... que deveria ser: Cadastro.Open "Cadastro", conn, 2, 3 O 2 é adOpenDynamic (alterável) e o 3 é adOpenStatic (somente leitura). Abraços, Graymalkin
  18. Graymalkin

    Ordenar Posicoes

    O For Each... Next é uma alternativa (mais pragmática na utilização, na minha opinião) ao For... Next (eu simplesmente não conseguiria viver sem o For Each... ). Para esclarecimentos sobre o For Each... Next, dê uma olhada neste post (do meio para baixo): http://scriptbrasil.com.br/forum/index.php...=0entry249402 Abraços, Graymalkin
  19. Graymalkin

    Ordenar Posicoes

    Como você fez? Lembre-se que é um vetor de vetores e não uma matriz propriamente. Eu fiz o teste assim: For Each informação In dados For Each dado In informação Debug.Print dado Next dado Next informação Abraços, Graymalkin
  20. Graymalkin

    Conecção Db

    Como você abre o BD e a tabela? É nesse momento que você define se é somente leitura ou não. Abraços, Graymalkin
  21. Graymalkin

    Sorteio De Times

    Então, veja se isso serve: var times : array[0..9] of integer; i, qt, n, total : integer; achou : boolean; begin randomize; qt := 0; i := 0; for i:=low(times) to high(times) do times[i] := -1; while qt<=high(times) do begin n := random(high(times)+1)+1; achou := false; for i:=low(times) to high(times) do if times[i]=n then achou := true; if not achou then begin times[qt] := n; qt := qt+1; end; end; total := trunc((high(times)-1)/2); for i:=0 to total do begin showmessage('Time ' + inttostr(times[i]) + ' : Time ' + inttostr(times[total+i+1])); end; Abraços, Graymalkin
  22. Então, pode ser: SELECT Entradas.*, ItensEntradas.* FROM Entradas INNER JOIN ItensEntradas ON Entradas.NumeroNF = ItensEntradas.NumeroNF AND Entradas.Codigo = ItensEntradas.CodigoEntrada; Certo? Graymalkin
  23. Graymalkin

    Twebbrowser

    Acho que você pode obter isso assim: memo1.Text := WebBrowser1.OleObject.Document.documentElement.innerHTML; No caso acima, o código HTML vai para uma Memo, mas você pode fazer qualquer outra coisa com ele, é claro. Abraços, Graymalkin
  24. Graymalkin

    Sorteio De Times

    Sempre nesta ordem (o atual com o próximo) ou aleatoriamente? Abraços, Graymalkin
×
×
  • Criar Novo...