![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
.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. |
|
#2
|
||||
|
||||
|
Sólo aportar un detalle que me parece importante:
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. |
|
#3
|
|||
|
|||
|
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 |
|
#4
|
||||
|
||||
|
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. |
|
#5
|
|||
|
|||
|
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.
|
|
#6
|
||||
|
||||
|
sólo te falta un begin... end porque dicho if tiene más de una instrucción dentro:
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. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|