Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Ventanas principal y secundaria (https://www.clubdelphi.com/foros/showthread.php?t=34583)

turminator 14-08-2006 21:16:25

Ventanas principal y secundaria
 
Hola!

Estaba mirando de profundizar en la programación con múltiples ventanas, ya que hasta ahora lo poco que hice, fue mediante Tabsheets. Estaba consultando un tutorial bastante interesante http://www.elrinconcito.com/delphi/t.../Tutorial4.zip pero resulta que algo hice mal porque empezé una aplicación nueva, añadí una nueva form, hice lo de desactivarla de su ejecucción inmediata y ahora cuando queria meter un botón que me permitiera mostrar la nueva ventana, algo me fue mal ya que no me deja compilar y me dice undeclared identifier TForm2.

El codigo que le puse fue el siguiente:

Código Delphi [-]
var
varform: TForm2;
begin
  varform:=TForm2.Create(Self);
  try
    varform.ShowModal;
  finally
varform.Free;
end;
end;

y el del proyecto entero:

Código Delphi [-]
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
varform: TForm2;
begin
  varform:=TForm2.Create(Self);
  try
    varform.ShowModal;
  finally
varform.Free;
end;
end;
end.

No sé donde puede estar el error quizás sea algo sencillo pero no lo he encontrado, agradecido de antemano!

dec 14-08-2006 21:22:14

Hola,

Parece que tienes que añadir la unidad en que se encuentre definida la clase "TForm2". No aparece en el código, pero, sí aparece una clase "TForm2", de ahí el error de que no se encuentra la definición de esa clase por ningún lado. ;)

PD. Probablemente la clase "TForm2" se encuentre en una unidad de nombre "Unit2.pas". ;)

roman 14-08-2006 21:22:54

Falta incluir Unit2 en el uses de Unit1

// Saludos

turminator 14-08-2006 23:24:31

Ok!

Muchas gracias por la aclaración científica de dec y por la práctica de roman.JeJe. Espero que en breve empieze a dominar un poco del tema.

Lo que me habia ocurrido después es que me salia un error que no me permitia seguir y me decia: "Cannot make a visible windows modal" lo solucioné modificando la opción del Form2 de visible: pasándola de True a False, pero no sé el motivo. Tambien a menudo cuando salen errores al compilar con el proyecto medio corriendo, se me queda Delphi colgado y debo cerrarlo y volver, hay alguna solución rapida, o es mejor que me asegure bien antes de compilar?

Saludos y gracias!

dec 15-08-2006 01:38:36

Hola,

Cita:

Empezado por turminator
Lo que me habia ocurrido después es que me salia un error que no me permitia seguir y me decia: "Cannot make a visible windows modal" lo solucioné modificando la opción del Form2 de visible: pasándola de True a False, pero no sé el motivo.

Se trata de que no se puede establecer como "Modal" un formulario ya visible. Al crearse el formulario, si este tiene su propiedad "Visible" en "True", al ejecutarse el método "ShowModal" aparecerá el error que comentas. Lo extraño acaso esté en que ese formulario tenga la propiedad "Visible" en "True", puesto que por defecto es "False".

Cita:

Empezado por turminator
Tambien a menudo cuando salen errores al compilar con el proyecto medio corriendo, se me queda Delphi colgado y debo cerrarlo y volver, hay alguna solución rapida, o es mejor que me asegure bien antes de compilar?

Bueno. Me parece que lo que precisas es "detener" el programa, "resetear" el proceso de "depuración" del mismo. Esto puedes hacerlo sencillamente pulsando las teclas "CTRL + F2", en el IDE de Delphi, mientras el programa está depurándose/ejecutándose. Echa un vistazo al menú "Run" de Delphi, verás que hay otros comandos interesantes además del mencionado "Reset program".

turminator 15-08-2006 19:46:57

ok!

Gracias por los conceptos, lo de la combinación control+F2, creo que me resultará muy cómoda a partir de ahora y voy a investigar el menú run en breve.

Saludos y gracias!


La franja horaria es GMT +2. Ahora son las 04:15:45.

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