Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-12-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 25
Caro Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Ya decia yo, Caro va a llegar con uno de esos codigos que me estropean el negocio, asi no voy a conseguir clientes amiguita......
Lo siento amiguito .

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
  #2  
Antiguo 19-12-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Sólo aportar un detalle que me parece importante:
Código Delphi [-]
procedure TForm1.button1click(Sender:TObject);
begin
  Form2 := TForm2.Create(Self),
  Form2.Show;
end;

1 - Si cierras el Form1, se cierra automáticamente el Form2.
2 - Si Form2 ya estaba creado previamente, estás teniendo fugas de memoria, (lo que llamamos memory leak) ya que estás creando un TForm2 nuevo, pero asignándolo a la variable global "Form2"

Al ser ventanas MDICHILD se complica aún más porque, como dices, puede crearse la ventana Form2 desde varios sitios.

Hay soluciones elegantes y otras no tanto, no sé cual quieres utilizar:
- la "elegante": usar herencia visual creando una ventana base y métodos genéricos que pueden llamarse desde cualquier ventana del mismo tipo.
- La simple: comprobar que "Form2 = nil" antes de crear la ventana y al tiempo de cerrarla, poner esa variable a nil (en el Form2.Close).

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 20-12-2008
cybergerman cybergerman is offline
Miembro
 
Registrado: ago 2004
Posts: 36
Poder: 0
cybergerman Va por buen camino
Thumbs up Muchas Gracias

Les agradezco,
solución ganadora, la propuesta por Caro.

Yo realizaba la llamada a mi otro form de esta forma:

procedure TForm1.Button1Click(Sender:TObject);
begin
if not Assigned (Form2) then
Application.CreateForm (TForm2,Form2)
else
Form2.Show;
end;

la form2 es una unit que yo ya la había agregado a la unit form1.
Pero en el form2 no tenía forma de saber que form lo había llamado a no ser que definiera una variable global en el form2.

Así que reemplazé el código por la de Caro y ya funciona.

Gracias
Responder Con Cita
  #4  
Antiguo 26-12-2008
Avatar de JoseAntonio
JoseAntonio JoseAntonio is offline
Miembro
 
Registrado: abr 2006
Ubicación: Lima - Ciudad de los Reyes.
Posts: 87
Poder: 21
JoseAntonio Va por buen camino
Lightbulb

Yo lo que haria es crear el formulario, mostrarlo y a la hora de cerrarlo liberarlo (Action = Cafreee en caso de MDI), si quiero cargar el formulario nuevamente pues lo creo de nuevo. Aunque no lo creas, de esta manera optimizaras el uso de la memoria y ademas, evitaras estar pensando si tu variable Form2 esta instanciada o no.
__________________
nuestro carácter está reflejado en cada línea de código que escribimos.

Última edición por JoseAntonio fecha: 01-01-2009 a las 16:30:06.
Responder Con Cita
  #5  
Antiguo 31-12-2008
*Ghost* *Ghost* is offline
Registrado
 
Registrado: dic 2009
Posts: 1
Poder: 0
*Ghost* Va por buen camino
Hola, bueno soy nuevo en delphi y me ha gustado esta web, tenia una duda aver si me ayudan que no he entendido muy bien:

Código:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    SpeedButton1: TSpeedButton;
       procedure SpeedButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  nombre: Integer;

implementation

uses Unit2;

{$R *.dfm}



procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
nombre:= 123456;
if edit1.Text = inttostr(nombre) then
Label1.Caption:= 'Contraseña correcta'
Application.CreateForm(TForm2,Form2)
Form2.Show
else
Label1.Caption:='contraseña incorrecta';
end;

end.
COmo hago para llamar un segundo formulario desde el formulario principal?
Responder Con Cita
  #6  
Antiguo 01-01-2009
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
sólo te falta un begin... end porque dicho if tiene más de una instrucción dentro:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    SpeedButton1: TSpeedButton;
       procedure SpeedButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  nombre: Integer;

implementation

uses Unit2;

{$R *.dfm}



procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
nombre:= 123456;
if edit1.Text = inttostr(nombre) then
begin
  Label1.Caption:= 'Contraseña correcta'
  Application.CreateForm(TForm2,Form2)
  Form2.Show
end
else
 Label1.Caption:='contraseña incorrecta';

end;

end.

COmo hago para llamar un segundo formulario desde el formulario principal?[/quote]
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
llamar al evento click de un boton q se encuentra en un form desde otro form TURBOIGOR OOP 6 02-12-2008 14:50:16
como puedo asociar un form a otro form? jasz OOP 1 28-11-2007 00:12:09
pasar datos de un form a otro form vroa74 API de Windows 15 12-10-2007 19:11:52
Imposible hacer visible un form desde otro form SMTZ .NET 13 16-01-2006 21:41:08
obtener valor de otro form maruenda Varios 10 02-12-2004 21:06:01


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


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
Copyright 1996-2007 Club Delphi