Ir para conteúdo
Fórum Script Brasil

Fuzileir0

Membros
  • Total de itens

    48
  • Registro em

  • Última visita

Tudo que Fuzileir0 postou

  1. Pessoal antes de mais nada parabéns pelo fórum que me ajudou durante esse ano inteiro... Agora estou com mais dúvida... Se eu quero criar uma unit, vou em File New Unit... Se eu quiser um form eu vou em file new form Mas... como que eu crio um quickreport? Eu poderia muito bem criar um form e jogar o TQuickRep la dentro, mas não vai funcionar para o que eu quero.. O que eu quero é desenhar somente o quickreport, como mostra a imagem... Como faço isso? Fui la em file => new mas não tem quick report... Como podem ver na imagem, não existe uma borda de form porque isso aí não é form... e é isso que quero... o código é esse: unit uQuickReport; interface uses Windows, SysUtils, Messages, Classes, Graphics, Controls, StdCtrls, ExtCtrls, Forms, QuickRpt, QRCtrls, DB, DBClient, QRPrntr; type TqrpExemplo = class(TQuickRep) cdsExemplo: TClientDataSet; cdsExemploid_registro: TIntegerField; cdsExemplodes_registro: TStringField; cdsExemplodta_registro: TDateField; qrbndTitulo: TQRBand; qrbndTituloColuna: TQRBand; qrlblTitulo: TQRLabel; qrlblId: TQRLabel; qrlblDescricao: TQRLabel; qrlblData: TQRLabel; QRBand11: TQRBand; QRDBText31: TQRDBText; QRDBText32: TQRDBText; QRDBText33: TQRDBText; procedure QuickRepPreview(Sender: TObject); private public end; var qrpExemplo: TqrpExemplo; implementation uses ufrmPreview, Unit1, dm; {$R *.DFM} procedure TqrpExemplo.QuickRepPreview(Sender: TObject); begin frmPreview := TfrmPreview.Create(Application); with frmPreview do begin qrprvwPadrao.QRPrinter := TQRPrinter(Sender); ShowModal; end; end; end. Valeu!
  2. Pessoal, como vocês podem perceber estou montando um sistema de chat no estilo do MSN... Consegui fazer a comunicação entre os integrantes. Só que agora estou com uma dúvida. Cada cliente tem uma listbox com a lista de usuários on-line, se eu quiser conversar com o "João", clico duas vezes para abrir a janela. Mas aí começam minhas dúvidas: 1. Como que faço para criar uma janela quando clicar duas vezes no nick da pessoa? Lembrando que não posso criar uma janela caso já exista uma, ou seja, como verifico antes se já tem uma janela criada para aquele usuário? 2. Quando o cliente receber um socket, como que eu faço para que a mensagem seja adicionada no Memo1 daquele formulário específico, que está interligando entre aquele usuário? Obrigado!
  3. Alguém sabe? O Jhonas deu uma solução melhor mas eu queria entender sockets... por isso estou tentando fazer dessa maneira!
  4. é que eu estou querendo aprender mesmo :D Agora estou com outra dúvida... No meu chat tenho um listbox que vai listar todos os usuários que estão online, mas como que eu faço para que o usuário que entrar no Mensageiro naquele momento receba todos os nomes/dados dos usuários que já estão conectados? Tentei fazer um loop e não consegui... No meu servidor eu uso esse record pra gravar os dados de cada um.. type PUser = ^TUser; TUser = record login: string; id: integer; end; Quando o usuário se conecta: Socket.Data := New(PUser); TUser(Socket.Data^).login := argumento[1]; // cadastrando login TUser(Socket.Data^).id := StrToInt(argumento[2]); // cadastrando id ... Só que no cliente, cada usuário também precisa ter uma identificação idêntica a que tá servidor, pois quando o cara clicar duas vezes sobre o nick na ListBox vai abrir um novo form pra comunicação entre somente aqueles dois usuários. Como que eu faço pra que os dados de todos os usuários tanto no servidor quanto nos clientes conectados sejam iguais?
  5. Esses programas não fazem controle de usuário pra poder enviar mensagem só pra determinada pessoa ao invés de dar um broadcast... fazer chat de broadcast eu sei, agora to com duvida de como fazer cada usuario ter uma identificação especifica e essa identificacao não ser trocada quando um usuario cai (fazendo com que a mensagem vá para outra pessoa)
  6. Exatamente, Jhonas! Primeiro eu tentei náo reinventar a roda, baixei vaaarios scripts que tem... mas todos que estao livres só funcionam com determinado componente que não funciona no delphi 2007 (o meu)... então preferi aprender socket e tentnar entender como se comunicam e motnar o meu proprio...
  7. Nossa, Jhonas como sempre rezando a reza e fazendo milagre. Uma última (ou não) dúvida... pra encerrar a conexão com o usuário é só dar um Dispose(Ponteiro) no OnDisconnect do serversocket? Outra coisa... se um usuario quer enviar para outro, como que posso fazer uma jogada pros IDS não serem confundidos caso determinado ID saia do chat? Exemplo: Servidor = ID 0 Cliente1 = ID 1 Cliente2 = ID 2 Cliente3 = ID 3 Cliente3 envia para Cliente1 mas o Cliente1 caiu antes de receber a mensagem, dae o Cliente2 passou a ser o 1... o cliente2 que vai receber... como que posso tratar isso?
  8. Estou mexendo com socket e preciso gravar um nome no tipo que eu criei, mas está dando access violation, qual é o problema?? Valeu galera type TUser = record id: integer; nick: string; end; type PUser = ^TUser; ###### PUser(s.Socket.Data)^.nick := 'Teste'; #### Essa é a linha problemática
  9. Boa tarde a todos, Eu estou tentando colocar em prática ESTE artigo que ensina como criar um chat estilo MSN com delphi. Eu estou usando o Delphi 2007, com Indy 10 e Zeos para se ligar ao BD. Porém no tutorial está ensinando a usar com o dbExpress e estou com problema para entender como eu usaria while not qrysuporte.eof do begin listasuporte.append('listasuporte||' + [u] qrysuporteid_suporte.asstring + '||' + qrysuporteapelido.asstring + '||'+ qrysuporteonline.asstring + '||'+ qrysuportestatus.asstring+ '||');[/u] qrysuporte.next; end; As linhas sublinhadas não funcionam no Zeos, como eu faço pra funcionar? PS: todos os scripts tão no link que eu postei ali em cima.
  10. Tenta Close; Open; no Dataset após a inserção...
  11. Galera, uma duvida... tenho um dbgrid que puxa de um TQuery... Beleza Queria saber como fazer pra quando alguém INSERIR ou MEXER nesse TQuery (indicando que houve mudança na tabela) o dbgrid ser automaticamente atualizado... tem um eventoi chamado AfterInsert no TQuery, eu tentei colocar um : http://maikelscheid.blogspot.com/2008/11/d...do-imagens.html grid.DataSource := nil; grid.DataSource := dsgrid; mas não funciona... alguém?
  12. Resolvido http://maikelscheid.blogspot.com/2008/11/d...do-imagens.html
  13. Galera, estou com um problema aqui... Fiz um código pra dependendo da condição, uma imagem é adicionada ao dbgrid. Beleza. Se é só o código da imagem, ela funciona. Agora, addicionei um código pra modificar a cor da linha selecionada e outro código pra variar as cores da linha (pra facilitar leitura)... Mas com esses códigos, as imagens não aparecem... agora se eu tiro esses códigos, as imagens voltam, mas o dbgrid fica sem cor! help! procedure TfrmPrincipal.gridTarefasDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var bitmap : TBitmap; fixRect : TRect; bmpWidth : integer; imgIndex : integer; grid : TDBGrid; row : integer; begin grid := sender as TDBGrid; row := gridTarefas.DataSource.DataSet.RecNo; if Odd(row) then gridTarefas.Canvas.Brush.Color := $00E6E6E6 else gridTarefas.Canvas.Brush.Color := $00D8D8D8; if (gdselected in State) then begin gridTarefas.Canvas.Font.Color := clWhite; gridTarefas.Canvas.brush.color := clMedGray; end; // início da programacao para adicionar imagem (ATRASADO OU NÃO) fixRect := Rect; if Column.Index = 0 then begin if ((dm.qryGrid.FieldByName('fim').AsDateTime - dm.qryGrid.FieldByName('inicio').AsDateTime) <= 3) then imgIndex := 0 else imgIndex := 1; bitmap := TBitmap.Create; try il.GetBitmap(imgIndex,bitmap); bmpWidth := (Rect.Bottom - Rect.Top); fixRect.Right := Rect.Left + bmpWidth; gridTarefas.Canvas.StretchDraw(fixRect,bitmap); finally bitmap.Free; end; fixRect := Rect; fixRect.Left := fixRect.Left + bmpWidth; end; // fim da programacao para adicionar imagem (ATRASADO OU NÃO) // gridTarefas.DefaultDrawing := true; gridTarefas.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; Código indentado e colorido no pastebin: aqui.
  14. Boa noite, eu estou usando este código para colocar uma imagem numa célula do DBGrid caso o valor seja = 2, porém como faço para colocar um texto ao invés de img? //verifica o valor da coluna if dbgridTarefas.Columns[4].Field.Value = dados_usuario.id then begin //carrega ícone e pinta ilImagens.GetBitmap(3, lIcone); dbgridTarefas.Canvas.StretchDraw(lRect, lIcone); end;
  15. Veja este artigo http://www.delphibr.com.br/artigos/pdxvsib.php abraço Eu uso o mysql, você pode me dizer como faço isso?
  16. Pessoal, Preciso ter uma ideia de como fazer o seguinte: Dar a opção ao usuário de editar determinado registro da tabela (andar de registro em registro com o dbnavigator) porém quando chegar em um registro QUE JÁ ESTÁ SENDO EDITADO por outro usuário, os campos edits e combobox que normalmente preencheriam com os dados da linha do BD, ficaria desabilitados, não deixando o usuário editar... Alguma ideia??
  17. Galera, coloquei o Visible := false no TLabeledEdit. O Edit invisibiliza mas o label NÃO! É um bug do Delphi?
  18. Eu voltei a ter a mesma dúvida, só que agora é o seguinte... Pelo que você falou, eu SEMPRE tenho que ter uma query pra fazer o dblookupcombobox funcionar? E se eu tiver 2 tabelas: DEPARTAMENTO id_departamento (chave primária) nome_do_departamento USUÁRIO id_usuario (chave primária) id_departamento (chave estrangeira, que é ligada à chave homônima que está na tabela DEPARTAMENTO) nome_do_usuario E no DBLookupCombobox, eu quero imprimir na dropdown o 'nome_do_departamento' (ListField) com 'id_departamento' como KeyField. Eu já tentei de tudo aqui e fica desabilitado (mesmo problema que citei no início) SOCORRO!
  19. Boa noite a todos, Sou novato no delphi aalém de ser a primeira aplicação desktop que faço... Agora estou numa parte em que preciso trabalhar com banco de dados. Eu estou usando o MySQL e o componente que uso é o Zeos (tudo com Delphi 2007). Mas me surgiram umas dúvidas... Quando rodo meu programa na máquina que criou o programa, ele acessa o banco de dados normalmente. Se eu tento abrir em outra máquina, recebo falta de dll (libmysql.dll e outra). Como que funcionam essas dlls? É só eu deixar na mesma pasta do projeto que ele já incorpora no EXE ou ela tem que acompanhar o EXE pra todo lado? Deixando essas dlls na mesma pasta já se faz o programa acessar o bd em outra máquina? Dúvidas noobs, de iniciantes, mas tenho ctza q mta gente tem!!! Valeu a todos que já responderam minhas duvidas e aos que ainda responderão!!
  20. Boa noite !!! Sou novo com Delphi, então preciso de uma dica de vocês que já programa há mais tempo... Fiz o formulário de login que irá redirecionar pro frmPrincipal CASO o login e senha estejam batendo com o banco de dados. Beleza, funciona tranquilo. Ele procura no BD pra ver se tem alguma linha que bata o login e senha. Nessa mesma linha do BD, tem informações do usuário (exemplo: admin(TINYINT), 1=sim, 0 não). Com essa informação da coluna admin, eu conseguiria habilitar ou desabilitar alguns botões e edits do frmPrincipal. Minha pergunta é: ONDE eu posso armazenar essas informações e QUAL A MELHOR MANEIRA de lidar com elas? Eu pensei em fazer o seguinte... criar uma função que é ativada quando o usuário se conecta. Nessa função eu gravo nas variaveis globais o valor puxado do BD (ex: var admin := SELECT FROM ...) Mas essa é a melhor maneira? No aguardo...
  21. Micheus, primeiramente obrigado pelo feedback. Bom, não existe a propriedade Active no TTrayIcon, por isso não teve como eu modificá-la pra fazer um teste... Que estranho!
  22. Boa noite, Antes, quando eu criava uma nova aplicação no Delphi (2007), ela aparecia na barra de tarefas (não confundir com tray) automaticamente quando alguém a abria. Agora, não tá aparecendo mais. Ele aparece na Tray, mas não na barra de tarefas. Nem quando eu minimizo. Eu desconfio que seja alguma configuração do meu TTrayIcon, mas não sei qual. Alguém tem uma ideia? Valeu!
  23. Alguém poderia me ajudar? Situação: Tenho 2 forms. O frmLogin (que é o Mainform) e o frmPrincipal. Quando o usuário consegue se logar, o frmPrincipal abre mas o frmLogin continua aberto. Quero fechá-lo mas já tentei de todas as maneiras e ele não fecha. Meu código: if not Assigned(UTelaInicial.frmPrincipal) then try begin frmPrincipal := TfrmPrincipal.Create(Self); frmPrincipal.ShowModal; end finally frmLogin.free; end;
×
×
  • Criar Novo...