Fórum Erro ao abrir formulário - Acess Violation #518382
30/04/2015
0
Estou com este problema ao abrir o formulário. No Formprincipal eu chamo da seguinte forma:
if formTrocarLote = nil then
formTrocarLote := TformTrocarLote.create(Application);
formTrocarLote.Show();
Detalhe:
1) Tem outros form que chamo da mesma forma é dá certo.
2) O mais intrigante é que antes funcionava de repente parou de funcionar.
3) Passei o antivirus e não acusou nada.
4) Nos outros computadores da rede não tem problema.
O que será que está bloqueando/Travando heim?
Desde já agradeço
Dirceu Morais
Curtir tópico
+ 0Posts
30/04/2015
Douglas
Gostei + 0
30/04/2015
Dirceu Morais
Mas não deu certo. Continua com o mesmo problema.
Gostei + 0
30/04/2015
Douglas
Gostei + 0
30/04/2015
Thiago Santana
formTrocarLote := TformTrocarLote.Create(Self); formTrocarLote.ShowModal; formTrocarLote.Free;
Outra coisa que você precisa verificar é se no seu projeto esse form está marcado para ser criado ao iniciar!
Espero ter ajudado.
Gostei + 0
30/04/2015
Dirceu Morais
Mas como disse, o interessante é que nos outros PCs funcionam. Neste funcionava e de repente parou.
Gostei + 0
30/04/2015
Thiago Santana
Deve funcionar em todas as estações!
Gostei + 0
30/04/2015
Douglas
Gostei + 0
30/04/2015
Douglas
Gostei + 0
04/05/2015
Dirceu Morais
Estranhamente hoje, o formulário abriu!!!!!!
Estranho, porque este problema, estava acontecendo há alguns, ou seja, o computador foi desligado e ligado novamente.
Não posso nem postar a solução do problema, para os outros colegas, porque não sei o que ocasional o erro e nem o motivo para voltar funcionar.
ô doideira!!!!!!
Gostei + 0
04/05/2015
Thiago Santana
Gostei + 0
14/09/2017
Dirceu Morais
O problema voltou a dar em outro cliente, do mesmo jeito, ou seja, tem um computador que está com problema e tenho outros na mesma rede que abre o formulário normalmente.
O Ruim disso tudo é que não consigo debuggar, porque no meu computador que tem o Delphi instalado o programa abre normalmente.
Alguém já passou por isso?
Gostei + 0
18/09/2017
Felipe Morais
-> Tentar acessar um Objeto que não foi instanciado (geralmente pelo
constructor Create
-> Tentar destruir um Objeto que não existe mais;
Quando se cria Forms em tempo de execução, é seguro fazer uma verificação se a instância desse Form está criada. Se não estiver, é preciso chamar o construtor para instanciar o Form:
if not (Assigned(Seu_Form)) then // Técnica padrão do Delphi para criação de Forms (veja seu .dpr, por exemplo) Application.CreateForm(TSeu_Form, Seu_Form);
Feito isso, mostre seu Form (Show ou ShowModal) e depois não se esqueça de liberá-lo da memória. O código completo seria:
if not (Assigned(Seu_Form)) then
Application.CreateForm(TSeu_Form,Seu_Form);
try
Seu_Form.ShowModal;
finally
FreeAndNil(Seu_Form);
end;
Gostei + 0
18/09/2017
Dirceu Morais
Gostei + 0
18/09/2017
Felipe Morais
Verifique se o formulário que está chamando no código está na janela "Available Forms". Se ainda assim não resolver, posta o código pra gente dar uma olhada.
Gostei + 0
18/09/2017
Dirceu Morais
LEMBRANDO, que o formulário não abre em determinado computador, não consigo fazer DEBUGAR porque no meu abre normalmente.
unit UnEstimativa;
interface
uses
Windows, FMTBcd, frxDMPExport, frxExportRTF, frxExportXLS,frxExportPDF,Forms,
frxOLE, frxExportImage, frxExportMail, frxClass, frxDBSet, frxDesgn,SysUtils,
Menus, RpDefine, RpBase, RpSystem, DB, Provider, SqlExpr, DBClient, inifiles,
StdCtrls, ExtCtrls, Buttons, Controls, CheckLst, RXCtrls, ToolEdit, Messages,
CurrEdit, AdvGlowButton, Grids, DBGrids, ComCtrls, RzTabs, Variants, Classes,
Graphics, DBXpress, Mask, Math, DateUtils;
type
TFormEstimativa = class(TForm)
fxPedidos: TfrxReport;
frxDesigner1: TfrxDesigner;
frxEmitente: TfrxUserDataSet;
frxORCAMENTO: TfrxDBDataset;
frxDuplicatas: TfrxDBDataset;
frxItensOrcamento: TfrxDBDataset;
frxBMPExport1: TfrxBMPExport;
frxMail: TfrxMailExport;
frxJPEGExport1: TfrxJPEGExport;
frxOLEObject1: TfrxOLEObject;
frxPDFExport1: TfrxPDFExport;
frxXLSExport1: TfrxXLSExport;
frxRTFExport1: TfrxRTFExport;
frxDotMatrixExport1: TfrxDotMatrixExport;
cdsDigItensNota_Moeda: TStringField;
cdsItensOPEDDESCRICAO: TStringField;
cdsItensOPEDMOEDA: TStringField;
cdsItensOPROCST: TStringField;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormEstimativa: TFormEstimativa;
implementation
uses UnPrincipal, unLocaliza, UnDMMov, UnLocCli, UnDadosCliente,
UnSelecProd, unServicos, UnDM, UnVendedores, UnTransportadoras, UnBancos,
UDialog, uRotinas, uMatricial, unPreview;
{$R *.DFM}
procedure TFormEstimativa.FormCreate(Sender: TObject);
begin
// Configurações iniciais
Top := 6;
Left := 110;
end;
procedure TFormEstimativa.FormDestroy(Sender: TObject);
begin
FormOrcamento := Nil;
end;
procedure TFormEstimativa.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := cafree;
end;
procedure TFormEstimativa.bfecharClick(Sender: TObject);
begin
Close;
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)