Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problemas con Create(Self) (https://www.clubdelphi.com/foros/showthread.php?t=85221)

camiz 17-02-2014 05:56:44

Problemas con Create(Self)
 
nuevamente por aqui quisiera que me ayudaran con este codigo

Código Delphi [-]
  with TfrmCrearClave.Create(Self) do
    try
      if ShowModal = mrCancel Then
        Self.Close;
    finally
      Free;
    end;

cuando llamo este formulario hay restricciones como : el caption del form no se puede borrar o cambiar no puedo guardar datos de los edit a la base de datos

Código Delphi [-]
frmCrearClave.Caption := '';

pero cuando cambio a

Código Delphi [-]
frmCrearClave.ShowModal;
si funciona perfecto. pero esta no es la manera que necesito. algun aporte .

ElKurgan 17-02-2014 07:21:39

Todo depende de el sitio donde intentas inicializar la variable caption. Además, si estás utilizando la variable frmCrearClave, ¿para que estás creando el formulario al vuelo?

Yo haría lo siguiente:

Código Delphi [-]
with TfrmCrearClave.Create(nil) do
try 
  Caption := '';  
  if ShowModal = mrCancel Then
    Close;
  finally
    Free;

 end;end;


Saludos

camiz 17-02-2014 16:39:58

ElKurgan gracias por contestar
lode el caption del formulario era solo un ejemplo de lo que no se puede hacer al crear el formulario, lo que pasa es que mi aplicacion se inicia y compueba si existen registros en una tabla de mi base de datos y si no hay me crear este formulario para crear un registro en este caso un usuario de acceso a la aplicacion lo que pasa es para guardar los datos ingresados en los edit los guarda en blanco mas claro no toma el texto del edit para guardar a la bd.

pero si a este formulario lo llamo de esta manera
Código Delphi [-]
frmCrearClave.ShowModal;
guarda perfecto la informacion de los edit en la base de datos. espero encontrar el problema

ElKurgan 18-02-2014 12:55:51

Yo lo decía por que hay un tema claro: Si el objeto (el formulario) no está creado no se puede acceder a sus propiedades.
Cuando creas el form con la instrucción

Código Delphi [-]
 
with TfrmCrearClave.Create(nil) do

Estás creando un nuevo formulario, y hasta que no termine de crearse no se puede acceder a sus propiedades.
No es el caso de la línea

Código Delphi [-]
 
frmCrearClave.ShowModal;

En este caso, la variable está apuntando a un objeto QUE YA HA SIDO CREADO, seguramente en el código del proyecto (archivo DPR), donde tendrás una línea más o menos como esta antes de llamar al método "Run":

Código Delphi [-]
 
Application.CreateForm(TfrmCrearClave, frmCrearClave);

En este caso, el objeto ya existe y se puede acceder a todos sus métodos normalmente. Espero haberte aclarado este punto

Saludos

camiz 18-02-2014 18:30:19

ElKurgan, Gracias por tu aporte ahora si ya entendi porque el problema ahora si puedo buscarle una solucion.^\||/


La franja horaria es GMT +2. Ahora son las 00:03:44.

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