Jump to content
Fórum Script Brasil

Jhonas

Monitores
  • Content Count

    9654
  • Joined

Community Reputation

0 Neutro

About Jhonas

Perfil

  • Gender
    Male
  • Location
    São Paulo

Recent Profile Visitors

25132 profile views
  1. Veja a alteração no código da impressão unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; ComboBox1: TComboBox; procedure FormActivate(Sender: TObject); procedure Button1Click(Sender: TObject); Procedure Memo_Print(Conteudo:TStrings); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation Uses Printers, QRPrntr; {$R *.dfm} procedure TForm1.FormActivate(Sender: TObject); var i : Integer; begin // Pegar o nome de todas as Fontes e colocar no Combobox for i := 0 to Screen.Fonts.Count - 1 do ComboBox1.Items.Add(Screen.Fonts.Strings[i]); // Deixar o Combobox Invisivel ComboBox1.Visible := false; end; Procedure TForm1.Memo_Print(Conteudo:TStrings); Var MemoFile : TextFile; P : Integer; PrintTeste: TQRPrinter; Begin PrintTeste := TQRPrinter.Create(Self); PrintTeste.PaperSize := A4; {os parâmetros podem ser A5, B5, Letter e outros} AssignPrn(MemoFile); Rewrite(MemoFile); For P := 0 to Conteudo.Count - 1 do Writeln(MemoFile,Conteudo.Strings[P]); CloseFile(MemoFile); end; procedure TForm1.Button1Click(Sender: TObject); var i : integer; TabsSet : Array[0..2] of DWord; begin // Pegar o Nome da Fonte do Memo ( Courrier New ) Memo1.Font.Name := ComboBox1.Items.Strings[16]; // Mudar Tamanho da Fonte Memo1.Font.Size := 10; // Fazendo tabulacoes em um MEMO // tabs diferentes TabsSet[0] := 60; TabsSet[1] := 180; TabsSet[2] := 300; Memo1.Perform(EM_SETTABSTOPS,3,Integer(@TabsSet)); // colocando valores no memo for i := 1 to 9 do // 9 linhas no Memo Memo1.Lines.Add('Linha '+IntToStr(i)+#9'Opção '+IntToStr(i)+#9'Teste'); Memo1.SelStart := 0; if MessageDlg('Deseja Imprimir o CUPOM ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin Memo_Print(Memo1.Lines); end else begin MessageDlg('OPERAÇÃO CANCELADA! ', mtInformation, [mbOK], 0); // volta ao normal o texto no Memo ( sem espaçamento ) Memo1.Perform(EM_SETTABSTOPS,0,0); end; end; end. Não esqueça de definir Uses Printers, QRPrntr; Obs: Se o código não funcionar tente esses https://www.google.com.br/search?source=hp&ei=hHU0X_WTLcTG5OUP3dyl4AM&q=mudar+tamanho+do+papel+delphi&o que=mudar+tamanho+do+papel+delphi&gs_lcp=CgZwc3ktYWIQAzIFCCEQoAE6BQgAELEDOggIABCxAxCDAToFCC4QsQM6CAguELEDEIMBOgIIADoCCC46BggAEBYQHjoHCCEQChCgAToICCEQFhAdEB5Q7g1YxERgwEpoAXAAeACAAfwBiAGaH5IBBjAuMjkuMpgBAKABAaoBB2d3cy13aXqwAQA&sclient=psy-ab&ved=0ahUKEwj15cKx45brAhVEI7kGHV1uCTwQ4dUDCAY&uact=5 abraço
  2. type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; ComboBox1: TComboBox; procedure FormActivate(Sender: TObject); procedure Button1Click(Sender: TObject); Procedure Memo_Print(Conteudo:TStrings); private { Private declarations } public { Public declarations } end; Obs: Se voce copiar o codigo todo não vai dar erro abraço
  3. Se voce tivesse colocado isso ( Impressão ) no começo eu diria que voce não deve usar justificação de texto mas sim tabulação de texto. Voce vai tabular o texto no Memo, e depois fazer a impressão do Memo tabulado exemplo: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; ComboBox1: TComboBox; procedure FormActivate(Sender: TObject); procedure Button1Click(Sender: TObject); Procedure Memo_Print(Conteudo:TStrings); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation Uses Printers; {$R *.dfm} procedure TForm1.FormActivate(Sender: TObject); var i : Integer; begin // Pegar o nome de todas as Fontes e colocar no Combobox for i := 0 to Screen.Fonts.Count - 1 do ComboBox1.Items.Add(Screen.Fonts.Strings[i]); // Deixar o Combobox Invisivel ComboBox1.Visible := false; end; Procedure TForm1.Memo_Print(Conteudo:TStrings); Var MemoFile : TextFile; P : Integer; Begin AssignPrn(MemoFile); Rewrite(MemoFile); For P := 0 to Conteudo.Count - 1 do Writeln(MemoFile,Conteudo.Strings[P]); CloseFile(MemoFile); end; procedure TForm1.Button1Click(Sender: TObject); var i : integer; TabsSet : Array[0..2] of DWord; begin // Pegar o Nome da Fonte do Memo ( Courrier New ) Memo1.Font.Name := ComboBox1.Items.Strings[16]; // Mudar Tamanho da Fonte Memo1.Font.Size := 10; // Fazendo tabulacoes em um MEMO // tabs diferentes TabsSet[0] := 60; TabsSet[1] := 180; TabsSet[2] := 300; Memo1.Perform(EM_SETTABSTOPS,3,Integer(@TabsSet)); // colocando valores no memo for i := 1 to 9 do // 9 linhas no Memo Memo1.Lines.Add('Linha '+IntToStr(i)+#9'Opção '+IntToStr(i)+#9'Teste'); Memo1.SelStart := 0; if MessageDlg('Deseja Imprimir o CUPOM ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin Memo_Print(Memo1.Lines); end else begin MessageDlg('OPERAÇÃO CANCELADA! ', mtInformation, [mbOK], 0); // volta ao normal o texto no Memo ( sem espaçamento ) Memo1.Perform(EM_SETTABSTOPS,0,0); end; end; end. Obs: Execute esse programa sem alterar nada e veja o resultado. Tente entender como funciona esse código Fazendo algumas alterações no código, voce consegue fazer o que está querendo. abraço
  4. case ASide of taLeftJustify: Substitua o ponto e virgula por dois pontos abraço
  5. Teria como colocar algo a mais nesse código para Justificar o texto ? Ou somente com a Função? Seria isso: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; Memo2: TMemo; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function StrPad(AValue: String; const ALength: Integer; const ASide: TAlignment): String; begin AValue := Trim(AValue); if Length(AValue) > ALength then AValue := Copy(AValue,1,ALength); case ASide of taLeftJustify: while Length(AValue) < ALength do AValue := AValue + ' '; taRightJustify: while Length(AValue) < ALength do AValue := ' ' + AValue; taCenter: while Length(AValue) < ALength do if (Length(AValue) mod 2)= 0 then AValue := AValue + ' ' else AValue := ' ' + AValue; end; Result := AValue; end; // tamanho da linha = 80 caracteres procedure TForm1.Button1Click(Sender: TObject); var i, j : integer; begin showmessage(inttostr(MEMO1.LINES.Count)); for j := 1 to MEMO1.LINES.Count do begin if Length(MEMO1.LINES.Strings[j]) < 80 then MEMO2.LINES.Append(StrPad(MEMO1.LINES.Strings[j],80,TACENTER)) else begin MEMO2.LINES.Append(StrPad(MEMO1.LINES.Strings[j],80,TACENTER)); MEMO2.LINES.Append(StrPad(copy(MEMO1.LINES.Strings[j],81,80),80,taLeftJustify)); end; end; //Inicia a impressão Printer.Canvas.font.Name := 'Courier new'; Printer.Canvas.font.size := 15; Printer.BeginDoc; Printer.Title := 'Emissor'; //Conta quantidades de linhas no Memo for I := 0 to Memo2.Lines.Count - 1 do begin //Imprime as linhas Printer.Canvas.TextOut(1,(I - 1)*Printer.Canvas.TextHeight('Emissor'),Memo2.Lines[I - 1]); end; //Termina a impressão Printer.EndDoc; end; end. abraço
  6. Quero que imprimir Texto do MEMO!!! Quero um código que faça isso!! procurei na internet algo mais não achei.. somente com componentes!!!! Amigo, na internet ta cheio de exemplos: http://www.planetadelphi.com.br/dica/7146/-imprimir-conteudo-de-um-memo-(simples-e-facil)- ou https://www.google.com.br/search?source=hp&ei=oVE0X8DDEIHH5OUP8KKiqAY&q=imprimir+memo+delphi&o que=imprimir+memo+&gs_lcp=CgZwc3ktYWIQARgAMgIIADIGCAAQFhAeMgYIABAWEB4yBggAEBYQHjIGCAAQFhAeMgYIABAWEB4yBggAEBYQHjoICAAQsQMQgwE6BQgAELEDOggIABAWEAoQHlDSC1jSH2D6LmgAcAB4AIABsAGIAcgOkgEEMS4xNJgBAKABAaoBB2d3cy13aXqwAQA&sclient=psy-ab Obs: Na impressão do Memo, o texto vai ficar meio bagunçado ( justificação ) ... mas voce pode usar essa rotina para justificar o texto, para ficar mais bonito Abraço
  7. Veja o Manual de Configuração Rápida https://www.toledobrasil.com/app/institucional/files/manuais/Leitores Magellan - Manual de Configuração Rápida.pdf outros manuais https://www.google.com.br/search?source=hp&ei=RMYuX9egAqa55OUPr7-10Ak&q=datalogic+magellan+2200vs+configuration&o que=DATALOGIC+-+Magellan+2200VS&gs_lcp=CgZwc3ktYWIQARgIMgYIABAWEB4yBggAEBYQHjIGCAAQFhAeMgYIABAWEB4yBggAEBYQHjIGCAAQFhAeMgYIABAWEB4yBggAEBYQHjIGCAAQFhAeMgYIABAWEB5QyAxYyAxg8itoAHAAeACAAfYBiAH2ApIBBTAuMS4xmAEAoAECoAEBqgEHZ3dzLXdperABAA&sclient=psy-ab abraço
  8. A questão de dar um click automaticamente em uma pagina web é diferente veja esses exemplos https://forum.scriptbrasil.com.br/topic/47468-botão-subimit/#comment-234543 https://www.google.com.br/search?source=hp&ei=n3opX_GgCtHG5OUPzIO5yAg&q=enter+em+pagina+web+delphi&o que=enter+em+pagina+web+delphi&gs_lcp=CgZwc3ktYWIQAzIICCEQFhAdEB4yCAghEBYQHRAeOgUIABCxAzoCCAA6CAgAELEDEIMBOgIILjoICC4QsQMQkwI6BQguELEDOgcIABBGEP8BOgYIABAWEB46CAgAEBYQChAeOgUIIRCgAToECCEQFToHCCEQChCgAVDWH1iIc2DAf2gCcAB4AIABigKIAaQnkgEHMC4xNy4xMJgBAKABAaoBB2d3cy13aXqwAQA&sclient=psy-ab&ved=0ahUKEwix7Lza6oHrAhVRI7kGHcxBDokQ4dUDCAY&uact=5 https://www.google.com.br/search?ei=sHopX5qQKJ6-5OUP4JWnmA0&q=delphi+submit+web+form&o que=submit+web+delphi&gs_lcp=CgZwc3ktYWIQARgAMgYIABAIEB46BAgAEEc6CAgAEAgQBxAeUK7iBFje6gRgqvwEaABwAXgAgAGaAogB1gqSAQUwLjIuNJgBAKABAaoBB2d3cy13aXrAAQE&sclient=psy-ab abraço
  9. PS: Não funciona usando o navegador padrão do Delphi. Por ser IE, não abre a página que preciso. Voce tem outras opções de Navegadores para o delphi delphi firefox web browser component https://www.google.com.br/search?source=hp&ei=kCwkX_PFHPee5OUPibyGmAU&q=delphi+firefox+web+browser+component&o que=browse+firefox+delphi&gs_lcp=CgZwc3ktYWIQARgAMggIABAIEA0QHjIICAAQCBANEB4yCAgAEAgQDRAeOg0IABDqAhC0AhBDEIsDOgQIABADOggIABCxAxCDAToFCAAQsQM6CAguELEDEIMBOgUILhCxAzoCCAA6AgguOggILhCxAxCTAjoHCAAQRhD_AToECAAQCjoGCAAQFhAeOggIABAWEAoQHjoECAAQDToICAAQDRAKEB46BggAEA0QHjoECAAQEzoICAAQFhAeEBM6CggAEBYQChAeEBNQwg5YonFghpIBaAFwAHgAgAGKA4gB8B2SAQgwLjE4LjMuMpgBAKABAaoBB2d3cy13aXqwAQG4AQI&sclient=psy-ab webbrowser delphi chrome https://www.google.com.br/search?ei=pCwkX_LlDoDN5OUPxpeluAI&q=webbrowser+delphi+chrome&o que=delphi+firefox+web+browser+component&gs_lcp=CgZwc3ktYWIQARgAMgQIABBHMgQIABBHMgQIABBHUABYAGCYtgRoAHABeACAAQCIAQCSAQCYAQCqAQdnd3Mtd2l6wAEB&sclient=psy-ab chromium delphi example https://www.google.com.br/search?ei=7ywkX7uhJYai5OUPkOOrqAk&q=chromium+delphi+example&o que=webbrowser+delphi+chrome&gs_lcp=CgZwc3ktYWIQARgAMgQIABBHMgQIABBHMgQIABBHMgQIABBHMgQIABBHMgQIABBHMgQIABBHMgQIABBHUABYAGCG_wNoAHABeACAAQCIAQCSAQCYAQCqAQdnd3Mtd2l6wAEB&sclient=psy-ab preciso é que seja dado o comando enter de forma automática https://www.google.com.br/search?ei=My0kX-_4NOnZ5OUP1oGz4AM&q=dar+enter+automatico+no+delphi&o que=dar+enter+automatico+no+delphi&gs_lcp=CgZwc3ktYWIQAzoECAAQRzoECAAQQzoCCAA6BQgAELEDOggIABCxAxCDAToFCC4QsQM6AgguOgcILhBDEJMCOgQIABAKOgQIABATOggIABAWEB4QEzoICCEQFhAdEB46BggAEBYQHjoICAAQDRAFEB46BQghEKABUJLoB1iOswhgnrcIaABwAngAgAG4AYgB7hySAQQxLjI5mAEAoAEBqgEHZ3dzLXdpesABAQ&sclient=psy-ab&ved=0ahUKEwiv3vKV3PfqAhXpLLkGHdbADDwQ4dUDCAs&uact=5 abraço
  10. Veja os links https://www.google.com.br/search?source=hp&ei=pS8cX-f1Ke_C5OUPy6qpkA4&q=serviço+sql+server+não+inicia+automaticamente&o que=SERVIÇO+SQL+NÃO+INICIA&gs_lcp=CgZwc3ktYWIQARgDMgIIADICCAAyBggAEBYQHjIGCAAQFhAeMgYIABAWEB4yBggAEBYQHjIGCAAQFhAeMgYIABAWEB4yBggAEBYQHlCUFViUFWCMYGgBcAB4AIABhAGIAYQBkgEDMC4xmAEAoAECoAEBqgEHZ3dzLXdperABAA&sclient=psy-ab abraço
  11. Qual é o erro que é mostrado na tela ?
  12. Em um dos links tem a solução https://www.google.com.br/search?source=hp&ei=dbgRX8DrNdDW5OUPiMCjgA8&q=Autovacuum+-+permission+denied&o que=Autovacuum+-+permission+denied&gs_lcp=CgZwc3ktYWIQA1CoCFioCGDcFmgAcAB4AIABqgGIAdQCkgEDMC4ymAEAoAECoAEBqgEHZ3dzLXdperABAA&sclient=psy-ab&ved=0ahUKEwiA-pKnwtTqAhVQK7kGHQjgCPAQ4dUDCAY&uact=5 abraÇO
  13. Esse erro acontece quando voce não cria o Form2 basta voce clicar no icone ( New Form ) ele esta do lado esquerdo da Seta ( Run ( F9 ) ) e colocar dentro desse Form 2 Edits abraço
  14. exemplo: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, DBTables, Grids, DBGrids; type TForm1 = class(TForm) DBGrid1: TDBGrid; Query1: TQuery; DataSource1: TDataSource; Query1COD_FORNEC: TFloatField; Query1COD_PROD: TStringField; Query1PERFIL: TStringField; Query1ACABAMENTO: TStringField; Query1DESCRICAO: TStringField; Query1QUANTIDADE: TFloatField; Query1DATA: TDateField; Query1VAL_UNIT: TFloatField; Query1VAL_TOTAL: TFloatField; Query1OBS: TStringField; Query1VAL_VENDA: TFloatField; procedure DBGrid1CellClick(Column: TColumn); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit2; {$R *.dfm} procedure TForm1.DBGrid1CellClick(Column: TColumn); begin // TRAZER A INFORMAÇÃO DO DBGRID ( CLIQUE DO MOUSE NA CELULA ) DO FORM1 PARA O FORM2 Form2.Edit1.Text := Query1COD_PROD.Value; Form2.Edit2.Text := Query1DESCRICAO.Value; Form2.ShowModal; end; end. Quero saber como eu posso selecionar a linha do meu dbgrid e abrir um outro formulário idêntico ao de cadastro só que para edição dos campos... oBS: Quando voce clica na celula do dbgrid, abre o Form2 e coloca nele a informação dos campos do registro selecionado. O inverso tambem pode ser feito... voce abre o Form2 ( O Form que voce está usando ) procura a informação que voce quer e depois transfere para o Form1 ( o seu form ) no exemplo esta bem claro como fazer. abraço
  15. Acho que esse problema é de configuração ... tente esses links https://www.google.com.br/search?source=hp&ei=0AYPX-CiNIK-5OUP7fGBmAc&q=configurar+ide+lazarus&o que=configurar+laz&gs_lcp=CgZwc3ktYWIQARgGMgIIADIGCAAQFhAeMgYIABAWEB4yBggAEBYQHjIGCAAQFhAeMgYIABAWEB4yBggAEBYQHjIGCAAQFhAeMgYIABAWEB4yBggAEBYQHjoFCAAQsQM6CAgAELEDEIMBUNYOWLpBYPaKAWgAcAB4AIABhgKIAfoNkgEGNC4xMC4xmAEAoAEBqgEHZ3dzLXdperABAA&sclient=psy-ab abraço
×
×
  • Create New...