Ver Mensaje Individual
  #3  
Antiguo 07-05-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por vrortiz
Mas sin embargo me marca errores, alguien puede ayudarme......
Pues como dice mi compañero jachguate, tienes que ser más explícito e informativo para que podamos ayudarte.

---------------
Sin embargo voy a hacerle de adivino aunque, claro está, puedo equivocarme.

Los errores que te marca son al momento de compilar y son del estilo

Cita:
Empezado por compilador de Delphi
Undeclared Identifier
Los indicios que me llevan a tal conjetura son:

1. El procedimiento casa no es método de ninguna clase (vamos, de ningún formulario) ya que no va prefijado por un identificador y un punto como en

Código Delphi [-]
procedure TForm1.casa();
begin
  ...
end;

2. Por tanto identificadores como ComboBox3 y DataModule2 tendrían que ser variables declaradas en un contexto global.

3. Aunque posible esto último es altamente improbable y en todo caso contrario a las buenas reglas de programación. Lo común es que se refieran a componentes insertadas en un formulario.

4. Por tanto el compilador no sabe a qué variables se refieren y marca el error.

La solución a esto sería prefijar los mencionados identificadores con la clase a la que pertenezcan, por ejemplo:

Código Delphi [-]
Form1.DataModule2.Table3.First;

Lo cual, no obstante, sería muy extraño y poco recomendable: que un procedimiento global haga referencia a un formulario en particular.

En otras palabras, supongo que estás tratando de manipular un formulario desde un procedimiento global y veo dos opciones:

a. Implementas el procedimiento como método del formulario:

Código Delphi [-]
type
  TForm1 = class
  public
    procedure casa();
  end;

...

procedure TForm1.casa();
begin
  ...
end;

b. o pasas el formulario como parámetro al procedimiento:

Código Delphi [-]
procedure casa(Form: TForm);
begin
  Form.ComboBox3.Items.Clear;
  Form.ComboBox4.Items.Clear;

  etcétera
end;

Aunque la opción b sólo sería indicada para un procedimiento de caracter muy general que pueda aplicarse a varios formularios (lo cual no creo que sea el caso).

Bueno, si mis adivinanzas no tienen nada que ver con la realidad no será culpa mía.



// Saludos
Responder Con Cita