Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-07-2003
cervexa cervexa is offline
Miembro
 
Registrado: jul 2003
Ubicación: Galicia
Posts: 17
Poder: 0
cervexa Va por buen camino
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?
Responder Con Cita
  #2  
Antiguo 08-07-2003
cervexa cervexa is offline
Miembro
 
Registrado: jul 2003
Ubicación: Galicia
Posts: 17
Poder: 0
cervexa Va por buen camino
He probado a poner en el form principal:
codigo:=Consulta.QueryCon.fieldbyName('CODIGO').asinteger;
Pero no parece funcionar...
Responder Con Cita
  #3  
Antiguo 08-07-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
si tienes que hacerlo con un Show (en lugar de ShowModal que te facilitaria en trabajo ) 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
Responder Con Cita
  #4  
Antiguo 08-07-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
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;
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).

Última edición por guillotmarc fecha: 08-07-2003 a las 12:56:08.
Responder Con Cita
  #5  
Antiguo 08-07-2003
Contreras Contreras is offline
Registrado
 
Registrado: jul 2003
Ubicación: Aut.Duarte/ KM15, STO DGO. /REPUBLICA DOMINICANA
Posts: 1
Poder: 0
Contreras Va por buen camino
Question

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!!!

aneudicontreras@hotmail.com
Responder Con Cita
  #6  
Antiguo 08-07-2003
cervexa cervexa is offline
Miembro
 
Registrado: jul 2003
Ubicación: Galicia
Posts: 17
Poder: 0
cervexa Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 08-07-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
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.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:51:12.


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