Ir para conteúdo
Fórum Script Brasil

Manoel Zancheta

Membros
  • Total de itens

    114
  • Registro em

  • Última visita

Tudo que Manoel Zancheta postou

  1. Então, este link não me ajudou. Eu já havia pesquisado MUITO antes de postar aqui. Eu sempre destrui os objetos com FreeAndNil(Objeto) e sempre funcionou. Meu problema está em um objeto que contem uma lista (TObjectList) de outros objetos. Se eu dou o freeandnil no objeto, a lista continua existindo com os objetos dentro dela. Se eu percorro a lista com um for e dou free objeto por objeto da lista, os mesmo continuam lá. Neste for já tentei free, nil, clear, remove, delete e nada. Quando eu crio um novo componente, a lista esta lá com os objetos anteriores.
  2. TVenda = class private FlisDetalheVenda : TObjectList end;Olá. Minha classe TVenda, tem um field que é uma lista de objetos (TVendaDetalhe) contendo os itens da venda. Eu não estou conseguindo destruir efetivamente estes detalhes quando vou destruir o objeto TVenda (já tentei dar free, clear, nil, remove, delete, na lista e nada). Se crio um novo objeto TVenda em seguida, a lista tem os objetos anteriores constando nela. Alguém tem alguma idéia? Grato!
  3. Estava apenas testando para ver, pois surgiu aqui a possibilidade de deixar uma marca d´agua de fundo, seria uma imagem bem suave.
  4. ahh, descobri. é que eu tinha colocado o dbgrid sem "ligar" nada nele, então não tinha nenhum field nele. se bem que assim, o grid só fica transparente onde estão os registros, a área sem registro não fica transparente.
  5. Não funcionou.... Não dispara o evento DBGrid1DrawDataCell.
  6. olá Jhonas. Existe alguma regra na disposição dos componentes? Eu coloquei tanto a imagem como o grid dentro de um panel, é isso? ps - eu não acredito ser problema do Delphi pois tenho outros formulários em que este evento do DBGrid é disparado normalmente.
  7. Fiz com TObjectList e funcionou certinho. Grato!
  8. Eu sei que o post é antigo, mas eu preciso da mesmo coisa a que este post se refere e tenho o mesmo problema de NÃO gerar o evento Draw Cell do Grid.
  9. Olá. Eu tenho uma classe de produto e nela eu coloquei um field do tipo TList. No formulário. eu consigo adicionar os objetos grupo na lista, porém, na classe na função persistir, eu não consigo "recuperar" os objetos do TList. Classe unit uclasse; interface uses SysUtils, Classes, Dialogs, StdCtrls, DB, ADODB; type TGrupo = class private FChave: String; protected procedure SetChave(const Value: String); public property Chave: String read FChave write SetChave; constructor Create; destructor Destroy; Override; published end; TProduto = class private FNome: String; FGrupo: TList; protected procedure SetGrupo(const Value: TList); procedure SetNome(const Value: String); public property Nome : String read FNome write SetNome; property Grupo : TList read FGrupo write SetGrupo; function persistir (prod: TProduto): Boolean; constructor Create; destructor Destroy; Override; published end; implementation { TProduto } constructor TProduto.Create; begin inherited Create; FGrupo := TList.Create; end; destructor TProduto.Destroy; begin inherited; end; function TProduto.persistir(prod: TProduto): Boolean; begin prod.Grupo[1]. <--------???????? end; procedure TProduto.SetGrupo(const Value: TList); begin FGrupo := Value; end; procedure TProduto.SetNome(const Value: String); begin FNome := Value; end; { TGrupo } constructor TGrupo.Create; begin inherited Create; end; destructor TGrupo.Destroy; begin inherited; end; procedure TGrupo.SetChave(const Value: String); begin FChave := Value; end; end.e no formulário está assim: procedure TForm1.Button1Click(Sender: TObject); var produto : TProduto; gr : TGrupo; x : intger; begin produto := TProduto.Create; produto.Nome := 'teste'; for x:= 1 to 10 do begin gr := TGrupo.Create; gr.Chave := '11111'; produto.Grupo.Add(gr) end; end; Estou fazendo algo errado? É possível ter uma llista assim nos fields do componente?
  10. Eu usei o OnExit, OnEnter e Keypress do próprio componente com inherited e funcionou. Valeu!
  11. Olá. Criei alguns componentes personalizados, herdando de tedit, tmemo, tmaskedit, etc. Nestes componentes, eu já deixei programado códigos como no onexit, por exemplo. Agora quando uso o componente, se programado algo no onexit eu perco o conteúdo programado direto no código fonte componente. Há uma forma de manter a programação original e acrescentar outras?
  12. consegui fazer bastante coisa, sobrescreve métodos, acresecentar propriedades, porem não consegui mudar a propriedade Text do TEdit pra ficar no padrão '0,00'.
  13. Criar um novo componente pra mim já resolveu, ficou bacana. Pode marcar como resolvido. Obrigado e um grande abraço!
  14. Os modelos que achei, fazem herança do form com todos os componentes. Eu não achei nada que mostre se é possível eu herdar apenas um botão e seus métodos (por exemplo). Esta parte da herança do form eu já faço, só queria deixar os objetos num template, por exemplo: Teria: - edits já tratados só para números; - edits já tratados para valor; - edits já tratados para alfanuméricos; - maskedit formatado para CNPJ, CPF, RG, IE, etc... Será que é possível fazer isso, não achei nada. Grato!
  15. Olá! Existe algum tipo de herança visual sem ser a herança de um form todo? Por exemplo, ter um repositório de componentes pré configurados e herdá-los conforme a necessidade? Grato!
  16. a máquina foi formatada. mas as instalações do Delphi são idênticas, como pode faltar algo:
  17. Olá. Estou com o erro Required package 'DataSnapCommon' not found ao compilar meu projeto para Android. O fato curioso é que começou depois que migrei os fontes para um computador novo de 64 bits. No micro antigo (32 bits), eu compilava sem problemas. Já desinstalei e reinstalei o XE6 mas não é o caso. Verifiquei os Paths e também estão corretos. alguém já passou por um problema parecido? Grato!
  18. Você já tentou tentou pegar pelo keydown do form? No form, precisa deixar keypreview = true.
  19. Vou ter que gerar no server mesmo, pois eu quero deixar este relatório disponível para qualquer tipo de user (java, delphi, asp, php), ele apenas acessa os métodos do servidor pra gerar o relatório.
  20. Se eu gerar no cliente, vou ter q trafegar todos os dados, não ficará lento?
  21. Bom dia! Queria saber a opinião dos amigos sobre a melhor forma de tratar relatórios em ambiente 3 camadas já que a geração dá-se do lado server. Relatório pequenos tudo bem, mas quando for uma listagem enorme? Como vocês tem feito, via dataset mesmo, json, gravam em arquivo e transmitem? Grato!
  22. Jhonas, comprimindo a imagem funcionou o envio de stream. Agora preciso do processo contrário, converter esta string no usuário para JPG. Pesquisei muita coisa mas nenhuma funcionou. procedure SetJPGCompression(ACompression: integer; const AInFile: string; const AOutFile: string); var iCompression: integer; oJPG: TJPegImage; oBMP: TBitMap; begin { Forcar a Compressão para a faixa entre 1..100 } iCompression := abs(ACompression); if iCompression = 0 then iCompression := 1; if iCompression > 100 then iCompression := 100; { Cria as classes de trabalho Jpeg e Bmp } oJPG := TJPegImage.Create; oJPG.LoadFromFile(AInFile); oBMP := TBitMap.Create; oBMP.Assign(oJPG); { Fazer a Compressão e salva o novo arquivo } oJPG.CompressionQuality := iCompression; oJPG.Compress; oJPG.SaveToFile(AOutFile); { Limpar } oJPG.Free; oBMP.Free; end; function GetFileSizeEx(const FileName: string): LongInt; var SearchRec: TSearchRec; begin try if FindFirst(ExpandFileName(FileName), faAnyFile, SearchRec) = 0 then Result := SearchRec.Size else Result := -1; finally FindClose(SearchRec); end; end; procedure TConsultaMedicos.AjustaImagem(); var Size: Real; Tamanho: String; begin Size := GetFileSizeEx(opendialog1.FileName)/1024; NovoNome := opendialog1.FileName; Tamanho := Format('%f KB', [Size]); // Tamanho maior que 50 KB if Size > 50 then begin NovoNome := copy(opendialog1.FileName, 1, length(opendialog1.FileName) - 4) + '_new.jpg'; SetJPGCompression(15, opendialog1.FileName, NovoNome); end; end;
×
×
  • Criar Novo...