Ver Mensaje Individual
  #6  
Antiguo 16-10-2003
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:
Posteado originalmente por cadetill
[...]Eso sí, el utilizar la propiedad Tag, te limita a que el valor de retorno sea un entero, por lo que si quieres devolver otro tipo de dato, no te servirá y deberás recurrir a lo de declarar la variable en la sección public.
Esto no es del todo cierto. Tag es de tipo LongInt que ocupa el mismo espacio en memoria que un puntero y con un puntero podemos devolver un sinfín de cosas.

De cualquier forma, estoy de acuerdo con andres1569 en el sentido de que es conveniente usar otros métodos para el fin del ejemplo indicado ya que Tag es una propiedad confusa y poco descriptiva. Más aún, en este caso en particular lo que yo hubiera hecho es lo que hacen todos los cuadros de diálogo: permitir que el usuario escoja un valor y devolver dicho valor en una propiedad pública. Por ejemplo, TOpenDialog permite seleccionar un archivo y éste lo devuelve en la propiedad FileName.

En este caso podría ser algo así:

Código:
type
  TForm2 = class(TForm)
  private
    FValorABuscar: Integer;
  public
    property ValorABuscar: Integer read FValorABuscar write FValorABuscar;
  end;
Cuando deseemos obtener dicho valor haríamos:

Código:
with TForm2.Create(nil) do
begin
  try
    if ShowModal = ID_OK then
      Table1.Findkey([ValorABuscar]);
  finally
    Free;
  end;
end;
Y por si les interesa, en este hilo:

http://www.clubdelphi.com/foros/show...ghlight=TField

pueden encontrar una aplicación de la propiedad Tag que me parece adecuada y, debido al "casting", el código no pierde legibilidad.

// Saludos

pd: Por cierto, ¿se han fijado que no puede busarse el término "Tag" en la ventana de búsquedas?
Responder Con Cita