Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eduardog Gomes

Problemas em debug

Recommended Posts

Ola a todos.... ;D to aprendendo a mecher em delphi... dai agora eu me deparei com um problema toda x que eu tento dar debug no programa esse form me da problema apresentando os seguintes erros:

 

[Error] UCadCliente.pas(209): Undeclared identifier: 'Cab_RelCadCliente'
  [Error] UCadCliente.pas(210): Undeclared identifier: 'Lin'
  [Error] UCadCliente.pas(212): Undeclared identifier: 'Det_RelCadCliente'
  [Error] UCadCliente.pas(226): Statement expected but 'PROCEDURE' found
  [Error] UCadCliente.pas(226): Undeclared identifier: 'Det_RelCadCliente'
  [Error] UCadCliente.pas(228): Undeclared identifier: 'RvSysCliente'
  [Error] UCadCliente.pas(228): 'DO' expected but identifier 'BaseReport' found
  [Error] UCadCliente.pas(230): Undeclared identifier: 'Gotoxy'
  [Error] UCadCliente.pas(230): Undeclared identifier: 'Lin'
  [Error] UCadCliente.pas(231): Undeclared identifier: 'Print'
  [Error] UCadCliente.pas(231): Missing operator or semicolon
  [Error] UCadCliente.pas(239): '.' expected but ';' found
  [Error] UCadCliente.pas(241): Undeclared identifier: 'Cab_RelCadCliente'
  [Error] UCadCliente.pas(243): Undeclared identifier: 'RvSysCliente'
  [Error] UCadCliente.pas(243): 'DO' expected but identifier 'BaseReport' found
  [Error] UCadCliente.pas(245): Undeclared identifier: 'Gotoxy'
  [Error] UCadCliente.pas(245): Undeclared identifier: 'Lin'
  [Error] UCadCliente.pas(246): Undeclared identifier: 'Print'
  [Error] UCadCliente.pas(247): Undeclared identifier: 'Bold'
  [Error] UCadCliente.pas(249): Undeclared identifier: 'Macro'
  [Error] UCadCliente.pas(260): Undeclared identifier: 'MoveTo'
  [Error] UCadCliente.pas(261): Incompatible types: 'HDC' and 'Extended'
  [Error] UCadCliente.pas(271): Incompatible types: 'HDC' and 'Extended'
  [Fatal Error] Sistema.dpr(19): Could not compile used unit 'UCadCliente.pas'

hehehe sao muitos né;P 
eu tenho um presentimento q é algo que eu nao declarei na Uses la.... porem tem um detalhe minimo...;P eu nao sei op que declarar;/;xxxxx
VLW QM TIVER PACIENCIA PRA LE;XXXXX e me ajudar! 
[Edit1]Marquei os erros pra ajudar;D
[Edit2]Agora marquei certo;x

unit UCadCliente;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, UCadPadrao, ADODB, ActnList, ImgList, ComCtrls, ExtCtrls,
  DBCtrls, Grids, DBGrids, StdCtrls, Buttons, Mask, RpRave, RpBase,
  RpSystem, RpDefine, RpCon, RpConDS;

