ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Erro no procedimento Salvar da Unit

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
thaita
Novato
Novato


Registrado: Sábado, 26 de Novembro de 2022
Mensagens: 44

MensagemEnviada: Sex Jul 07, 2023 11:44 am    Assunto: Erro no procedimento Salvar da Unit Responder com Citação

Meus prezados,
Estou utilizando o delphi 10.4.2 e estou com erro no procedimento salvar da unit abaixo. Podem me ajudar?
[dcc32 Error] Sitio.view.pages.cadastroPessoa.pas(146): E2064 Left side cannot be assigned to
[dcc32 Error] Sitio.view.pages.cadastroPessoa.pas(163): E2064 Left side cannot be assigned to
[dcc32 Hint] Sitio.view.pages.cadastroPessoa.pas(69): H2219 Private symbol 'FDataset' declared but never used
[dcc32 Fatal Error] F2063 Could not compile used unit 'Sitio.view.pages.cadastroPessoa.pas'
// Segue o código da unit abaixo:

unit Sitio.view.pages.cadastroPessoa;

interface

uses
Winapi.Windows,
Winapi.Messages,
System.SysUtils,
System.Variants,
System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.ExtCtrls,
Vcl.Imaging.pngimage,
Vcl.Buttons,
Vcl.ComCtrls,
Vcl.StdCtrls,
Sitio.view.utils.impl.resourceimage,
Sitio.Controller.interfaces,
Sitio.view.utils.interfaces,
Sitio.Controller.dto.interfaces,
Sitio.Controller.dto.impl.Pessoa,
Sitio.Controller.impl.controller,
Datasnap.DBClient;

type
TPageCadastroPessoa = class(TForm)
pnlPrincipal: TPanel;
pnlBotoes: TPanel;
pnlSalvar: TPanel;
imgSalvar: TImage;
btnSalvar: TSpeedButton;
pnlExcluir: TPanel;
imgExcluir: TImage;
btnExcluir: TSpeedButton;
pnlListar: TPanel;
imgListar: TImage;
btnListar: TSpeedButton;
pnlSair: TPanel;
imgSair: TImage;
btnSair: TSpeedButton;
Label2: TLabel;
cbTipo: TComboBox;
edtNome: TLabeledEdit;
edtDataNascReg: TDateTimePicker;
Label3: TLabel;
edtCPFCNPJ: TLabeledEdit;
edtCidade: TLabeledEdit;
edtBairro: TLabeledEdit;
edtEstado: TLabeledEdit;
edtTelefone: TLabeledEdit;
edtEmail: TLabeledEdit;
cbAtivo: TComboBox;
Label4: TLabel;
Label1: TLabel;
Label5: TLabel;
edtDataInicio: TDateTimePicker;
edtDataFim: TDateTimePicker;
ListView1: TListView;
procedure btnSalvarClick(Sender: TObject);
procedure btnSairClick(Sender: TObject);
procedure btnExcluirClick(Sender: TObject);
procedure btnListarClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
FController : iController;
FDataset : TClientDataset;
public
{ Public declarations }
end;

var
PageCadastroPessoa: TPageCadastroPessoa;

implementation

uses
Data.DB;

{$R *.dfm}

procedure TPageCadastroPessoa.btnExcluirClick(Sender: TObject);
begin
if ListView1.Selected <> nil then
begin
if Application.MessageBox('Deseja realmente excluir esta pessoa ? ',
'SimpleORM', MB_ICONQUESTION + MB_YESNO) = ID_YES then
begin
FController.Pessoa.id(ListView1.Items[ListView1.Selected.Index].Caption.toInteger)
.Build.Excluir;
ListView1.Items[ListView1.Selected.Index].Delete;
end;
end;
end;

procedure TPageCadastroPessoa.btnListarClick(Sender: TObject);
var
lList : TListItem;
lDatasource : TDatasource;
begin
lDatasource := TDatasource.Create(nil);
try
FController.Pessoa.Build.Datasource(lDatasource).ListarTodos;

