Ver Mensaje Individual
  #5  
Antiguo 15-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 31
Lepe Va por buen camino
Lo mejor para ello es usar propiedades:

Código Delphi [-]
// Form para ver un solo registro:

TFormConsulta = class (TForm)

private 
   FClave:integer;
   procedure SetClave(const Value:integer);

public
  property Clave:integer read FClave write SetClave;
end;

implementation

procedure TFormConsulta.SetClave(const Value:integer);
begin
  if Value <> FClave then
  begin 
     if not dataset.Active then
       dataset.Open;
     FClave := Value;
    if not dataset.Locate('NombreCampo', Value, []) then
       ShowMessage('no encuentro el registro con el valor ' + inttostr(Value))
    else
       ShowMessage('ok, estoy situado en el registro');
  end;
end;

procedure TFormConsulta.Button1Click 
// boton para realizar la búsqueda y mostrar los resultados:
begin
  With TFormBusqueda.Create(nil) do
  begin 
     if ShowModal = mrOk then
       Clave := Resultado;
     Free;
  end;
El Form de búsqueda se muestra como modal, tendrá una variable llamada Resultado de tipo integer:
Código Delphi [-]
// en el Form de búsqueda, puedes hacer algo así en el evento doble clic del grid:
 Resultado := Formbusqueda.DAtasetPrincipal.FieldByname('clave').asinteger;
 self.ModalResult := mrOk;

El funcionamiento:

En la ventana de consulta pulsas el button1, se abre la ventana de busqueda y espera a que el usuario dé doble clic sobre una fila (siempre se devuelve la clave primaria, ya que a partir de ahí podremos tomar cualquier campo de ese registro), la ventana se cierra y la ventana de consulta estará situado en ese registro.

Espero sea lo que necesites.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita