Ir para conteúdo
Fórum Script Brasil

Jhonas

Monitores
  • Total de itens

    9.657
  • Registro em

Tudo que Jhonas postou

  1. Se voce testar com outra cor, acontece o mesmo ? Procure por referencia ao evento no help do Lazarus Obs: Acho que tem uma solução nesse link https://lazarus-br.narkive.com/ffOZoLms/mudar-a-cor-de-texto-de-uma-celula-do-dbgrid abraço
  2. Erro: Tipo incompatível para arg nº. 1: Obtido "String constante", esperado "TGraphicsColor" Erro: identificador idents não é membro de "DefaultDrawDataCell" Obs: Não dá pra advinhar o código que voce colocou no evento : procedure Tform1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  3. Se voce digitar : 12.345.678,90 resultado 12345678.90 Ok... mas isso é ainda mais simples procedure TForm1.Button1Click(Sender: TObject); var s : string; begin Edit1.text := StringReplace(Edit1.Text, '.', '', [rfReplaceAll]); Edit1.text := StringReplace(Edit1.Text, ',', '', [rfReplaceAll]); s := trim(Edit1.text); Insert(',',s, Length(s)-1); Edit1.text := s; end; Obs: voce tambem pode digitar somente os numeros, sem ponto ou virgula que vai ficar como está querendo abraço
  4. Voce pode simplificar seu código por esse: procedure TForm1.Edit1Exit(Sender: TObject); begin if pos('.',Edit1.Text) > 0 then Edit1.Text := StringReplace(Edit1.Text, '.', ',', []); Edit1.Text := CurrToStrF(StrToCurr(Trim(Edit1.Text)),ffNumber,2); end; Exemplo: Se voce digitar : 12345678.90 resultado 12.345.678,90 se digitar : 123456,79 resultado 123.456,79 Só tem que digitar o numero e na parte dos centavos, voce pode usar ponto ou virgula e depois dar um <Enter> ou <Tab> para mudar de campo. Na saida do campo o valor é automaticamente formatado. Mas se voce quer fazer o inverso, basta limpar todas as ocorrencias de pontos e virgulas na string e depois formatar com casas decimais. Obs: Veja comando Format no help do delphi ( Tecla F1 ) abraço
  5. decimal (M, D) altura decimal(1,2), Exibe um erro se um campo tiver um valor de casa decimal maior do que a parte do número inteiro. # 1427 - Para float (M, D), double (M, D) ou decimal (M, D), M deve ser> = D (coluna 'algo'). o correto: altura decimal(2,2), ou altura decimal(3,2), ou altura decimal(4,1), ... etc abraço
  6. Veja nesses links https://www.projetoacbr.com.br/forum/topic/53484-dbgrid-no-lazarus/ https://lazarus-br.narkive.com/ffOZoLms/mudar-a-cor-de-texto-de-uma-celula-do-dbgrid https://www.devmedia.com.br/forum/dbgrid1-canvas-font-color-clred-não-funciona/147808 abraço
  7. 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
  8. 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
  9. 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
  10. case ASide of taLeftJustify: Substitua o ponto e virgula por dois pontos abraço
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. Qual é o erro que é mostrado na tela ?
  18. 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
  19. 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
  20. 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
  21. 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
  22. Isso acontece desde que voce instalou e usou pela primeira vez ou não ?
  23. Se o writer faz a mesma coisa que o Word, não vejo qual é a dificuldade. Com o writer voce não consegue criar e editar documentos tipo .doc ou docx ? Voce consegue abrir pelo delphi ( usando o componente OLE ) um documento feito pelo writer ?
  24. Veja esses links ... https://www.google.com.br/search?ei=coYIX_-wItme5OUP5rSl2A8&q=mysql+comparar+data+e+hora&o que=mysql+comparar+data+e+hora&gs_lcp=CgZwc3ktYWIQAzIECAAQHjoECAAQRzoGCAAQBxAeOggIABAIEAcQHjoGCAAQDRAeUOSsBFiUtQRg3L0EaABwAXgAgAGOAYgBxgeSAQMxLjeYAQCgAQGqAQdnd3Mtd2l6&sclient=psy-ab&ved=0ahUKEwj_sYas_cLqAhVZD7kGHWZaCfsQ4dUDCAs&uact=5 https://www.google.com.br/search?ei=ZoYIX4joJPa55OUPyICo6A8&q=mysql+usando+data+e+hora+&o que=mysql+usando+data+e+hora+&gs_lcp=CgZwc3ktYWIQAzoECAAQR1CuPFiuPGDOQ2gAcAF4AIABoAGIAaABkgEDMC4xmAEAoAEBqgEHZ3dzLXdpeg&sclient=psy-ab&ved=0ahUKEwiIs6ym_cLqAhX2HLkGHUgACv0Q4dUDCAs&uact=5 abraço
  25. Jhonas

    Cadastre 20 músicas

    Baixe o MYSQL-Front que voce cria a sua tabela com os campos e chave primaria ( muito facil de usar ) https://www.google.com.br/search?ei=mIQIX-PnN-6_5OUPxeeFmAU&q=mysql+front+6.1+download&o que=msql-front&gs_lcp=CgZwc3ktYWIQARgGMgQIABANMgQIABANMgQIABANMgQIABANMgQIABANMgYIABANEB4yBggAEA0QHjIGCAAQDRAeMgYIABANEB4yBggAEA0QHjoECAAQRzoLCAAQsQMQgwEQiwM6CAgAELEDEIsDOgUIABCLAzoKCAAQsQMQgwEQQzoHCAAQsQMQQzoECAAQQzoFCAAQsQM6BAgAEAM6CggAELEDEEMQiwM6DQgAELEDEIMBEEMQiwM6AggAOgcIABAKEIsDOgQIABAKOgYIABAKEB46BAgAEB5Q7sUOWODfDmCGlQ9oAHABeACAAYYCiAHgCpIBBTAuOS4xmAEAoAEBqgEHZ3dzLXdpergBAg&sclient=psy-ab abraço
×
×
  • Criar Novo...