Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Llamada a Form de Consulta y retorno de informacion (https://www.clubdelphi.com/foros/showthread.php?t=2084)

cervexa 08-07-2003 11:17:52

Llamada a Form de Consulta y retorno de informacion
 
Si hago:
Consulta:=TConsulta.Create(Self);
Consulta.Show;
Como recupero el codigo que he seleccionado en el form de consulta para el form principal?

cervexa 08-07-2003 11:21:11

He probado a poner en el form principal:
codigo:=Consulta.QueryCon.fieldbyName('CODIGO').asinteger;
Pero no parece funcionar...

__cadetill 08-07-2003 12:32:25

si tienes que hacerlo con un Show (en lugar de ShowModal que te facilitaria en trabajo :p) lo unico que tienes que hacer el crearte una variable publica en el form llamador y, en el OnClose del form llamado actualizar dicha variable

Otra solucion es crearte un objeto que contenga dicha variable en el form llamador y pasarle como parametro este objeto al form llamado

guillotmarc 08-07-2003 12:52:28

Hola.

No puedes declarar un constructor, que devuelva valores. Para solventarlo yo suelo declarar funciones de clase.

Código:

class function Seleccionar: Integer;

...

implementation

class function TConsulta.Seleccionar: integer;
begin
  with TConsulta.Create(Application) do begin
    // Abrir DataSets, inicializar controles, ...
    ShowModal;
    if ModalResult = mrOk then begin
      Result := DataSet.FieldByName('Codigo').AsInteger;
    end
    else begin
      Result := -1;
    end;
    Release;
  end;
end;

Para usarlo solo debes añadir el formulario en el Uses del nuevo formulario y acceder mediante algo como :

Código:

  Codigo := TConsulta.Seleccionar;
  if Codigo <> -1 then begin
    ...
  end;


Contreras 08-07-2003 14:42:41

Soy estudiante de Informatica, y necesito aprender a programar en delphi.

Puede uno de ustedes enviarme un manual, en el cual yo pueda aprender. Tengo una ventaja y es que se programar en pascal. la cual es la plataforma de delphi.

Espero que me ayuden!!!

[email protected]

cervexa 08-07-2003 14:58:06

Cita:

class function Seleccionar: Integer;
...
implementation
class function TConsulta.Seleccionar: integer;
begin
with TConsulta.Create(Application) do begin
// Abrir DataSets, inicializar controles, ...
ShowModal;
if ModalResult = mrOk then begin
Result := DataSet.FieldByName('Codigo').AsInteger;
end
else begin
Result := -1;
end;
Release;
end;
end;

Codigo := TConsulta.Seleccionar;
if Codigo <> -1 then begin
...
end;
No entiendo como la funcion, que es donde se crea el formulario de consulta, la pones en el mismo formulario de consulta. ¿No debería ir en el formulario que hace la llamada a la consulta?
Otra cosa, al cambiar el formulario de MDIChild a FsNormal me da error al hacerle el showModal me da el siguiente erro:
cannot make a visible window modal
Un Saludo.

Para Contreras: Yo tambien estoy empezando y si miras en las secciones de ejemplos y manuales de este foro vas a encontrar todo lo que necesitas.
Gracias de antemano.

guillotmarc 08-07-2003 15:11:19

Hola

En efecto, la pones en el mismo formulario de consulta. De esta forma te sirve para cualquier formulario que quiera realizar consultas.

Lo único que va en el formulario que hace la llamada a la consulta, es la referencia en el Uses, y el código de llamada (se trata de encapsular el código, cuanto más sencilla se la utilización del modulo desde uno externo, mejor) :

Código:

Codigo := TConsulta.Seleccionar;
if Codigo <> -1 then begin
...
end;

Cuando pasas de fsMdiChil a sNormal, pón la propiedad Visible del Formulario a False. De esta forma no te saltará ese error.


La franja horaria es GMT +2. Ahora son las 05:04:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi