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 31-01-2006
Avatar de Jesús Pena
Jesús Pena Jesús Pena is offline
Miembro
 
Registrado: nov 2005
Posts: 88
Poder: 19
Jesús Pena Va por buen camino
Question Error: Sobreescribir Formulario ?

Resulta que tengo la siguiente estructura de código creada

Código Delphi [-]
 frmClientes := nil;
frmClientes := TfrmClientes.Create(Self);
try
frmClientes.pCliente := DBECliente.EditText; //pCliente una propiedad del formulario
frmClientes.ShowModal;
finally
frmClientes.Free;
end;

dicha propiedad está definida de la siguiente forma
Código Delphi [-]
 
bCliente : String;
procedure SetCliente(const Cliente : String);
public
{ Public declarations }
property pCliente:String read bCliente write SetCliente;
.........
.........
.........
procedure TfrmClientes.SetCliente(const Cliente: String);
begin
with dmClientes.IBTClientes do
begin
Insert;
FieldByName('TELEFONO').AsString := Cliente;
Post;
Edit;
end;
end;

La intención es que cuando muestre el formulario si la propiedad tiene algún valor actue en consecuencia (es decir que inserte un registro y el formulario actue en consecuencia). Otra manera que se me ocurre es sobreescribir el métod ShowModal del tipo frmxxxxxx.Showmodal(cliente) pero no sé como hacerlo dado que como lo estoy haciendo me dá un error diciendo que no puede sobreescribir una ventana que está oculta (o algo parecido)
Responder Con Cita
  #2  
Antiguo 31-01-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
La verdad es que no me queda claro cuál es el problema. Según describes, quieres que se inserte un registro al momento de mostrar el formulario en caso de que la propiedad tenga algún valor. Entonces no es SetCliente donde debes insertar el registro ya que SetCliente se ejecutará independientemente de si muestras o no el formulario. En todo caso, que SetCliente asigne el valor a un campo privado y en el evento OnShow del formulario examinas la propiedad e insertas el registro.

Por otro lado, ni siquiera entiendo cuál es el error que se produce. Dices:

Cita:
Empezado por Jesús Pena
Otra manera que se me ocurre es sobreescribir el métod ShowModal del tipo frmxxxxxx.Showmodal(cliente) pero no sé como hacerlo dado que como lo estoy haciendo me dá un error diciendo que no puede sobreescribir una ventana que está oculta (o algo parecido)
¿O sea que el error sólo ocurre cuando intentas sobreescribir el metódo ShowModal? Y entonces, en otro caso, ¿cuál es el problema?

Y una cosa más, yo creo que si pides ayuda, lo mínimo es que te esfuerces un poco. Decir "algo parecido" para describir al error que aparece no es suficiente. Si el problema es que sale en inglés y no sabes exactamente como traducirlo pues escríbelo tal cual y ya aquí veremos qué dice.

// Saludos
Responder Con Cita
  #3  
Antiguo 31-01-2006
Avatar de Jesús Pena
Jesús Pena Jesús Pena is offline
Miembro
 
Registrado: nov 2005
Posts: 88
Poder: 19
Jesús Pena Va por buen camino
Red face Perdón por la falta de claridad en la explicación

El mensaje que aparece es
Código:
Cannot focus a disabled or invisible window
y se producia al establecer el valor de la propiedad en
Código:
frmClientes.pCliente := DBECliente.EditText;
La solución que planteas tú ya he pensado en ella y voy a probarla ahora mismo.

Si no doy con la solución seguiré planteando mis dudas en este mismo hilo.

Aprobecho para dar las gracias por vuestra atención y por el tiempo empleado en ayudarme. Pues eso GRACIAS
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
¿Como puedo hacerlo? Jesús Pena Impresión 2 22-11-2005 12:09:39
¿Cómo puedo añadir una carpeta para crear el instalador de mi palicación?? nuri Varios 1 09-08-2005 14:48:39
¿Cómo puedo conectar dos ListBox de forma que si selecciono una se selecciona la otra nuri Varios 3 01-08-2005 16:50:43
¿Cómo puedo actualizar en el DBGrid los datos que inserto en la misma sesión? nuri SQL 3 18-07-2005 18:27:19
¿Cómo puedo enviar y recibir archivos vía IRC con el componente TIdIRC? DarkByte Internet 4 26-06-2004 17:54:05


La franja horaria es GMT +2. Ahora son las 12:24:01.


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