-
Total de itens
9.657 -
Registro em
Tudo que Jhonas postou
-
Tenho a mesma versão que vem com o delphi 7 .. o ultimo código que te passei funciona nele. abraço
-
Em component > install packages ir em C:\Arquivos de programas\Borland\Delphi2007\Bin e adicionar o dcltqr70.bpl abraço
-
Function SQL Server + DELPHI 5
pergunta respondeu ao Felipe - Iniciante-Delphi de Jhonas em Delphi, Kylix
Veja este artigo http://www.linhadecodigo.com.br/Artigo.aspx?id=687 abraço -
(Resolvido) Onde está nosso amigo Jhonas?
tópico respondeu ao Douglas Soares de Jhonas em Outros Assuntos
Oi amigos ... meu micro ficou alguns dias em conserto... problemas na placa mãe. Não achei que iriam sentir minha falta... rs abraços -
-906 335544744 max_att_exceeded Maximum user count exceeded.Contact your database administrator. O erro pode ser porque abriu uma tabela inumeras vezes e não a fechou: ibtable1.closedatabases; pode ser tambem pelo total de acessos por usuarios que a versão suporta ( Licenças ) ... o interbase 6.5 e 7.0 não tem limite abraço
-
Em uma rede interna de 3 computadores ... optei por usar o Paradox ( sem problemas de desempenho ) Em outra rede interna de 7 computadores ... optei por usar o Interbase/ Firebird ( sem problemas com mais de 100.000 registros ) Numa rede na internet .. optei por usar o MYSQL ( a velocidade depende da conexão, do numero de acessos e da versão do MYSQL no servidor ) OBS: O interbase versão 6.5 ou 7.0 trabalha muito bem com 15 micros .... mas o importante não é tanto o banco de dados e sim a configuração do micro que será usado como servidor de dados. abraço
-
ApplyUpdate ou Commit não gravam nas estações
pergunta respondeu ao geovanepc de Jhonas em Delphi, Kylix
funciona do mesmo jeito para o Firebird Use um Timer para ficar atualizando de tempos em tempos os dados no DBgrid abraço -
Vi que tem muitos procurando por uma rotina assim Façam bom uso :rolleyes: function FNUMD(Objeto: TEdit; Texto, VKey: String; Espaco, Decimal: Integer): String; Var vChar, vDiv : String; I : Integer; begin vDiv := '1'; For I := 1 to Decimal do vDiv := vDiv + '0'; vChar := copy(Texto,1,length(Texto)); if (vchar = '') or (vchar = '0') then vchar := vkey else vchar := vchar + vkey; While ( pos( ',', vChar ) > 0 ) or ( pos( '.', vChar ) > 0 ) do begin Delete( vChar, pos( '.', vChar ), 1 ); Delete( vChar, pos( ',', vChar ), 1 ); end; Objeto.MaxLength := Espaco; Objeto.Text := Format('%*.*n',[Espaco,Decimal,StrToFloat(vchar)/StrToInt(vDiv)]); Objeto.SelStart := length(Objeto.text); end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if pos('R$',Edit1.Text) > 0 then Edit1.Clear; if key = #13 then begin Edit1.text := format('%20s',['R$ '+ trim(Edit1.text)]); exit; end; if not (key in ['0'..'9',',', #8]) then key := #0 else FNUMD(Edit1,trim(Edit1.text),key,20,2); end; OBS: O Edit aceita somente numeros, que serão digitados da direita para esquerda em formato de moeda Ao digitar um enter o edit finalizará recebendo o simbolo 'R$' antes do numero abraço
-
Veja se encontra nas apostilas http://www.delphimais.com/uploads/$mydirname/rave.zip http://www.nevrona.com/files/ravedevguide5.pdf abraço
-
Qual é a versão do Rave que esta usando ?
-
Não é nele e sim no objeto Band Com o objeto Band1 selecionado, altere as seguintes propriedades: BandStyle: Nessa opção marque: Body Header (Cabeçalho) First (Primeira página) New Page (Nova página) ControllerBand: DataBand1 abraço
-
Quick Report orientaçao landscape papel custom
pergunta respondeu ao pr_candido de Jhonas em Delphi, Kylix
Neste caso o Custom size deve ter as medidas da folha como se fosse paisagem abraço -
Exemplo: inserir uma imagem no cabeçalho do relatório. Volte ao código do evento PrintHeader e altere conforme código abaixo: var Bitmap : TBitmap; begin with Sender as TBaseReport do begin BitMap := TBitmap.Create; try Bitmap.LoadFromFile('logo_codegear.bmp'); PrintBitmapRect(1.0,1.0,2.0,2.0, Bitmap); finally FreeAndNil(Bitmap); end; SetFont('Arial',12); Bold := True; ... end Basicamente o que foi feito ? Foi declarado uma variável do tipo TBitMap, instanciada a variável, carregamos a imagem na mesma, após isso o método PrintBitmapRect foi utilizado passando, o x e y de localização e o x e y de tamanho, poderíamos também utilizar o método PrintBitmap onde ao invés de passar o x e y de tamanho, passaríamos o x e y de escala da imagem. abraço
-
Já experimentou usar assim: abraço
-
Veja se este artigo ajuda: http://www.devmedia.com.br/articles/viewcomp.asp?comp=8007 abraço
-
Veja : http://www.softplatz.net/shots/16594-src.gif http://www.esbconsult.com/esbraveviewer.zip Apostilas que podem ajudar http://scriptbrasil.com.br/forum/index.php...st&p=562601 abraço
-
Image := TJPEGImage.Create; [Error] untDmVistomax.pas(151): Incompatibles types: 'String' and 'TJPEGImage'; [Fatal Error] VistoMax.dpr(7): Could not compile used unit 'untDmVistomax.pas' Tipos incompatíveis: String e TJPEGImage Image: TJPEGImage; Voce deve procurar e tirar do seu código onde existe uma definição para a variavel Image como string Voce mesmo responde parte do problema: Só existem 2 componentes no rave que posso usar: "Bitmap" e "Metafile". Se a imagem armazenada no banco de dados não for BMP, dá erro de formato Motivo pelo qual foi usada esta rotina para ler o formato JPG e transformá-lo em BMP uses JPEG; procedure TForm1.ReportSystem1DecodeImage(Sender: TObject; ImageStream: TStream; ImageType: String; Bitmap: TBitmap); var Image: TJPEGImage; begin If ImageType = 'JPG' then begin Image := TJPEGImage.Create; // Create a TJPEGImage class try Image.LoadFromStream(ImageStream); // Load up JPEG image from ImageStream Image.DIBNeeded; // Convert JPEG to bitmap format Bitmap.Assign(Image); finally Image.Free; end; end; { if } end; OBS: Acho que a versão do Rave que voce esta usando não permite o uso direto do formato JPG, caso contrario poderia usar a outra rotina para imprimir procedure TForm1.ReportSystem1Print(Sender: TObject); var Stream: TMemoryStream; Image: TJPEGImage; begin With Sender as TBaseReport do begin Stream := TMemoryStream.Create; Image := TJPEGImage.Create; try Image.LoadFromFile('image1.jpg'); Image.SaveToStream(Stream); Stream.Position := 0; PrintImageRect(1,1,3,3.5,Stream,'JPG'); finally Image.Free; Stream.Free; end; { tryf } end; { with } end; Neste caso voce pode tentar No evento onGetRow do seu TRvDataSetConnection chame a procedure: CarregaRaveImagem(NomeDoRelatorio.Page1,NomeDoComponenteImagemNoRave,CaminhoDaImagem); Connection.DoGetRow; Crie esta procedure no seu projeto (na Unit onde estiver os componentes do rave): procedure CarregaRaveImagem(rvPagina,rvImagemNome,bdArquivo:String); var B: TRaveBitmap; P: TRavePage; Jpg: TJpegImage; begin // Cria Objeto JPEGImage para carregar o arquivo Jpeg. Jpg := TJpegImage.Create; try // Pesquisa componentes dentro do projeto rave. P := RvSisterm.ProjMan.FindRaveComponent(rvPagina, nil) as TRavePage; B := RvSisterm.ProjMan.FindRaveComponent(rvImagemNome, P) as TRaveBitmap; // verifica se existe um JPG referente a imagem if FileExists(bdArquivo) then begin // Carrega o arquivo do disco. Jpg.LoadFromFile(bdArquivo); // Atribui ao Rave Bitmap component. B.Image.Assign(Jpg); end; finally Jpg.Free; end; end; abraço
-
Compilei este código.. não tem erros unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure ReportSystem1DecodeImage(Sender: TObject; ImageStream: TStream; ImageType: String; Bitmap: TBitmap); procedure ReportSystem1Print(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} uses JPEG; procedure TForm1.ReportSystem1DecodeImage(Sender: TObject; ImageStream: TStream; ImageType: String; Bitmap: TBitmap); var Image: TJPEGImage; begin If ImageType = 'JPG' then begin Image := TJPEGImage.Create; // Create a TJPEGImage class try Image.LoadFromStream(ImageStream); // Load up JPEG image from ImageStream Image.DIBNeeded; // Convert JPEG to bitmap format Bitmap.Assign(Image); finally Image.Free; end; end; { if } end; procedure TForm1.ReportSystem1Print(Sender: TObject); var Stream: TMemoryStream; Image: TJPEGImage; begin With Sender as TBaseReport do begin Stream := TMemoryStream.Create; Image := TJPEGImage.Create; try Image.LoadFromFile('image1.jpg'); Image.SaveToStream(Stream); Stream.Position := 0; PrintImageRect(1,1,3,3.5,Stream,'JPG'); finally Image.Free; Stream.Free; end; { tryf } end; { with } end; end. O primeiro converte a imagem JPG para BMP O Segundo Imprime a imagem JPG em um tamanho especifico Outros componentes http://www.delphiarea.com/products/delphi-...onents/picshow/ http://www.torry.net/pages.php?id=104 Ou faça uma busca no forum http://scriptbrasil.com.br/forum/index.php...mp;highlite=jpg abraço
-
(Resolvido) Escrever da Direita para Esquerda em Edit
pergunta respondeu ao Pirambu! de Jhonas em Delphi, Kylix
Poxa Pirambu ... acho que voce tem um bom conhecimento na linguagem, então não deveria ser tão dificil para voce conseguir resolver este pequeno problema. Veja a mudança no código: function FNUMD(Objeto: TEdit; Texto, VKey: String; Espaco, Decimal: Integer): String; Var vChar, vDiv : String; I : Integer; begin vDiv := '1'; For I := 1 to Decimal do vDiv := vDiv + '0'; vChar := copy(Texto,1,length(Texto)); if (vchar = '') or (vchar = '0') then vchar := vkey else vchar := vchar + vkey; While ( pos( ',', vChar ) > 0 ) or ( pos( '.', vChar ) > 0 ) do begin Delete( vChar, pos( '.', vChar ), 1 ); Delete( vChar, pos( ',', vChar ), 1 ); end; Objeto.MaxLength := Espaco; Objeto.Text := Format('%*.*n',[Espaco,Decimal,StrToFloat(vchar)/StrToInt(vDiv)]); Objeto.SelStart := length(Objeto.text); end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if pos('R$',Edit1.Text) > 0 then Edit1.Clear; if key = #13 then begin Edit1.text := format('%20s',['R$ '+ trim(Edit1.text)]); exit; end; if not (key in ['0'..'9',',', #8]) then key := #0 else FNUMD(Edit1,trim(Edit1.text),key,20,2); end; abraço -
Veja este post http://www.forumweb.com.br/foruns/index.ph...post__p__180861 abraço
-
(Resolvido) Editar registro no DBGrid com apenas um click
pergunta respondeu ao Gabriel Cabral de Jhonas em Delphi, Kylix
OBS: dm.ESTAVD3.Edit; dm.ESTAVD3.Open; corrija: dm.ESTAVD3.Open; dm.ESTAVD3.Edit; abraço -
Salvar imagem no banco de dados atravez do delphi
pergunta respondeu ao Victor Medeiros de Jhonas em Delphi, Kylix
Veja estes posts: http://scriptbrasil.com.br/forum/index.php...st&p=458260 http://scriptbrasil.com.br/forum/index.php...st&p=462351 http://scriptbrasil.com.br/forum/index.php...=salvar+imagens abraço -
Só lembrando : O codigo de barras deve ser do tipo varchar e não integer O ultimo digito é o digito verificador e não é gravado no banco ( o campo devera ter apenas 12 numeros ) ... este digito é gerado na leitura do código procedure TFvendas.EditCodBarraKeyPress(Sender: TObject; var Key: Char); Veja que voce esta usando o metodo OnKeyPress.... não deveria, pois o leitor funciona como se voce estivesse digitando cada numero do código, ou seja, o metodo será chamado uma vez para cada numero que o leitor está lendo. Esse código deveria estar no evento OnExit do Edit procedure TFvendas.EditCodBarraExit(Sender: TObject); begin try tbproduto.IndexDefs.Clear; tbproduto.IndexName := 'bycodbarra'; tbproduto.IndexDefs.Update; tbproduto.open; tbproduto.FindNearest([trim(EditCodbarra.Text)]); except on EDBEngineError do MessageDlg('Erro na busca! Tente novamente.', mtError, [mbOK], 0); end; begin if EditCodPed.Text='' then begin Showmessage('Escolha Nova Venda, para continuar'); abort; end; tbitem.insert; tbitem['codigo']:= tbproduto['codigo']; tbitem['nome']:= tbproduto['item']; tbitem['Qtd']:= 1; tbitem['vrunit']:= tbproduto['venda']; tbitem['data']:=DateTostr(now); tbitem.post; EditCodbarra.Clear; EditCodbarra.SetFocus; end; end; abraço
-
Faça uma busca no forum sobre o assunto http://scriptbrasil.com.br/forum/index.php...ighlite=qrgroup abraço
-
varios grupos e varios detalhes quickreport
pergunta respondeu ao flavioavilela de Jhonas em Delphi, Kylix
A sua query esta correta, e para cada qrgroup voce deve utilizar a propriedade Expression e colocar o campo que sera chave para cada grupo ... e use uma banda Detail para cada QRGroup linkando-o ao QRGroup a que pertence, usando a propriedade LinkBand do Detail exemplo LinkBand = QGRoup1 abraço