Cannot focus a disabled or invisible window??? (URGENTE)

16/07/2020

0

Em uma aplicação de cadastro de cliente, quando clico em salvar ou clico em novo duas vezes acontece esse erro, abaixo segue o código, alguém me ajuda por favor

unit Clientes;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Menus, Vcl.ComCtrls, Vcl.StdCtrls,
cxGraphics, cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore,
dxSkinsDefaultPainters, cxControls, cxStyles, cxCustomData, cxFilter, cxData,
cxDataStorage, cxEdit, cxNavigator, dxDateRanges,
cxDataControllerConditionalFormattingRulesManagerDialog, Data.DB, cxDBData,
cxCalendar, Vcl.Grids, Vcl.DBGrids, Vcl.DBCtrls, Vcl.ExtCtrls, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxGridCustomView, cxGrid, cxButtons, Vcl.Buttons, ISFEdit, ISFEditbtn,
ISFdbEditbtn, IDBEdit, uEstSearchDialogZeos, Vcl.Mask, cxContainer, cxGroupBox,
cxTextEdit, cxMemo, cxRichEdit;

type
TFrmClientes = class(TForm)
lb_cnpj_cpf: TLabel;
lb_ie_rg: TLabel;
lb_razao_social: TLabel;
lb_fantasia: TLabel;
lb_telefone: TLabel;
lb_celular: TLabel;
lb_contato: TLabel;
lb_email: TLabel;
lb_bairro: TLabel;
lb_complemento: TLabel;
lb_numero: TLabel;
lb_endereco: TLabel;
lb_cep: TLabel;
btn_sair: TcxButton;
btn_consultar: TcxButton;
btn_alterar: TcxButton;
btn_novo: TcxButton;
btn_salvar: TcxButton;
btn_excluir: TcxButton;
edt_fantasia: TDBEdit;
edt_razao_social: TDBEdit;
edt_cnpj: TDBEdit;
edt_cep: TDBEdit;
edt_endereco: TDBEdit;
edt_numero: TDBEdit;
edt_bairro: TDBEdit;
edt_complemento: TDBEdit;
edt_telefone: TDBEdit;
edt_celular: TDBEdit;
edt_contato: TDBEdit;
edt_ie_rg: TDBEdit;
edt_id: TDBEdit;
lb_id: TLabel;
procedure btn_novoClick(Sender: TObject);
procedure btn_salvarClick(Sender: TObject);
procedure btn_sairClick(Sender: TObject);
procedure btn_consultarClick(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
FrmClientes: TFrmClientes;

implementation

{$R *.dfm}

uses modulo, Consulta.Clientes;


procedure TFrmClientes.btn_consultarClick(Sender: TObject);
begin
FrmConsultaClientes := TFrmConsultaClientes.Create(Self);
FrmConsultaClientes.ShowModal;
FrmConsultaClientes.Free;
end;

procedure TFrmClientes.btn_novoClick(Sender: TObject);
begin
DM_Dados.tb_clientes.Insert;

end;


procedure TFrmClientes.btn_sairClick(Sender: TObject);
begin
FrmClientes.Close;
end;

procedure TFrmClientes.btn_salvarClick(Sender: TObject);
begin
DM_Dados.tb_clientes.Post;
ShowMessage('Cliente salvo com sucesso')
end;

end.
Ze Horllando

Ze Horllando

Responder

Post mais votado

17/07/2020

Esqueçi de mencionar nas propriedades do dbedit.text. tem uma opçao chamada VISIBLE se estive false coloque true !

Roberto Castelani

Roberto Castelani
Responder

Mais Posts

17/07/2020

Pedro Campos

Ze Horllando, veja se esta modificação é melhor:

procedure TFrmClientes.btn_consultarClick(Sender: TObject);
begin
FrmConsultaClientes := TFrmConsultaClientes.Create(Self);
try
FrmConsultaClientes.ShowModal;
finally
FrmConsultaClientes.Free;
// eu prefiro FreeAndNil(FrmConsultaClientes);
end;
end;
Responder

17/07/2020

Roberto Castelani

Em uma aplicação de cadastro de cliente, quando clico em salvar ou clico em novo duas vezes acontece esse erro, abaixo segue o código, alguém me ajuda por favor

unit Clientes;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Menus, Vcl.ComCtrls, Vcl.StdCtrls,
cxGraphics, cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore,
dxSkinsDefaultPainters, cxControls, cxStyles, cxCustomData, cxFilter, cxData,
cxDataStorage, cxEdit, cxNavigator, dxDateRanges,
cxDataControllerConditionalFormattingRulesManagerDialog, Data.DB, cxDBData,
cxCalendar, Vcl.Grids, Vcl.DBGrids, Vcl.DBCtrls, Vcl.ExtCtrls, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxGridCustomView, cxGrid, cxButtons, Vcl.Buttons, ISFEdit, ISFEditbtn,
ISFdbEditbtn, IDBEdit, uEstSearchDialogZeos, Vcl.Mask, cxContainer, cxGroupBox,
cxTextEdit, cxMemo, cxRichEdit;

type
TFrmClientes = class(TForm)
lb_cnpj_cpf: TLabel;
lb_ie_rg: TLabel;
lb_razao_social: TLabel;
lb_fantasia: TLabel;
lb_telefone: TLabel;
lb_celular: TLabel;
lb_contato: TLabel;
lb_email: TLabel;
lb_bairro: TLabel;
lb_complemento: TLabel;
lb_numero: TLabel;
lb_endereco: TLabel;
lb_cep: TLabel;
btn_sair: TcxButton;
btn_consultar: TcxButton;
btn_alterar: TcxButton;
btn_novo: TcxButton;
btn_salvar: TcxButton;
btn_excluir: TcxButton;
edt_fantasia: TDBEdit;
edt_razao_social: TDBEdit;
edt_cnpj: TDBEdit;
edt_cep: TDBEdit;
edt_endereco: TDBEdit;
edt_numero: TDBEdit;
edt_bairro: TDBEdit;
edt_complemento: TDBEdit;
edt_telefone: TDBEdit;
edt_celular: TDBEdit;
edt_contato: TDBEdit;
edt_ie_rg: TDBEdit;
edt_id: TDBEdit;
lb_id: TLabel;
procedure btn_novoClick(Sender: TObject);
procedure btn_salvarClick(Sender: TObject);
procedure btn_sairClick(Sender: TObject);
procedure btn_consultarClick(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
FrmClientes: TFrmClientes;

implementation

{$R *.dfm}

uses modulo, Consulta.Clientes;


procedure TFrmClientes.btn_consultarClick(Sender: TObject);
begin
FrmConsultaClientes := TFrmConsultaClientes.Create(Self);
FrmConsultaClientes.ShowModal;
FrmConsultaClientes.Free;
end;

procedure TFrmClientes.btn_novoClick(Sender: TObject);
begin
DM_Dados.tb_clientes.Insert;

end;


procedure TFrmClientes.btn_sairClick(Sender: TObject);
begin
FrmClientes.Close;
end;

procedure TFrmClientes.btn_salvarClick(Sender: TObject);
begin
DM_Dados.tb_clientes.Post;
ShowMessage('Cliente salvo com sucesso')
end;

end.



Bom dia ;

Então verifique se os componentes dbedit.text estão todos enabled:= false , (coloque TRUE) pois se estiverem quando vc dé um insert na tabela o ponteiro para vc digita não
vai ter para onde ir e vai acabar retornando essa menssagem , aparentemente não vi nada no seu código que possa gerar esse erro, porém de uma olhada na propriedade do dbedit.text ! e coloque true:
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar