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 23-04-2012
escorpionrojo43 escorpionrojo43 is offline
Miembro
 
Registrado: abr 2010
Posts: 89
Poder: 15
escorpionrojo43 Va por buen camino
Ventana de Busqueda

Hola Companeros
tengo el siguiente problema.

En mi aplicacion he puesto una opcion de busqueda de clientes, la opcion de busqueda funciona bien el problema es que me da error al pasa los datos a la ventana que lo llama.

Código Delphi [-]
procedure TFFactura.btnDatosClienteClick(Sender: TObject);
begin
    Application.CreateForm(TFBuscaPaciente, FBuscaPaciente);
      if FBuscaPaciente.ShowModal = mrOk then
      begin
        editclt_codigo.Text := FBuscaPaciente.uniquery1.FieldByName('IDPACIENTE').asString;
      end;
    FBuscaPaciente.Destroy
end;

al ejecutar esta parte del codigo me da un error
access violation at address 00525133

la ventana de busqueda la tengo con la propiedad visible false y el formstyle es fsnormal.
alguien me puede ayudar con esto?
Responder Con Cita
  #2  
Antiguo 23-04-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Hola: Podrias poner el codigo que realiza la consulta?

Saludos
Responder Con Cita
  #3  
Antiguo 23-04-2012
escorpionrojo43 escorpionrojo43 is offline
Miembro
 
Registrado: abr 2010
Posts: 89
Poder: 15
escorpionrojo43 Va por buen camino
Cita:
Empezado por MartinS Ver Mensaje
Hola: Podrias poner el codigo que realiza la consulta?

Saludos
Este es el codigo del formulario buscador completo
Código Delphi [-]
unit UbuscaPaciente;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, StdCtrls, ExtCtrls, Grids, DBGrids, MemDS, DBAccess, Uni, Buttons;

type
  TFBuscaPaciente = class(TForm)
    UniQuery1: TUniQuery;
    DBGrid1: TDBGrid;
    Panel1: TPanel;
    Panel2: TPanel;
    Label18: TLabel;
    Edit1: TEdit;
    RadioGroup2: TRadioGroup;
    DataSource1: TDataSource;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    procedure query();
    procedure RadioGroup2Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FBuscaPaciente: TFBuscaPaciente;

implementation

uses Udatamodulo;

{$R *.dfm}

procedure TFBuscaPaciente.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = vk_return then
    bitbtn2.SetFocus;
end;

procedure TFBuscaPaciente.Edit1Change(Sender: TObject);
begin
query
end;

procedure TFBuscaPaciente.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  freeandnil(FBuscaPaciente);
end;

procedure TFBuscaPaciente.query();
begin
  with UniQuery1, sql do
  begin
    close;
    clear;
    begin
      if RadioGroup2.ItemIndex = 0 then
        Add(' SELECT * FROM paciente where upper(nombre) like upper('+#39+'%'+edit1.text+'%'+#39+')')
      else
        Add(' SELECT * FROM paciente where upper(telefono) like upper('+#39+'%'+edit1.text+'%'+#39+')');
    end;
    open;
  end;
end;

procedure TFBuscaPaciente.RadioGroup2Click(Sender: TObject);
begin
query
end;

end.
Responder Con Cita
  #4  
Antiguo 23-04-2012
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Hola,

parece que cuando quieres rescatar el dato estás accediendo a algo que ya no existe, ¿porqué no pruebas a enviar el dato desde el mismo formulario de busqueda en lugar de rescatarlo desde el principal?

Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #5  
Antiguo 23-04-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.106
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Este código es más peligroso que una caja de bombas

Código Delphi [-]
procedure TFBuscaPaciente.query(); 
begin   
  with UniQuery1, sql do   
  begin     
    close;     
    clear;    
    begin       
      if RadioGroup2.ItemIndex = 0 then         
        Add(' SELECT * FROM paciente where upper(nombre) like upper('+#39+'%'+edit1.text+'%'+#39+')')       
      else         
        Add(' SELECT * FROM paciente where upper(telefono) like upper('+#39+'%'+edit1.text+'%'+#39+')');     
    end;     
    open;   
  end; 
end;
Responder Con Cita
  #6  
Antiguo 23-04-2012
escorpionrojo43 escorpionrojo43 is offline
Miembro
 
Registrado: abr 2010
Posts: 89
Poder: 15
escorpionrojo43 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Este código es más peligroso que una caja de bombas

Código Delphi [-]
procedure TFBuscaPaciente.query(); 
begin   
  with UniQuery1, sql do   
  begin     
    close;     
    clear;    
    begin       
      if RadioGroup2.ItemIndex = 0 then         
        Add(' SELECT * FROM paciente where upper(nombre) like upper('+#39+'%'+edit1.text+'%'+#39+')')       
      else         
        Add(' SELECT * FROM paciente where upper(telefono) like upper('+#39+'%'+edit1.text+'%'+#39+')');     
    end;     
    open;   
  end; 
end;
Por que lo dices Casimiro?
Responder Con Cita
  #7  
Antiguo 23-04-2012
escorpionrojo43 escorpionrojo43 is offline
Miembro
 
Registrado: abr 2010
Posts: 89
Poder: 15
escorpionrojo43 Va por buen camino
Cita:
Empezado por ElDioni Ver Mensaje
Hola,

parece que cuando quieres rescatar el dato estás accediendo a algo que ya no existe, ¿porqué no pruebas a enviar el dato desde el mismo formulario de busqueda en lugar de rescatarlo desde el principal?

Saludos.
seria una buena solucion si solo ese formulario llamara la informacion pero quiero que otros formularios puedan hacer uso de la busqueda.
que crees que podria hacer en ese caso eldioni?
Responder Con Cita
  #8  
Antiguo 23-04-2012
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola, el error yo creo que te da por el OnClose de tu formulario de busqueda:

Código Delphi [-]
 //liberas tu formulario antes de tiempo
 //comenta esta linea y prueba
 freeandnil(FBuscaPaciente);

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #9  
Antiguo 23-04-2012
escorpionrojo43 escorpionrojo43 is offline
Miembro
 
Registrado: abr 2010
Posts: 89
Poder: 15
escorpionrojo43 Va por buen camino
Cita:
Empezado por Caro Ver Mensaje
Hola, el error yo creo que te da por el OnClose de tu formulario de busqueda:

Código Delphi [-]
 //liberas tu formulario antes de tiempo
 //comenta esta linea y prueba
 freeandnil(FBuscaPaciente);

Saluditos
efectivamente ese era el problema
Gracias caro.
Responder Con Cita
  #10  
Antiguo 23-04-2012
escorpionrojo43 escorpionrojo43 is offline
Miembro
 
Registrado: abr 2010
Posts: 89
Poder: 15
escorpionrojo43 Va por buen camino
Casimiro
me ha causado una gran inquietud lo que dijiste podrias decirme lo peligroso del codigo por favor?
Responder Con Cita
  #11  
Antiguo 23-04-2012
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola, ademas de lo que he comentado antes, despues haces un Destroy de tu formulario de busqueda que ya ha sido liberado.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #12  
Antiguo 23-04-2012
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Este código es más peligroso que una caja de bombas
Más peligroso que un mono con una ametralladora... una AK-47 para ser exacto

__________________
Delphius
[Guia de estilo][Buscar]
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ventana modal que muestra un diálogo al abrirse (no se ve la ventana) Lord Delfos Varios 2 12-02-2010 04:50:30
Como evitar que se abra la ventana de busqueda, al hacer doble clic sobre un acceso d QuarkBcn Windows 0 24-10-2007 11:28:00
Ventana hija en un marco (Frame o Panel) de la ventana padre birmain Varios 2 14-10-2007 09:27:56
Duda Puntual: Ventana de Busqueda Catálogos Grandes. Paoti OOP 2 20-06-2007 23:32:44
como mostrar una ventana con base al resultado de una busqueda Nelly Varios 3 02-02-2006 18:16:20


La franja horaria es GMT +2. Ahora son las 22:50:38.


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