Debug Xe6

Delphi

25/06/2019

Bom Tarde,

Estou tralhando em projeto que está me tirando o sono. Nos outros projetos quando dá um erro de execução sql ou algum erro qlq, na maioria das vezes eu coloco o Try ...Except end;

Try
   Execute('insert into bilhete (código, nome, data, hora) values (:0,:1,:2,)'
except
         on e : Exception do
         Begin
            beep;
            dm.DB.Rollback;
            KDialog('Erro ao gravar bilhete'#13#13'Classe de erro: '+e.ClassName + #13+
                'Mensagem de erro: '+ e.Message, 'Erro', 'ERRO');
            exit
         end;
      end;


Ao invés de mostrar a mensagem "Erro ao gravar bilhete......" aparece a mensagem de violação:

'Access violation at address 004053CD in module ''Bilheteria.exe''. Read of address 0030002C'


Mesmo eu fazendo o DEBUG aparece a mensagem de Violação.
Debbuger Fault Notification


Project: d:\\Vendas\\Bilhete.exe fauted with message: 'system exception (code 0x00041d) at 0x00000053cd'.Process stopped.
use step or run to continue


Depois que dá essa mensagem, nem sair do programa eu consigo.


Eu testei, várias vezes o comando "clientdataset.locate" e apareceria a mensagem de violação. Acho que deve ser alguma coisa a respeito da hora.
Porque fui almoçar, quando retornei já não deu erro mais.


Me ajudem..... rsrsrs
Dirceu Morais

Dirceu Morais

Curtidas 0

Melhor post

Emerson Nascimento

Emerson Nascimento

26/06/2019

publique o trecho de código que está gerando o erro.

se com o código em mãos você não está conseguindo identificar o problema, imagine como pode ser difícil pra quem quer te ajudar, se você não publicá-lo.

indique também qual banco de dados, tipos dos campos e o que mais você puder detalhar.
GOSTEI 1

Mais Respostas

Bruno

Bruno

25/06/2019

Bom Tarde,

Estou tralhando em projeto que está me tirando o sono. Nos outros projetos quando dá um erro de execução sql ou algum erro qlq, na maioria das vezes eu coloco o Try ...Except end;

Try
   Execute('insert into bilhete (código, nome, data, hora) values (:0,:1,:2,)'
except
         on e : Exception do
         Begin
            beep;
            dm.DB.Rollback;
            KDialog('Erro ao gravar bilhete'#13#13'Classe de erro: '+e.ClassName + #13+
                'Mensagem de erro: '+ e.Message, 'Erro', 'ERRO');
            exit
         end;
      end;


Ao invés de mostrar a mensagem "Erro ao gravar bilhete......" aparece a mensagem de violação:

'Access violation at address 004053CD in module ''Bilheteria.exe''. Read of address 0030002C'


Mesmo eu fazendo o DEBUG aparece a mensagem de Violação.
Debbuger Fault Notification


Project: d:\\\\Vendas\\\\Bilhete.exe fauted with message: 'system exception (code 0x00041d) at 0x00000053cd'.Process stopped.
use step or run to continue


Depois que dá essa mensagem, nem sair do programa eu consigo.


Eu testei, várias vezes o comando "clientdataset.locate" e apareceria a mensagem de violação. Acho que deve ser alguma coisa a respeito da hora.
Porque fui almoçar, quando retornei já não deu erro mais.


Me ajudem..... rsrsrs


você inicia a transação? porque esta dando roollback talvez ele não esteja em transação e gera a erro
GOSTEI 0
Dirceu Morais

Dirceu Morais

25/06/2019



você inicia a transação? porque esta dando roollback talvez ele não esteja em transação e gera a erro


O Trecho que tem o Roollback foi só um exemplo, para vcs entenderem como eu faço.
GOSTEI 0
Dirceu Morais

Dirceu Morais

25/06/2019

Esta complicado colocar o código, pois teria eu disponibilizar o programa inteiro.

Veja bem:
Testei uma vez aqui e deu certo.

If Not cdsTMP.Locate('Categoria','-',[]) Then
 KDialog('Não achei categoria vazia','Alerta','Erro');
      cdsTMP.Edit;
      cdsTMPValor.AsFloat := cdsEventosVALOR.AsFloat;
      cdsTMPCategoria.AsString := 'I';


Agora fui executar novamente de deu erro de violação na linha: If Not cdsTMP.Locate('Categoria','-',[]) e como se não existisse a tabela CDSTMP.

Tem agora que consigo imprimir no FastReport de boa, dai do nada, ao executar não imprimi nada ou dá erro de violação.




GOSTEI 0
Emerson Nascimento

Emerson Nascimento

25/06/2019

cdsTMP pode estar sendo fechada num momento indevido, ou até mesmo ter sido eliminado.
se cdsTMP for criado em tempo de execução, veja quem é o owner, pois ao eliminar o owner, os childs também são eliminados.
GOSTEI 0
Bruno

Bruno

25/06/2019

Esta complicado colocar o código, pois teria eu disponibilizar o programa inteiro.

Veja bem:
Testei uma vez aqui e deu certo.

If Not cdsTMP.Locate('Categoria','-',[]) Then
 KDialog('Não achei categoria vazia','Alerta','Erro');
      cdsTMP.Edit;
      cdsTMPValor.AsFloat := cdsEventosVALOR.AsFloat;
      cdsTMPCategoria.AsString := 'I';


Agora fui executar novamente de deu erro de violação na linha: If Not cdsTMP.Locate('Categoria','-',[]) e como se não existisse a tabela CDSTMP.

Tem agora que consigo imprimir no FastReport de boa, dai do nada, ao executar não imprimi nada ou dá erro de violação.







antes de dar locate verifica se esta cdsTMP.IsEmpty
GOSTEI 0
Dirceu Morais

Dirceu Morais

25/06/2019

Será que tem alguma coisa a ver com minha configuração:

Formprincipal:
Borderstyle=bsSingle
FormStyle = fsMDIForm
Visible = True
Windostate=wsMaximized

Chamada:
   If FormVendas = nil Then
      FormVendas := TFormVendas.Create(Application);
   FormVendas.Show;
   Panel2.Visible := False;


No formVendas:
Borderstyle=bsNone
FormStyle = fsMDIChild
Visible = True
Windostate=wsMaximized




O Formvendas trabalha com outra tela (outro monitor para o cliente ficar vendo o que esta sendo digitado, com a mesma característica do formvendas)

type
TFormVendas = class(TForm)
...
cdsTMP: TClientDataSet;
...


No oncreate do formvendas:
cdsTMP.CreateDataSet;


No Botão Inicia vendas:
cdsTMP.EmptyDataSet;

Lembrando que o erro ocorre em outras tabelas também;

Neste caso também esta com erro:
 cdsSessao.Close;
         cdsSessao.ParamByName('Data').AsDateTime := cdsEventosDATA.AsDateTime;
         cdsSessao.ParamByName('Hora').AsDateTime := cdsEventosHORA.AsDateTime;
         cdsSessao.ParamByName('01').AsInteger := cdsEventosID_VENDA.AsInteger;
         cdsSessao.ParamByName('02').AsString   := cdsEventosID_ITEM.AsString;
         cdsSessao.Open();

Ao executar o OPEN dá erro.
O que mais me intriga é que Não é sempre que acontece isto.
As vezes acontece na primeira chamada, outras vezes na segunda.

;(
GOSTEI 0
Bruno

Bruno

25/06/2019

Qual erro está dando amigo vamos em partes .
GOSTEI 0
Dirceu Morais

Dirceu Morais

25/06/2019

Sempre é o mesmo erro em tudo.
Na hora de imprimir, abrir uma tabela.

'Access violation at address 004053CD in module ''Bilheteria.exe''. Read of address 0030002C'


[code=delphi
Debbuger Fault Notification


Project: d:\\\\Vendas\\\\Bilhete.exe fauted with message: 'system exception (code 0x00041d) at 0x00000053cd'.Process stopped.
use step or run to continue
[/code]

Acho que vou começar um projeto novo.
Pq já tem uma semana que estou nesta peleja.
GOSTEI 0
Dirceu Morais

Dirceu Morais

25/06/2019

Olha só,

Criei outro projeto e continua com o mesmo erro.

Olha só este outro erro:
Coloquei um Componente FDQuery liquei a conexão com o DM coloquei o sql lá.
Inclui os Fields. Deixei a conexão com o Banco de dados Fechada.

No Form eu uso assim.

        cdsSessao.Close;  //CdsSessao = FDQuery       -----DÁ ERRO DE VIOLAÇÃO AQUI
        cdsSessao.ParamByName('Data').AsDateTime := cdsEventosDATA.AsDateTime;
        cdsSessao.ParamByName('Hora').AsDateTime := cdsEventosHORA.AsDateTime;
        cdsSessao.ParamByName('01').AsInteger := cdsEventosID_VENDA.AsInteger;
        cdsSessao.ParamByName('02').AsString   := cdsEventosID_ITEM.AsString;
        cdsSessao.Open();


Testei assim:

if cdssessao.active Then
cdssessao.close; ///Testei também: cdssessao.active := False;
cdsSessao.ParamByName('Data').AsDateTime := cdsEventosDATA.AsDateTime;
cdsSessao.ParamByName('Hora').AsDateTime := cdsEventosHORA.AsDateTime;
cdsSessao.ParamByName('01').AsInteger := cdsEventosID_VENDA.AsInteger;
cdsSessao.ParamByName('02').AsString := cdsEventosID_ITEM.AsString;
cdsSessao.Open();


Porém, entra no "cdssessao.close" e dá erro.

Tentei não usando o "cdssessao.close" passou, só que eu preciso, atualizar o meu CDS.

Caramba!
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

25/06/2019

há implementação nos eventos do componente cdssessao ?
GOSTEI 0
Bruno

Bruno

25/06/2019

Acho melhor você mandar como você faz a logica de montagem toda de uma vez para que agente possa te ajudar..
GOSTEI 0
Dirceu Morais

Dirceu Morais

25/06/2019

há implementação nos eventos do componente cdssessao ?


Não há nenhum evento nas tabelas.

Aliás eu coloquei uma agora no "afteropen" da tabela.

  if cdsVendas.Active then
     cdsVendas.Close;


GOSTEI 0
Rafael Bosco

Rafael Bosco

25/06/2019

Meu amigo, o seu erro é por que ta faltando a midas.dll, vá no seu formprincipal e coloque nas USES: midaslib;
GOSTEI 0
Dirceu Morais

Dirceu Morais

25/06/2019

Rafael, só se for o contrário porque já estou usando.

Meu amigo, o seu erro é por que ta faltando a midas.dll, vá no seu formprincipal e coloque nas USES: midaslib;


Veja:
program Bilheteria;

uses
  Vcl.Forms,
  MidasLib,
  unPrincipal in 'unPrincipal.pas' ,
  UDialog in 'UDialog.pas' ,
  unDm in 'unDm.pas' {DM: TDataModule},
  unLogin in 'unLogin.pas' ,
  uRotinas in 'uRotinas.pas',
  UnConfiguracao in 'UnConfiguracao.pas' ,
  unFechamentoCaixa in 'unFechamentoCaixa.pas' ,
  unBilheteria in 'unBilheteria.pas' ,
  unTelaCliente in 'unTelaCliente.pas' ,
  unprogramacao in 'unprogramacao.pas' ,
  unrelprogramacao in '..\\unrelprogramacao.pas' ,
  unSenha in 'unSenha.pas' ,
  ufCadastrar in '..\\ufCadastrar.pas' {FrameCadastro: TFrame};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TFormPrincipal, FormPrincipal);
  Application.CreateForm(TfrmDialog, frmDialog);
  Application.CreateForm(TDM, DM);
  Application.Run;
end.

GOSTEI 0
Dirceu Morais

Dirceu Morais

25/06/2019

Fala Galera, Boa tarde,

Ainda estou na peleja.
Criei um novo projeto e continua dano o mesmo erro vejam só.

o trecho abaixo, executa uma, duas, três, quatro, cinco, seis, e de repente ao clicar no botão btiniciavendaclick da erro.

Classe de erro: EAccessViolation
Mensagem de erro: Access violation at address 0040572B in module 'DSCinema.exe'. Read of address 00300030

procedure TFormBilheteria.btIniciaVendaClick(Sender: TObject);
Var i : Integer;
    Classif : String;
begin
   Try
      QueryValor.Close;
      QueryValor.SQL.Text := 'Select Data_Exibicao, id_sala, id_filme from '+
         'sessao_filme Where data_exibicao < current_date';
      QueryValor.Open;  //AS VEZES DA ERRO AQUI
      if dm.QueryValor.RecordCount > 0 then
      Begin
         KDialog('Existe caixa aberto do dia '+FormatDateTime('dd/mm/yyyy',dm.QueryValor.FieldByName('Data_Exibicao').AsDateTime)+
            ' Sala '+dm.QueryValor.FieldByName('id_sala').AsString,'Alerta','Info');
         Exit;
      End;

      TelaCliente(0,'1','1','1'); //PROCEDIMENTO ESTA VAZIO NÃO FAZ NADA POR ENQUANTO
      tsFilme.TabVisible := True;
      RzPageControl1.ActivePageIndex := 1;
      tsInicial.TabVisible := False;
      cdsTMP.EmptyDataSet;
      cdsEventos.Close;
      cdsEventos.Open;
      i := 1;
      PanelData.Caption := 'Data: '+ cdsEventosDATA_EXIBICAO.AsString;
      lbSelecao.Caption := 'Total Selecionada:   0';
      stCadeiraSelec.Caption := lbSELECAO.Caption;
      imsala01.Picture := Nil;
      imsala02.Picture := Nil;
      imsala03.Picture := Nil;
      imsala04.Picture := Nil;
      while not cdsEventos.eof do
      Begin
         case i of
         1 :
         Begin
             PanelSALA01.Visible := True;
             if cdsEventosIMAGEM.AsString <> '' Then
             begin
                 If FileExists(cdsEventosIMAGEM.AsString) Then
                    imsala01.Picture.LoadFromFile(cdsEventosIMAGEM.AsString);
             end;
             stFilme01.Caption := Trim(cdsEventosTITULO.AsString);
             S1 := cdsEventosID_SALA.AsString;
             F1 := cdsEventosID_FILME.AsString;
             H1 := cdsEventosHORA_EXIBICAO.AsString;
             stSala01.Caption := 'Sala: '+ cdsEventosID_SALA.AsString;
             stPrecoIS01.Caption := 'R$ '+Formatar_valores(cdsEventosPR_INTEIRA.AsFloat);
             stPrecoMS01.Caption := 'R$ '+Formatar_valores(cdsEventosPR_MEIA.AsFloat);
             stHora01.Caption := FormatDateTime('HH:mm',cdsEventosHORA_EXIBICAO.AsDateTime);
             Classif := RetSomenteNumeros(cdsEventosCENSURA.AsString);
             stLota01.Caption := 'Lotação: '+cdsEventosLOTACAO.AsString;
             //88Pinta_sessao(stSessao01,FormTelaCliente.stSessao01, cdsEventosLOTACAO.AsInteger,cdsEventosCAPACIDADE.AsInteger);
             Case StrToIntDef(Classif,0) of
             18 : imCensura01.Picture := im18.Picture;
             16 : imCensura01.Picture := im16.Picture;
             14 : imCensura01.Picture := im14.Picture;
             12 : imCensura01.Picture := im12.Picture;
             10 : imCensura01.Picture := im10.Picture;
             Else
//ERRO AQUI...........
                imCensura01.Picture := ImLivre.Picture;  //DA ERRO AQUI
             End;
             If cdsEventosAUDIO.AsString = 'L' Then
                stLegenda01.Caption := 'LEGENDADO'
             Else
                stLegenda01.Caption := 'DUBLADO';
             if cdsEventosTIPOPROJECAO.AsString = '3' then
                Proj01.Caption := '3D'
             Else
                Proj01.Caption := 'DIGITAL';
             Gauge1.MaxValue := cdsEventosCAPACIDADE.AsInteger;
             cdsVendas.Close;
             cdsVendas.ParamByName('TSala').AsString := cdsEventosID_SALA.AsString;
             cdsVendas.ParamByName('Data').AsDate := cdsEventosDATA_EXIBICAO.AsDateTime;
             cdsVendas.ParamByName('Hora').AsString := cdsEventosHORA_EXIBICAO.AsString;
             cdsVendas.ParamByName('Filme').AsString := cdsEventosID_FILME.AsString;
             cdsVendas.Open;
             gauge1.Progress :=cdsEventosLOTACAO.AsInteger;
         End;
         2 :
         Begin
             PanelSALA02.Visible := True;
             if cdsEventosIMAGEM.AsString <> '' Then
             begin
                 If FileExists(cdsEventosIMAGEM.AsString) Then
                    imsala02.Picture.LoadFromFile(cdsEventosIMAGEM.AsString);
             end;
             stFilme02.Caption := Trim(cdsEventosTITULO.AsString);
             stSala02.Caption := 'Sala: '+ cdsEventosID_SALA.AsString;
             stPrecoIS02.Caption := 'R$ '+Formatar_valores(cdsEventosPR_INTEIRA.AsFloat);
             stPrecoMS02.Caption := 'R$ '+Formatar_valores(cdsEventosPR_MEIA.AsFloat);
             stHora02.Caption := FormatDateTime('HH:mm',cdsEventosHORA_EXIBICAO.AsDateTime);
             Classif := RetSomenteNumeros(cdsEventosCENSURA.AsString);
             F2 := cdsEventosID_FILME.AsString;
             S2 := cdsEventosID_SALA.AsString;
             H2 := cdsEventosHORA_EXIBICAO.AsString;
             Case StrToIntDef(Classif,0) of
             18 : imCensura02.Picture := im18.Picture;
             16 : imCensura02.Picture := im16.Picture;
             14 : imCensura02.Picture := im14.Picture;
             12 : imCensura02.Picture := im12.Picture;
             10 : imCensura02.Picture := im10.Picture;
             Else
                imCensura02.Picture := ImLivre.Picture;
             End;
             If cdsEventosAUDIO.AsString = 'L' Then
                stLegenda02.Caption := 'LEGENDADO'
             Else
                stLegenda02.Caption := 'DUBLADO';
             if cdsEventosTIPOPROJECAO.AsString = '3' then
                Proj02.Caption := '3D'
             Else
                Proj02.Caption := 'DIGITAL';
             Gauge2.MaxValue := cdsEventosCAPACIDADE.AsInteger;
             cdsVendas.Close;
             cdsVendas.ParamByName('TSala').AsString := cdsEventosID_SALA.AsString;
             cdsVendas.ParamByName('Data').AsDate := cdsEventosDATA_EXIBICAO.AsDateTime;
             cdsVendas.ParamByName('Hora').AsString := cdsEventosHORA_EXIBICAO.AsString;
             cdsVendas.ParamByName('Filme').AsString := cdsEventosID_FILME.AsString;
             cdsVendas.Open;
             gauge2.Progress := cdsEventosLOTACAO.AsInteger;
             stLota02.Caption := 'Lotação: '+cdsEventosLOTACAO.AsString; 
         End;
        end;
         Inc(i);
         cdsEventos.Next;
      End;
   Except
      on e : Exception do
      Begin
         KDialog('Erro ao iniciar venda'#13#13'Classe de erro: '+e.ClassName + #13+
                'Mensagem de erro: '+ e.Message, 'Erro', 'ERRO');
      end;
   end;
   PanelSALA01.Visible := S1<>'';
   PanelSALA02.Visible := S2<>'';
end;

procedure TFormBilheteria.bVoltarClick(Sender: TObject);
begin
   tsInicial.TabVisible := True;
   RzPageControl1.ActivePageIndex := 0;
   tsFilme.TabVisible := False;
   tsPoltrona.TabVisible := False;
   tsFinalizacao.TabVisible := False;
end;             


Veja que não DESTRUO nenhum objeto.

Já faz mais de mês que estou lutando com esse erro.

Me ajude sniff, sniff
GOSTEI 0
Dirceu Morais

Dirceu Morais

25/06/2019

Postei o mesmo problema neste outro Fórum, https://www.projetoacbr.com.br/forum/topic/52912-acesso-violado-mas-como/ no final tem um vídeo onde aparece o problema.

Se puderem assistir o vídeo para entenderem melhor, para me ajudar.

Ficarei grato.

Tenho pouco dias para finalizar o programa.

Desde já agradeço.

GOSTEI 0
Dirceu Morais

Dirceu Morais

25/06/2019

Postei o mesmo problema em outro fórum por ter a opção de incluir vídeo, onde vcs conseguirão ver melhor o meu problema.
https://www.projetoacbr.com.br/forum/topic/52912-acesso-violado-mas-como/


Desde já agradeço.
GOSTEI 0
Dirceu Morais

Dirceu Morais

25/06/2019

Como faço para descobrir se tem algum thread rodando no meu programa?

Ou como vejo se tem alguma coisa rodando em segundo plano? Tem como saber fazendo uma pesquisa?

Pensei também se não tem algum Timer em algum componente rodando e mas não consegui identificar também.

Removi alguns componentes achando que poderia ser, mas ainda nada.

Abaixo listo os uses do formulario
uses Vcl.MPlayer, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param,
  FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf,
  FireDAC.Stan.Async, FireDAC.DApt, frxClass, frxDesgn, Vcl.ImgList, Forms,
  Vcl.Controls, frxGradient, frxBarcode, frxExportPDF, frxOLE,
  frxDBSet, Vcl.Menus, DB, FireDAC.Comp.DataSet, inifiles,
  FireDAC.Comp.Client, Datasnap.DBClient, Vcl.ComCtrls, Vcl.ExtCtrls, Messages,
  Vcl.DBCtrls, Vcl.StdCtrls, RxCurrEdit, pngimage, Windows, Graphics,
  Vcl.Samples.Gauges, Vcl.Grids, Vcl.DBGrids, Dialogs, SysUtils, RxToolEdit,
  AdvGlowButton, Vcl.Mask, RzTabs, Variants, Classes, jpeg;

const
  InputBoxMessage = WM_USER + 200;

type
  TFormBilheteria = class(TForm)


Alguns componentes, não listei todos pq são muitos:
RzPageControl1: TRzPageControl;
    tsInicial: TRzTabSheet;
    Panel1: TPanel;
    Label16: TLabel; 
   Splitter3: TSplitter;
    meHoraExibicao: TMaskEdit;
    cbFechados: TCheckBox;
    BTSair: TAdvGlowButton;
   deData: TDateEdit;
    DBGrid1: TDBGrid;
    Panel13: TPanel;
    Splitter4: TSplitter;
    StaticText7: TStaticText;
    stLota04: TStaticText;
    PanelSALA03: TPanel;
    imsala03: TImage;
    imCensura03: TImage;
   Gauge3: TGauge;
   ceQI: TCurrencyEdit;
   ceQM: TCurrencyEdit;
   ceQC: TCurrencyEdit;
   ceQE: TCurrencyEdit;
  GroupBox1: TGroupBox;
  cbAssento: TCheckBox;  
  dsTMP: TDataSource;
   FDAssentos: TFDQuery;
  N2: TMenuItem;
   Inteira1: TMenuItem;
GOSTEI 0
Dirceu Morais

Dirceu Morais

25/06/2019

Bom Tarde,

Estou tralhando em projeto que está me tirando o sono. Nos outros projetos quando dá um erro de execução sql ou algum erro qlq, na maioria das vezes eu coloco o Try ...Except end;

Try
   Execute('insert into bilhete (código, nome, data, hora) values (:0,:1,:2,)'
except
         on e : Exception do
         Begin
            beep;
            dm.DB.Rollback;
            KDialog('Erro ao gravar bilhete'#13#13'Classe de erro: '+e.ClassName + #13+
                'Mensagem de erro: '+ e.Message, 'Erro', 'ERRO');
            exit
         end;
      end;


Ao invés de mostrar a mensagem "Erro ao gravar bilhete......" aparece a mensagem de violação:

'Access violation at address 004053CD in module ''Bilheteria.exe''. Read of address 0030002C'


Mesmo eu fazendo o DEBUG aparece a mensagem de Violação.
Debbuger Fault Notification


Project: d:\\\\Vendas\\\\Bilhete.exe fauted with message: 'system exception (code 0x00041d) at 0x00000053cd'.Process stopped.
use step or run to continue


Depois que dá essa mensagem, nem sair do programa eu consigo.


Eu testei, várias vezes o comando "clientdataset.locate" e apareceria a mensagem de violação. Acho que deve ser alguma coisa a respeito da hora.
Porque fui almoçar, quando retornei já não deu erro mais.


Me ajudem..... rsrsrs


Galera, Acho que consegui resolver.Mas infelizmente não tem como eu postar a solução, porque mexi muito, retirei alguns componentes, troquei vários de posição,Agradeço a todos, que de alguma forma quebrou a cabeça.Brigadú.
GOSTEI 0
POSTAR