type
  TFrmCadCliente = class(TFrmCadPadrao)
	Conexao: TADOConnection;
	Label2: TLabel;
	DBEdit1: TDBEdit;
	Label3: TLabel;
	DBEdit2: TDBEdit;
	Label4: TLabel;
	DBEdit3: TDBEdit;
	Label6: TLabel;
	DBEdit5: TDBEdit;
	Label8: TLabel;
	DBEdit7: TDBEdit;
	Label9: TLabel;
	DBEdit8: TDBEdit;
	Label5: TLabel;
	DBEdit4: TDBEdit;
	Label7: TLabel;
	DBEdit6: TDBEdit;
	Label10: TLabel;
	DBEdit9: TDBEdit;
	Label11: TLabel;
	DBEdit10: TDBEdit;
	Label12: TLabel;
	DBEdit11: TDBEdit;
	QueryClientes: TADOQuery;
	QueryClientesCliCodigo: TAutoIncField;
	QueryClientesCliNome: TWideStringField;
	QueryClientesCliEnd: TWideStringField;
	QueryClientesCliNum: TIntegerField;
	QueryClientesCliCep: TWideStringField;
	QueryClientesCliCid: TWideStringField;
	QueryClientesCliEst: TWideStringField;
	QueryClientesCliNumFone: TWideStringField;
	QueryClientesCliEmail: TWideStringField;
	QueryClientesCliDoc1: TWideStringField;
	QueryClientesCliDoc2: TWideStringField;
	QueryClientesCliContato: TWideStringField;
	ActFilt: TAction;
	SpeedButton4: TSpeedButton;
	RvDtCnCliente: TRvDataSetConnection;
	RvSysCliente: TRvSystem;
	RvPrjCliente: TRvProject;
	procedure Ondraw(Sender: TObject; const Rect: TRect; DataCol: Integer;
	  Column: TColumn; State: TGridDrawState);
	procedure FormClose(Sender: TObject; var Action: TCloseAction);
	procedure FormShow(Sender: TObject);
	procedure ActPesquiExecute(Sender: TObject);
	procedure SpeedButton1Click(Sender: TObject);
	procedure ActfechExecute(Sender: TObject);
	procedure ActionList1Execute(Action: TBasicAction;
	  var Handled: Boolean);
	procedure ValorCampoChange(Sender: TObject);
	procedure SpeedButton3Click(Sender: TObject);
	procedure FiltraCliente(Sender: TObject);
	procedure RvSysClienteBeforePrint(Sender: TObject);
	procedure RvSysClientePrint(Sender: TObject);
  private
	{ Private declarations }
  public
	{ Public declarations }
  end;

var
  FrmCadCliente: TFrmCadCliente;

implementation

uses UDM, Unit1, URelCliCid;

{$R *.dfm}

procedure TFrmCadCliente.Ondraw(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  inherited;
If Odd(dm.tab_Clientes.RecNo) and (dm.tab_Clientes.State <> dsInsert) then
  begin 
	  DBGrid1.Canvas.Brush.Color := clMoneyGreen;
	  DBGrid1.Canvas.FillRect(Rect);
	  DBGrid1.DefaultDrawDataCell(Rect,Column.Field,State);
  end;

end;

procedure TFrmCadCliente.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
Dm.Tab_Clientes.Close;
end;

procedure TFrmCadCliente.FormShow(Sender: TObject);
begin
  inherited;
  Dm.Tab_Clientes.Open;
end;

procedure TFrmCadCliente.ActPesquiExecute(Sender: TObject);
begin
  inherited;
If not Dm.tab_Clientes.Locate( 'CliNome',ValorCampo.Text, [loCaseInsensitive]) then 
MessageDlg('Cliente não cadastrado!', mtError, [mbOk], 0);
end;

procedure TFrmCadCliente.SpeedButton1Click(Sender: TObject);
begin
  inherited;
close;
end;

procedure TFrmCadCliente.ActfechExecute(Sender: TObject);
begin
  inherited;
close;
end;

procedure TFrmCadCliente.ActionList1Execute(Action: TBasicAction;
  var Handled: Boolean);
begin
  inherited;
FrmCadCliente:= TFrmCadCliente.Create(Self); //criação manual
 FrmCadCliente.ShowModal; //exibe a tela no modo modal
 FrmCadCliente.Release; //libera a tela da memória
 FrmCadCliente:= nil; //atribui o conteúdo nulo para a variável FrmCadCliente

end;

procedure TFrmCadCliente.ValorCampoChange(Sender: TObject);
begin
  inherited;
Dm.tab_Clientes.Locate( 'CliNome',ValorCampo.Text, [loCaseInsensitive, loPartialKey] );
end;

procedure TFrmCadCliente.SpeedButton3Click(Sender: TObject);
begin
  inherited;
FrmPesCliCid.ShowModal;
If QueryClientes.RecordCount > 0 then  // se qtde de registros = 0
begin
   With RvSysCliente do
   begin
	  SystemPrinter.Units		 := unCM; //unidades em centímetro
	  SystemPrinter.UnitsFactor   := 2.54; // Fator para conversão polegada
	  SystemPrinter.Orientation   := poPortrait; // Modo Retrato
	  SystemPreview.RulerType	 := rtBothCm; // medidas da régua em cm
	  //SystemSetups := SystemSetups - [ssAllowSetup]; remove tela de setup
	  SystemPreview.FormState  := wsMaximized; // tela relatório maximizada
	  Execute; // executa o relatório
	end;
 end
 else
	 ShowMessage ('Nenhum Registro Encontrado.');


end;

procedure TFrmCadCliente.FiltraCliente;
Var Cidade : String;
	   Ok : Boolean;
begin
   Cidade := 'ALL';
   Ok := InputQuery('Filtra Clientes por Cidade', 'Digite o nome da cidade: (ALL remove o filtro)',Cidade);
   If Ok then
	 With dm.Tab_Clientes do
	 begin
	   Filtered := false; // Desativa o filtro
	   if Cidade <>  'ALL' then
	   begin	  // A função QuotedStr coloca apóstrofos  no string.
		 Filter := 'CliCid = ' + QuotedStr(Cidade); // monta o filtro
		 Filtered := true; // Ativa o filtro
	   end;
	 end;
end;


procedure TFrmCadCliente.RvSysClienteBeforePrint(Sender: TObject);
begin
  inherited;
With RvSysCliente .BaseReport do
  begin
	FontName := 'Arial'; //define a fonte como Arial
	FontSize := 11;//define o tamanho da fonte para 11
	Bold := false; // desabilita o estilo de fonte negrito 
	SetPaperSize(DMPAPER_A4, 0, 0); //ajusta tamanho do papel
  end;

end;

procedure TFrmCadCliente.RvSysClientePrint(Sender: TObject);
begin
  inherited;
With RvSysCliente.BaseReport do
	begin
	  QueryClientes.First; // vai para o primeiro registro da query
	  While (not QueryClientes.Eof) do // enquanto não for fim de arquivo 
	  begin
	  try
				Cab_RelCadCliente; // chama a procedure cabeçalho do relatório
		While (not QueryClientes.Eof) and (Lin <= 29) do
		begin
		  Det_RelCadCliente; // chama a procedure detalhe do relatório
		  QueryClientes.Next; //vai para o próximo registro
		end;
		if not QueryClientes.Eof then
		  NewPage; //  insere uma nova página ao relatório
	  finally;
	  Lin := Lin - 0.2;
	  MoveTo(0.7,Lin); //move o cursor para a coluna e linha indicados
	  LineTo(20.5,Lin);//traça uma linha até posição coluna x linha  indicada. 
	  Lin := Lin + 0.5; 
	end;

end;

procedure TFrmCadCliente.Det_RelCadCliente; // Detalhe do relatório
begin
  with RvSysCliente .BaseReport do
  begin
	Gotoxy(0.7,Lin);//tabula coluna e linha no relatório
	Print (QueryClientesCliNome.AsString); // Imprime Nome do cliente
	Gotoxy(6.5,Lin);
	Print (QueryClientesCliNumFone.AsString);
	Gotoxy(10,Lin);
	Print(QueryClientesCliCid.AsString);
	Lin := Lin + 0.5;
  end;

end;

procedure TFrmCadCliente.Cab_RelCadCliente; // Cabeçalho
begin
  with RvSysCliente .BaseReport do
  begin
	Gotoxy(0.7,Lin); // Declarar variable Lin com o tipo Real e escopo global
	Print('Data:' + FormatDateTime('dd/mm/yyyy " - Hora:" hh:mm:ss',now));
	Bold := False;
	Gotoxy(18,Lin); // tabula coluna e linha de impressão
	Print('Pág.:'+Macro(midCurrentPage)+'/'+Macro(midTotalPages));
	Bold := True; //define estilo da fonte para negrito
	Gotoxy(08,Lin);
	Print('Empresa XYZ'); // Escreve dados no relatório 
	Lin := Lin + 0.5;
	Gotoxy(08,Lin);
	Print('Relatório de Clientes');
	Lin := Lin + 0.5;
	Gotoxy(0.7, Lin);
	Lin := Lin + 0.5;
	Gotoxy(6,Lin);
	MoveTo(0.7,Lin);
	LineTo(20.5,Lin);
	Lin := Lin + 0.5;
	Gotoxy(0.7,Lin);
	Print ('Nome');
	Gotoxy(6.5,Lin);
	Print ('Fone');
	Gotoxy(10,Lin);
	Print('Cidade');
	Lin := Lin + 0.2;
	MoveTo(0.7,Lin);
	LineTo(20.5,Lin);
	Lin := Lin + 0.5;
	Bold := False;
  end;

end;


end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá aos erros:

sobre estes:

 

[Error] UCadCliente.pas(245): Undeclared identifier: 'Gotoxy'

[Error] UCadCliente.pas(245): Undeclared identifier: 'Lin'

[Error] UCadCliente.pas(246): Undeclared identifier: 'Print'

[Error] UCadCliente.pas(247): Undeclared identifier: 'Bold'

[Error] UCadCliente.pas(249): Undeclared identifier: 'Macro'

[Error] UCadCliente.pas(260): Undeclared identifier: 'MoveTo'

 

é devido ao fato de você não ter declarado alguma biblioteca na uses da Unit (explico abaixo).

 

Agora sobre estes:

 

[Error] UCadCliente.pas(209): Undeclared identifier: 'Cab_RelCadCliente'

[Error] UCadCliente.pas(212): Undeclared identifier: 'Det_RelCadCliente'

[Error] UCadCliente.pas(228): Undeclared identifier: 'RvSysCliente' //este faz referência ao erro anterior, possivelmente terá que acerta-lo primeiro para corrigi-los.

 

pelo que pude entender são procedures e, possivelmente eles devem estar em outra estrutura, ou seja, você precisa fazer uma referência a elas de alguma forma (ALT + F11) já que, elas não estão nesta Unit.

 

Sobre este:

 

[Error] UCadCliente.pas(226): Statement expected but 'PROCEDURE' found

 

este erro é o seguinte, o Delphi está esperando você fechar a procedure (um end) porém, foi encontrado outra procedure antes mesmo de fechar a anterior.

O erro possivelmente esta aqui:

 

end;
[color="#FFFF00"]

como isto?

Imagino que o correto iria ficar assim:

 

end;
[color="#FFFF00"]
end;

Sobre este:

 

[Error] UCadCliente.pas(228): 'DO' expected but identifier 'BaseReport' found

Tradução: DO esperado mas BaseReport encontrado. Ou seja, o delphi esperava algo, mas, encontrou outro. Tem que corrigir.

 

Sobre este:

 

[Error] UCadCliente.pas(231): Missing operator or semicolon

Tradução: faltando operador ou ponto e vírgula.

Você deve ter esquecido de colocar algum end, begin ou ponto e vírgula no seu código.

 

Sobre este:

 

[Error] UCadCliente.pas(239): '.' expected but ';' found

Tradução: '.' esperado mas ';' encontrado.

Aparentemente basta retirar um END do seu código.

 

Sobre este:

 

[Error] UCadCliente.pas(261): Incompatible types: 'HDC' and 'Extended'

Tipos incompatíveis.

Por exemplo:

declaro uma variável X : inteiro;

e faço ela receber uma string.

Isso não vai ser possível, pois inteiro (número) é diferente de string (letras).

 

No básico é isto.

Espero ter ajudado.

 

Boa sorte, abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo olha só kra c me ajudo bastante muiiito obrigadoooo.... porém ainda n arrumei.... tipo o que eu tenho que declarar na clausula uses ?

[Error] UCadCliente.pas(245): Undeclared identifier: 'Gotoxy'
[Error] UCadCliente.pas(245): Undeclared identifier: 'Lin'
[Error] UCadCliente.pas(246): Undeclared identifier: 'Print'
[Error] UCadCliente.pas(247): Undeclared identifier: 'Bold'
[Error] UCadCliente.pas(249): Undeclared identifier: 'Macro'
[Error] UCadCliente.pas(260): Undeclared identifier: 'MoveTo'

é devido ao fato de você não ter declarado alguma biblioteca na uses da Unit (explico abaixo).
eu vo marca kda erro com uma cor pra você saber onde é o erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo olha só kra c me ajudo bastante muiiito obrigadoooo.... porém ainda n arrumei.... tipo o que eu tenho que declarar na clausula uses ?

[Error] UCadCliente.pas(245): Undeclared identifier: 'Gotoxy'
[Error] UCadCliente.pas(245): Undeclared identifier: 'Lin'
[Error] UCadCliente.pas(246): Undeclared identifier: 'Print'
[Error] UCadCliente.pas(247): Undeclared identifier: 'Bold'
[Error] UCadCliente.pas(249): Undeclared identifier: 'Macro'
[Error] UCadCliente.pas(260): Undeclared identifier: 'MoveTo'

é devido ao fato de você não ter declarado alguma biblioteca na uses da Unit (explico abaixo).
eu vo marca kda erro com uma cor pra você saber onde é o erro

Olá amigo.

Veja bem, para acertar estes erros você precisa disto: RvSysCliente (que aparentemente é uma procedure). Mas, observe:

estes comandos Moveto, Lineto etc se não me falhe a memória podem estar fazendo referência (neste seu aplicativo) ao componente TImage (paleta Additional, componente TImage [6º componente da esqueda para a direita {Delphi 7}]).

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estive lendo seu código e reparei que essa procedure está faltando um end;

 

//Procedure original

procedure TFrmCadCliente.RvSysClientePrint(Sender: TObject);
begin
  inherited;
With RvSysCliente.BaseReport do
	begin
	  QueryClientes.First; // vai para o primeiro registro da query
	  While (not QueryClientes.Eof) do // enquanto não for fim de arquivo
	  begin
	  try
				Cab_RelCadCliente; // chama a procedure cabeçalho do relatório
		While (not QueryClientes.Eof) and (Lin <= 29) do
		begin
		  Det_RelCadCliente; // chama a procedure detalhe do relatório
		  QueryClientes.Next; //vai para o próximo registro
		end;
		if not QueryClientes.Eof then
		  NewPage; //  insere uma nova página ao relatório
	  finally;
	  Lin := Lin - 0.2;
	  MoveTo(0.7,Lin); //move o cursor para a coluna e linha indicados
	  LineTo(20.5,Lin);//traça uma linha até posição coluna x linha  indicada.
	  Lin := Lin + 0.5;
	end;

end;

Procedure alterada.

 

procedure TFrmCadCliente.RvSysClientePrint(Sender: TObject);
begin
  inherited;
  With RvSysCliente.BaseReport do
  begin
	QueryClientes.First; // vai para o primeiro registro da query
	While (not QueryClientes.Eof) do // enquanto não for fim de arquivo
	begin
	  try
		Cab_RelCadCliente; // chama a procedure cabeçalho do relatório
		While (not QueryClientes.Eof) and (Lin <= 29) do
		begin
		  Det_RelCadCliente; // chama a procedure detalhe do relatório
		  QueryClientes.Next; //vai para o próximo registro
		end;
		if not QueryClientes.Eof then
		  NewPage; //  insere uma nova página ao relatório
	  finally;
		Lin := Lin - 0.2;
		MoveTo(0.7,Lin); //move o cursor para a coluna e linha indicados
		LineTo(20.5,Lin);//traça uma linha até posição coluna x linha  indicada.
		Lin := Lin + 0.5;
	  end;
	end; //Faltou este end aqui para fechar o primeiro while
  end; //Faltou este end para fechar o with
end;

Provavelmente o resto dos seus erros é por falta destes dois ends.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.