Ir para conteúdo
Fórum Script Brasil
  • 0

Acess Violation no Delphi


Ronaldo Lanhellas

Pergunta

Bom, ao tentar Executar meu sistema, consigo um acess violation, ao clicar em break ele me leva a seguinte linha de código:

procedure TfrmModelo.FormCreate(Sender: TObject);
var
I: Integer;
begin
for I := 0 to Pred(Ds.DataSet.FieldCount) do
begin
if Ds.DataSet.Fields[I].DataType in [ftstring,ftwidestring,ftfixedchar] then
cbxcampo.items.Add(Ds.DataSet.Fields[I].FieldName);
end;
end;

Para explicar melhor, este código foi o que usei para adicionar campos ao meu combobox através do evento oncreat do meu formulário modelo, depois de colocar este oncreat em meu sistema, não consigo rodá-lo por causa do acess violation

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0
certo entendi , em vez de usar o OnCreate eu devo usar o OnShow, porém gostaria de saber qual a diferença deles, creiu eu que o OnCreate é executado na criação do form (não tenho certeza, se não for isso me diga para o que então porfavor), e o OnShow faz o que ?

Exatamente, o OnCreate é na criação do Form, e o OnShow é na hora que o form é mostrado!

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Para explicar melhor, este código foi o que usei para adicionar campos ao meu combobox através do evento oncreat do meu formulário modelo, depois de colocar este oncreat em meu sistema, não consigo rodá-lo por causa do acess violation

O erro está no seu código .... mas qual é a finalidade de colocar o nome dos campos da sua tabela dentro de um combobox ?

Link para o comentário
Compartilhar em outros sites

  • 0

mais pera lá, se eu por dentro de um botão vai ficar sem nexo, certo ? pois ele cria uma lista atraves de um laço for e um botão não precisa de uma lista.

ps: alguém me disse que isso ocorria porque o OnCreate ou algo do tipo já existia em outro lugar e bla bla bla, não sei se tem algo haver

Link para o comentário
Compartilhar em outros sites

  • 0

olha só o que eu fiz: retirei o código do OnCreate e coloquei em um botão como você havia dito, o que ocorre é que a combobox funciona normal depois disto, lista normal as tabelas do meu banco de dados.

Agora porque que não está funcionando no OnCreate ?

Bom, coloquei no evento OnShow do meu FrmModelo e funcionou com este código, creiu que meu problema esteja resolvido. Porém não consigo entender ainda o porque não funcionar no OnCreate, apenas no OnShow !

Link para o comentário
Compartilhar em outros sites

  • 0
Bom, coloquei no evento OnShow do meu FrmModelo e funcionou com este código, creiu que meu problema esteja resolvido. Porém não consigo entender ainda o porque não funcionar no OnCreate, apenas no OnShow !

voce não pode colocar um código para executar antes que o Form tenha sido criado, então o correto seria colocar o código no evento OnActive do Form, para que sempre que o Form for ativado ( ou seja receber o foco ) o codigo seja executado.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
e no caso do OnShow, não seria o mesmo racioncínio , pois no OnShow funcionou normal

Não é o mesmo raciocinio, porque no evento OnShow o código será executado apenas uma unica vez

e no evento OnActive o código será executado sempre que o Form for ativado

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...