Fórum Erro estranho no Create de uma Classe. #342297
24/05/2007
0
segue pedaços dela:
unit uAreaLoc; interface uses Classes, Windows, Messages, SysUtils, Variants, Controls, Forms;
TAreaLoc = class(TObject)
private
AreaMem: TArea;
protected
public
Area: TArea;
constructor Create;
destructor Destroy; override;
function UseArea(NumArea: integer): Boolean;
published
end;
implementation
{ TAreaLoc }
constructor TAreaLoc.Create;
begin
inherited;
AreaMem.Create;
end;
destructor TAreaLoc.Destroy;
begin
AreaMem.Free;
inherited;
end;
Pois bem, ao compilar dá o seguinte erro:
[Pascal Error] uAreaLoc.pas(61): E2003 Undeclared identifier: ´Create´
[Pascal Error] uAreaLoc.pas(61): E2003 Undeclared identifier: ´Free´
Porque está acontecendo isso?
Desde já agradeço
[]s
Titanius
Curtir tópico
+ 0Posts
24/05/2007
Massuda
Gostei + 0
24/05/2007
Titanius
constructor TAreaLoc.Create;
begin
inherited;
AreaMem.Create; <<-- Linha 61
end;
destructor TAreaLoc.Destroy; <<-- Linha 66
begin
AreaMem.Free;
inherited;
end;
Na verdade o erro é este:
[Pascal Error] uAreaLoc.pas(61): E2003 Undeclared identifier: ´Create´
[Pascal Error] uAreaLoc.pas(66): E2003 Undeclared identifier: ´Free´
Só tem isso...
Segue a classe completa:
unit uAreaLoc;
interface
uses
Classes, Windows, Messages, SysUtils, Variants, Controls, Forms;
const
(* É a constante que tem o total máximo de campos na área do localizar. *)
MaxCampo = 50;
type
TTipoDados = (tdText, tdCheckBox, tdNumeric, tdDate);
TConfCampo = record
Mascara: string[30];
CanSelect: boolean; // Se TRUE deixa localizar pelo campo
Params: TStringList;
IsFK: Boolean;
FKCampo: string[30];
end;
TCampo = record
TipoCol: TTipoDados;
Tamanho: integer;
NomeCampo: string[50];
ConfCampo: TConfCampo;
end;
TArea = record
Titulo: string;
SQL: string;
CampoIndice: string;
CampoLocalizar: string;
Tabela: string;
Campos: array[0..MaxCampo] of TCampo;
end;
TAreaLoc = class(TObject)
private
AreaMem: TArea;
protected
public
Area: TArea;
constructor Create;
destructor Destroy; override;
function UseArea(NumArea: integer): Boolean;
published
end;
implementation
{ TAreaLoc }
constructor TAreaLoc.Create;
begin
inherited;
AreaMem.Create;
end;
destructor TAreaLoc.Destroy;
begin
AreaMem.Free;
inherited;
end;
function TAreaLoc.UseArea(NumArea: integer): Boolean;
begin
case NumArea of
0:
begin
AreaMem.Titulo := ´´;
AreaMem.SQL := ´´;
AreaMem.CampoIndice := ´´;
AreaMem.CampoLocalizar := ´´;
AreaMem.Tabela := ´´;
end;
end;
Area := AreaMem;
end;
end.
Gostei + 0
24/05/2007
Massuda
Gostei + 0
24/05/2007
Titanius
[]s
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)