if lDatasource.DataSet.IsEmpty then
begin
ShowMessage('Não existem dados a serem visualizados ');
Exit;
end;
lDatasource.DataSet.First;

while not lDatasource.DataSet.Eof do
begin
lList := ListView1.Items.Add;
lList.Caption := lDatasource.Dataset.FieldByName('ID').AsString;
lList.SubItems.Add(lDatasource.DataSet.FieldByName('TIPOCADASTRO').AsString);
lList.SubItems.Add(lDatasource.DataSet.FieldByName('NOME').AsString);
lList.SubItems.Add(lDatasource.DataSet.FieldByName('CPFCNPJ').AsString);
lDatasource.DataSet.Next;
end;

finally
lDatasource.DisposeOf;
end;


end;

procedure TPageCadastroPessoa.btnSairClick(Sender: TObject);
begin
Close;
end;

procedure TPageCadastroPessoa.btnSalvarClick(Sender: TObject);
begin
try
if FController.Pessoa.TipoCadastro = 'Fornecedores' then
cbTipo.ItemIndex := 0
else if FController.Pessoa.TipoCadastro = 'Parceiros Agrícolas' then
cbTipo.ItemIndex := 1
else if FController.Pessoa.TipoCadastro = 'Clientes' then
cbTipo.ItemIndex := 2
else
FController.Pessoa.TipoCadastro := EmptyStr;

FController.Pessoa
.Nome(edtNome.Text)
.DataNascReg(edtDataNascReg.Date)
.CpfCnpj(edtCPFCNPJ.Text)
.Cidade(edtCidade.Text)
.Bairro_Distrito(edtBairro.Text)
.Estado(edtEstado.Text)
.Telefone(edtTelefone.Text)
.Email(edtEmail.Text);

if FController.Pessoa.Ativo = 'S' then
cbAtivo.ItemIndex := 0
else if FController.Pessoa.Ativo = 'N' then
cbAtivo.ItemIndex := 1
else
FController.Pessoa.Ativo := EmptyStr;

FController.Pessoa
.DataInicio(edtDataInicio.Date)
.DataFim(edtDataFim.Date)
.Build
.Inserir;
ShowMessage('Pessoa cadastrada com sucesso!');
except
on E: Exception do
raise Exception.Create('Não foi possível cadastrar a pessoa: ' + E.Message);
end;
end;

procedure TPageCadastroPessoa.FormCreate(Sender: TObject);
begin
FController:= TController.New;
end;

end.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
junapaula
Novato
Novato


Registrado: Segunda-Feira, 10 de Julho de 2023
Mensagens: 6

MensagemEnviada: Qua Jul 19, 2023 1:46 pm    Assunto: Responder com Citação

parte de sua mensagem de erro pode ser resolvida assim (segundo a pagina de ajuda da embarcadero):

Essa mensagem de erro é fornecida quando você tenta modificar um objeto somente leitura, como uma constante, um parâmetro constante, o valor de retorno da função, propriedades somente leitura ou campos de propriedades somente leitura.

Existem duas maneiras de resolver esse tipo de problema:

Altere a definição de tudo o que você está atribuindo, para que a atribuição se torne legal.
Elimine a atribuição completamente.



exemplo:
[url]https://docwiki.embarcadero.com/RADStudio/Alexandria/en/E2064_Left_side_cannot_be_assigned_to_(Delphi)#:~:text=This%20error%20message%20is%20given,fields%20of%20read%2Donly%20properties.[/url]

Não entendo muito desta versão 2010, mas verifique se o arquivo que está tentando editar não é somente leitura.
Alguns AVs podem ser configurador para bloquear certas pastas contra escrita (para impedir ransonwares), neste caso precisa habilitar no AV a sua aplicação delphi. (se o windows não te pediu esta informação, pode ser que tenha pedido anteriormente e vc tenha negado), caso seja esta sua situação precisaria entrar nas configurações do AV e remover o delphi das aplicações bloqueadas.[url][/url]
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB