-
Total de itens
9.657 -
Registro em
Tudo que Jhonas postou
-
colega, o Make.exe esta na pasta c:\Arquivos de programas\Borland\Delphi7\Bin ele vem junto na instalação do delphi 7 abraço
-
Colega, este componente que eu postei para voce é pra ser colocado num FORM e não no QR ( experimente e vera que ele fica transparente em um form, o fundo branco basta trocar pela cor do formulario ) ainda não tive tempo para testar para o QR, mas voce pode tentar esta modificação no codigo. OBS: não esqueça de desistalar o componente antes de efetuar a modificação. procedure TTranspRichText1.repaint; var r: TRect; begin r := Rect( Left, Top, Left + Width, Top + Height ); InvalidateRect( TQuickRep(Owner).Handle, @r, false ); SendMessage( TQuickRep(Owner).Handle, WM_Paint, 0, 0 ); Paint; end; abraço
-
(Resolvido) minimizar programa na barra de ferramentas
pergunta respondeu ao vms de Jhonas em Delphi, Kylix
use o componente RxTrayIcon1 da paleta RxTools, ele deixa um icone do seu prograna na barra de tarefas do windows download http://br.geocities.com/all_software/download.htm download delphi 6 e 7 http://www.delphibr.com.br/download.php abraço -
Não é o QR que faz isto e sim a impressora mude a configuração da impressora existe uma opção em cópias que chama < inverter ordem > que faz exatamente isto que voce esta reportando, voce tem que desmarcar esta opção. abraço
-
o codigo que te passei é para concatenar dois ou mais campos e mante-los alinhados, então neste caso, voce teria que uma fonte com espaçamentos iguais e ai imprimiria somente um campo como voce falou que esta usando 2 QrDbText, neste caso, não precisa concatenar os campos, basta coloca-los um ao lado do outro no QR, fica ate mais facil, e determinar a largura de cada campo, que vai ficar certinho. ficaria ssim na banda de delalhe. observe que a propriedade AutoSize = false _____________________________________________________ [QrDbText1.........espaço.......] [QrDbText2........espaço......] _____________________________________________________ abraço
-
qual componente voce esta se referindo ??? se voce digita e ele deixa de ser transparente pode ser um bug que passou desapercebido no codigo....
-
experimente este http://www.trichview.com/rvfiles/richview.zip a outra sugestão seria criar este componente por exemplo unit TRQRRichText1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, QuickRpt, Qrctrls; type TTranspRichText1 = class(TQRRichText) private FText: string; FFont: TFont; FHighlight, FShadow: TColor; FOnEnter: TNotifyEvent; protected procedure Click; override; procedure Paint; override; procedure KeyPress( var Key: char ); override; procedure KeyUp( var Key: word; Shift: TShiftState ); override; procedure CreateParams( var Params: TCreateParams ); override; procedure setText( const s: string ); procedure setFont( f: TFont ); procedure WMSetFocus( var message: TMessage ); message WM_SetFocus; procedure WMKillFocus( var message: TMessage ); message WM_KillFocus; procedure repaint; public constructor Create( AOwner: TComponent ); override; destructor Destroy; override; published property Font: TFont read FFont write setFont; property Text: string read FText write setText; property HighlightColor: TColor read FHighlight write FHighlight default clWhite; property ShadowColor: TColor read FShadow write FShadow default clBlack; property OnEnter: TNotifyEvent read FOnEnter write FOnEnter; end; procedure Register; implementation constructor TTranspRichText1.Create( AOwner: TComponent ); begin inherited Create( AOwner ); FFont := TFont.Create; FHighlight := clWhite; FShadow := clBlack; TabStop := true; end; destructor TTranspRichText1.Destroy; begin FFont.Free; inherited Destroy; end; procedure TTranspRichText1.Paint; begin ControlStyle := ControlStyle - [csOpaque]; with Canvas do begin Brush.Style := bsClear; FillRect( ClipRect ); if (TForm(Owner).ActiveControl = self) then begin Pen.Color := FHighlight; MoveTo( 0, Height - 1 ); LineTo( 0, 0 ); LineTo( Width - 1, 0 ); Pen.Color := FShadow; LineTo( Width - 1, Height - 1 ); LineTo( 0, Height - 1 ); end; Font.Assign( self.Font ); TextOut( 2, (Height - TextHeight( FText )) div 2, FText ); end; end; procedure TTranspRichText1.CreateParams( var Params: TCreateParams ); begin inherited CreateParams( Params ); Params.ExStyle := Params.ExStyle or WS_EX_Transparent; Params.Style := Params.Style or WS_TabStop; end; procedure TTranspRichText1.setFont( f: TFont ); begin FFont.Assign( f ); end; procedure TTranspRichText1.setText( const s: string ); begin FText := s; Paint; end; procedure TTranspRichText1.WMSetFocus( var message: TMessage ); begin Paint; inherited; end; procedure TTranspRichText1.WMKillFocus( var message: TMessage ); begin repaint; inherited; end; procedure TTranspRichText1.repaint; var r: TRect; begin r := Rect( Left, Top, Left + Width, Top + Height ); InvalidateRect( TForm(Owner).Handle, @r, false ); SendMessage( TForm(Owner).Handle, WM_Paint, 0, 0 ); Paint; end; procedure TTranspRichText1.Click; begin setFocus; inherited Click; end; procedure TTranspRichText1.KeyPress( var Key: char ); begin if (Key = #8) then begin if FText <> '' then FText := Copy( FText, 1, Length( FText ) - 1 ); repaint; end else Text := FText + Key; inherited KeyPress( Key ); end; procedure TTranspRichText1.KeyUp( var Key: word; Shift: TShiftState ); begin if (Key = 46) then begin if FText <> '' then FText := Copy( FText, 1, Length( FText ) - 1 ); repaint; end else if Key = 13 then begin if Assigned( FOnEnter ) then FOnEnter( self ); end; inherited KeyUp( Key, Shift ); end; procedure Register; begin RegisterComponents( 'Samples', [TTranspRichText1] ); end; end.
-
colega o meu imprime certo ( em ordem alfabetica ) , teria que ver o seu codigo para saber o que voce esta fazendo... OBS: veja se não é uma configuração da impressora que esta fazendo isto.
-
(Resolvido) Salvar O conteudo de uma CheckListBox no Banco de dad
pergunta respondeu ao José Rodrigo de Jhonas em Delphi, Kylix
procedure TForm1.BitBtn1Click(Sender: TObject); var i : integer; begin for i := 0 to CheckListBox1.Items.Count-1 do begin if CheckListBox1.Checked[i] = true then begin CDS_Cadastro.Last; CDS_Cadastro.Append; CDS_Cadastro.Edit; CDS_CadastroItem.Value := CheckListBox1.Items.Names[i]; CDS_Cadastro.post; CDS_Cadastro.ApplyUpdates(-1); CDS_Cadastro.Next; end; end; end; Explicação: 1 - primeiro usa-se um for variando até o numero maximo de itens que voce colocou no CheckListBox1 2 - depois testa-se se o CheckListBox1.Checked esta verdadeiro ou falso 3 - se estiver verdadeiro então grava na tabela do banco de dados o nome item do CheckListBox1 4 - Vai para o proximo item do CheckListBox1 abraço -
Oi Eder... a primeira maneira de resolver isto seria usando um componente QRDBText para cada campo, desta forma o SA poderia ser truncado, e se voce quiser que apareça bastaria então aumentar a largura do campo no QR se voce estiver usando somente um campo concatenado, é o que parece, então voce deve tratar o espaçamento usando uma função que replica caracteres brancos depois do nome do cliente para depois jogar o CNPJ exemplo: Edit1.Text := 'jose antonio' Edit2.Text := '111221212122' jose antonio..........111221212122 // 10 espaços entre nome e cnpj pedro carvalho......112323434545 // 6 espaços o primeiro nome tem 12 caracteres e voce quer que cnpj começe na coluna 22 então 22 - length('jose antonio') = 10 entretanto voce tem que usar uma fonte com espaçamentos iguais entre os caracteres ( Courrier ) unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Edit2: TEdit; Memo1: TMemo; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} function Replicate( Caracter:String; Quant:Integer ): String; {Repete o mesmo caractere várias vezes} var I : Integer; begin Result := ''; for I := 1 to Quant do Result := Result + Caracter; end; procedure TForm1.Button1Click(Sender: TObject); var s : string; tam , n : integer; begin tam := length(trim(Edit1.Text)); n := 20 - tam; s := (trim(Edit1.Text) + replicate(' ',n) + trim(edit2.text); memo1.Lines.Append(s); end; end. abraço
-
Para começar o comprimento vertical da banda de detalhe do QR deve ser igual ao comprimento vertical da etiqueta mais a metade da distancia entre as etiquetas, ai não tem erro , sempre vai cair no mesmo lugar vou te passar o codigo da maneira mais simples de se fazer isto No form onde estao os componentes da tabela unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Db, DBClient, Provider, DBTables, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Cadastro_IB: TQuery; DSP_Cadastro: TDataSetProvider; CDS_Cadastro: TClientDataSet; DS_Cadastro: TDataSource; CDS_CadastroEMPRESA: TStringField; CDS_CadastroENDER: TStringField; CDS_CadastroBAIRRO: TStringField; CDS_CadastroCIDADE: TStringField; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} uses Unit2; procedure TForm1.Button1Click(Sender: TObject); begin QuickReport2.Preview; // chamar o QR end; end. Agora o Quick Report unit Unit2; interface uses Windows, SysUtils, Messages, Classes, Graphics, Controls, StdCtrls, ExtCtrls, Forms, Quickrpt, QRCtrls; type TQuickReport2 = class(TQuickRep) QRBand1: TQRBand; QRDBText1: TQRDBText; // Empresa QRDBText2: TQRDBText; // Ender QRDBText3: TQRDBText; // Bairro QRDBText5: TQRDBText; // Cidade QRDBText6: TQRDBText; // Empresa QRDBText7: TQRDBText; // Ender QRDBText4: TQRDBText; // Bairro QRDBText8: TQRDBText; // Cidade procedure QRDBText5Print(sender: TObject; var Value: String); private public end; var QuickReport2: TQuickReport2; implementation {$R *.DFM} uses Unit1; procedure TQuickReport2.QRDBText5Print(sender: TObject; var Value: String); begin Form1.CDS_Cadastro.Next; // controle da leitura Value := Form1.CDS_CadastroEMPRESA.Value; end; end. OBS: quando o ( QRDBText5: TQRDBText; // Cidade ) for repetir o registro, forçamos ele ler o proximo e atribuimos o novo valor de registro a partir dele ( Value := Form1.CDS_CadastroEMPRESA.Value; ) desta maneira os : QRDBText7: TQRDBText; // Ender QRDBText4: TQRDBText; // Bairro QRDBText8: TQRDBText; // Cidade assumirão os novos valores do proximo registro, mas serão impressos em linha e não mais em coluna ( mesmo que aparentemente seja coluna ) Importante: deixe o QR com apenas uma coluna Agora como fica na banda de detalhe os campos ______________________________________________________________________________________ [QRDBText1] ..................espaço........................................ [QRDBText5] [QRDBText2] ..................espaço........................................ [QRDBText6] [QRDBText3] ..................espaço........................................ [QRDBText7] [QRDBText4] ..................espaço........................................ [QRDBText8] _______________________________________________________________________________________ abraço
-
voce tem 2 opções, ou espera o indicativo de porcentagem do QR terminar para depois exportar o arquivo, ou cria uma rotina para testar o final da execução do QR para depois exportar o arquivo. exemplo procedure TQuickReport1.QuickRepAfterPrint(Sender: TObject); begin QrpToImg(FORM2.QuickRep1,'C:\',0); //Exporta o Quick para BMP QrpToImg(FORM2.QuickRep1,'C:\',1); //Exporta o Quick para JPG end; OB S: É só colocar o seu codigo para exportar no evento QuickRepAfterPrint do QR. abraço
-
realmente colega, voce é leigo no assunto, o endereço que te passei tem todo o codigo necessario para fazer um messenger cliente/servidor no delphi. vou te indicar um componente demo para delphi messenger (componente pago) http://www.softpedia.com/get/Programming/C...municator.shtml outras opções de serviços para messenger http://www.soft411.com/software/instant-me...-service_5.html OBS: colega como voce disse que é leigo no assunto, que tal tentar primeiro fazer um chat no delphi, e depois partir para o messenger. http://thiago.oxente.org/2006/08/16/delphi_chat/ abraço
-
Verifique se o tipo de papel que voce selecionou para o Quick Report é o mesmo que esta definido na impressora exemplo: se o tipo for A4 no QR e Carta na impressora pode ocorrer este problema ( verifique ) eu tambem imprimo etiquetas e uso no QR PaperSize = A4Small e na impressora a mesma coisa e imprime certinho isto é feito na banda de detalhe (Detail) e depende de como voce dispõe os campos na banda exemplo: se voce colocar dois componentes QRDBText1 com o mesmo link para um campo ( nome da rua ) um ao lado do outro e controlar a leitura do arquivo, voce vai ter o nome de duas ruas diferentes um ao lado do outro, neste caso voce estara imprimindo em linhas mas dentro de colunas abraço
-
MSN Messenger no delphi http://www.howtodothings.com/computers/a10...-in-delphi.html abraço
-
isso mesmo , ou então a outra sugestão é criar outro form (novo) para estes que estão com problema. porque o erro não esta no codigo, então talvez esteja com o componente form. ( as vezes acontece isto, mas ainda não descobri o porque ) abraço
-
realmente... o codigo esta correto, entretanto nos forms onde não esta funcionando normal, alguma coisa lhe passou despercebido .... sugestão: retire do projeto os dois form com problemas, chame um form que esteja funcionando corretamente, salve este form com o nome do form com problema, faça as modificações necessarias e veja se o que acontece ... creio que isto vai resolver. abraço
-
Vai ai algumas dicas Ocultar/exibir a barra de tarefas do Windows Inclua na seção uses: Windows { Coloque no Form dois Botões: BotaoOcultar e BotaoExibir. No evento OnClick do BotaoOcultar escreva: } procedure TForm1.BotaoOcultarClick(Sender: TObject); var Janela: HWND; begin Janela := FindWindow('Shell_TrayWnd', nil); if Janela > 0 then ShowWindow(Janela, SW_HIDE); end; { No evento OnClick do BotaoExibir escreva: } procedure TForm1.BotaoExibirClick(Sender: TObject); var Janela: HWND; begin Janela := FindWindow('Shell_TrayWnd', nil); if Janela > 0 then ShowWindow(Janela, SW_SHOW); end; { Execute e teste, clicando em ambos os botões } Observações A tarefa mais difícil é descobrir o nome de classe da janela da barra de tarefa do Windows, mas isto é fácil se você usar o TBWinName. Pegue-o no link download de www.tecnobyte.com.br. O resto é usar as APIs do Windows para manipulação de Janelas. Dica de : Daniel P. Guimarães pode dar uma olhada nestes posts tambem http://forum.devmedia.com.br/viewtopic.php...fced6f88eeb7b6d http://forum.wmonline.com.br/index.php?showtopic=80096 http://www.videotexto.com.br/forum/viewtop...6cd29e89763974e Livre-se dos ícones atormentantes da barra de tarefas! http://www.explorando.viamep.com/2006/03/l...ntantes-da.html Função ocultar a Barra de Tarefas procedure SetTaskBar(Visible: Boolean); var wndHandle : THandle; wndClass : array[0..50] of Char; begin StrPCopy(@wndClass[0],'Shell_TrayWnd'); wndHandle := FindWindow(@wndClass[0], nil); If Visible = True then ShowWindow(wndHandle, SW_RESTORE) else ShowWindow(wndHandle, SW_HIDE); end; Outra Dica http://www.forumweb.com.br/foruns/index.ph...st&p=107973 procedure Tform1.EscondeBarraIniciar(Visible: Boolean); var wndHandle : THandle; wndClass : array[0..50] of Char; begin StrPCopy(@wndClass[0],'Shell_TrayWnd'); wndHandle := FindWindow(@wndClass[0], nil); if Visible=True Then ShowWindow(wndHandle, SW_RESTORE) // Mostra a barra de tarefas else ShowWindow(wndHandle, SW_HIDE); // Esconde a barra de tarefas end; Declara assim: procedure EscondeBarraIniciar(Visible: Boolean); No form principal do sistema é só chamar o procedimento: EscondeBarraIniciar(False); E quando sair do sistema: EscondeBarraIniciar(true); abraço
-
Correção da linha OBS: Verifique as demais lnhas tambem, porque assim que for corrigida a linha 1 o erro vai passar para a linha 2 e assim até o final da instrução SQL ( tirar as aspas duplas ) abraço
-
Endereços de Apostilas e Componentes para usar Codigo de Barras no Delphi Apostila sobre codigo de barras EAN http://br.geocities.com/all_software/downl...odbarrasean.zip ________________________________________________________________ Componente Barcode http://www3.delphifontes.com.br/downloads/Barcode.zip ________________________________________________________________ Impressão de Codigo de Barras http://www.guiadodelphi.com.br/artigos/codigo_barra1.htm ________________________________________________________________ Imprimindo código de barra no Crystal Report http://www.guiadodelphi.com.br/ler.php?codigo=1139 ________________________________________________________________ apresentação em Power Point que explica os padrões de código de barras utilizado no Brasil e no mundo. http://www.ramosdainformatica.com.br/ser_d...?CDN=8&VN=2 ________________________________________________________________ Download » Código » Codigo de barras para boletos I25 https://www.scriptbrasil.com.br/download/codigo/6491/ ________________________________________________________________ Outro Codigo de Barras http://www.apostilar.com.br/sel_apostila.php?id=1193 ________________________________________________________________ CJVBarCode - código de barras para Delphi 7 http://superdownloads.uol.com.br/download/...arras-delphi-7/ Abraço
-
este código esta meio vago, coloque em qual procedure ele está, e coloque tambem o codigo que voce colocou nos botoes, para poder te auxiliar ... ok ?
-
colega, dei uma modificada no seu codigo e testei no delphi 5... aparentemente não deu mais erro procedure TForm1.Button1Click(Sender: TObject); var I,tag : integer; URL,GETVAR,SOCKTXT,CMD,S : string; begin for I := 0 to LISTA.Lines.Count do begin showmessage(inttostr(i)); URL := Trim(LISTA.Lines.Strings[I]); s := URL; if POS('http', URL) > 0 then begin delete(URL, 1, 7); //retira http:// da frente while Pos('/', URL) > 0 do S[Pos('/', S)] := '*'; tag := Pos('*', URL); GETVAR := copy(URL, tag+1, length(URL)-tag+1); //pega somente o arquivo desejado, exemplo: /index.php?page=inicio URL := copy(URL, 1, tag-1); //pega somente o host, exemplo: www.meusite.com VERIFY.Active := False; VERIFY.Close; VERIFY.Host := URL; VERIFY.Port := 80; VERIFY.Socket.Unlock; VERIFY.Open; VERIFY.Active := True; SOCKTXT := 'GET '+GETVAR; // +' HTTP/1.0'+chr(13)+chr(10)+chr(13)+chr(10); //inicilizando variável para controle //RECEIVEDANSWER := False; VERIFY.Socket.SendText(SOCKTXT); //aguardando pela resposta ou desconexão do socket while VERIFY.Active do if VERIFY.Socket.ReceiveLength = 0 then showmessage('socket desconectado'); Application.ProcessMessages; // evita que a aplicação congele end; end; OBS: dentro do memo coloquei a seguinte URL http:\\bovespa.com.br/bdi\bdi2711.zip abraço
-
(Resolvido) Consulta com Radiogroups
pergunta respondeu ao Walter Gazzarrini Neto de Jhonas em Delphi, Kylix
Vou dar a ideia inicial, não precisa ser necessariamente desta maneira unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) RadioGroup1: TRadioGroup; RadioGroup2: TRadioGroup; RadioGroup3: TRadioGroup; procedure RadioGroup1Click(Sender: TObject); procedure RadioGroup2Click(Sender: TObject); procedure RadioGroup3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.RadioGroup1Click(Sender: TObject); var master,visa:string; begin case radiogroup1.ItemIndex of 0:begin master:='Master Card'; with dm do begin ZQueryVendas.close; ZQueryVendas.sql.clear; ZQueryVendas.sql.add('select*from tb_vendas'); ZQueryVendas.sql.add('where UPPER(Mastervisa_venda)Like:Mastervisa_venda'); ZQueryVendas.parambyname('Mastervisa_venda').Asstring:='%'+uppercase(master)+'%'; ZQueryVendas.open; end; end; 1:begin Visa:='Visa'; with dm do begin ZQueryVendas.close; ZQueryVendas.sql.clear; ZQueryVendas.sql.add('select*from tb_vendas'); ZQueryVendas.sql.add('where UPPER(Mastervisa_venda)Like:Mastervisa_venda'); ZQueryVendas.parambyname('Mastervisa_venda').Asstring:='%'+uppercase(Visa)+'%'; ZQueryVendas.open; end; end; end; end; procedure TForm1.RadioGroup2Click(Sender: TObject); begin case radiogroup2.ItemIndex of 0:begin Tipo:='Debito'; with dm do begin ZQueryVendas.close; ZQueryVendas.sql.clear; ZQueryVendas.sql.add('select*from tb_vendas'); ZQueryVendas.sql.add('where ....'); ZQueryVendas.parambyname('.....'); ZQueryVendas.open; end; end; 1:begin Tipo:='Credito'; with dm do begin ZQueryVendas.close; ZQueryVendas.sql.clear; ZQueryVendas.sql.add('select*from tb_vendas'); ZQueryVendas.sql.add('where ....'); ZQueryVendas.parambyname('.....'); ZQueryVendas.open; end; end; end; end; procedure TForm1.RadioGroup3Click(Sender: TObject); begin case radiogroup3.ItemIndex of 0:begin pagamento:='Parcelado'; with dm do begin ZQueryVendas.close; ZQueryVendas.sql.clear; ZQueryVendas.sql.add('select*from tb_vendas'); ZQueryVendas.sql.add('where ....'); ZQueryVendas.parambyname('.....'); ZQueryVendas.open; end; end; 1:begin Pagamento:='A Vista'; with dm do begin ZQueryVendas.close; ZQueryVendas.sql.clear; ZQueryVendas.sql.add('select*from tb_vendas'); ZQueryVendas.sql.add('where ....'); ZQueryVendas.parambyname('.....'); ZQueryVendas.open; end; end; end; end; end. abraço -
for I := 0 to Printer.printers.Count-1 do begin if Printer.printers[i] = PrinterName then begin aprinter.printerindex := i; aPrinter.getprinter (device, driver, port, HdeviceMode); OBS: de acordo com o codigo ele deve procurar pelo nome de todas as impressoras instaladas... achando o nome da impressora ele a fixa como padrão como o proprio nome já indica entretanto ao ser enviado outro nome de impressora, o arquivo a ser impresso ira para esta outra impressora abraço
-
para desativar ou travar: SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1,0, 0); para ativar ou destravar: SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0,0, 0); Outra dica sobre teclas: abraço