Ir para conteúdo
Fórum Script Brasil

Fuzileir0

Membros
  • Total de itens

    48
  • Registro em

  • Última visita

Sobre Fuzileir0

Fuzileir0's Achievements

0

Reputação

  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.
×
×
  • Criar Novo...