![]() |
![]() |
![]() |
![]() |
![]() |
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
|
|||
|
|||
Y sin .Create no se puede?
|
#2
|
|||
|
|||
Hay otra manera pero tampoco funciona
En vez de Crete, se puede utilizar ActiveForm, pero es que no puedes forzar a que el formulario activo sea el que tu quieras, sino el que es el que ya está activo.
|
#3
|
||||
|
||||
Me imagino que en .Net debe haber un contenedor de controles a nivel de aplicacion, asi accediendo a este se podria preguntar si esta creado y asi activarlo en vez de crearlo, esto lo he hecho en aplicacion mdi, pero el contenedor lo tiene el form padre, pero en tu caso no es MDI, pero supongo que debe haber un contenedor de nivel superior es decir aplicacion, en fin buscare y si algo pos aqui te coloco el post
![]()
__________________
Optimus Prime |
#4
|
|||
|
|||
No he entendido bien tu pregunta, pero si lo que quieres es traer una ventana, ya creada, al frente es asi:
public void MakeOnTop() { Form1.TopMost = true; } esta informacion esta sacada de la msdn. http://msdn.microsoft.com/library/spa/default.asp Busca: Mantener un formulario Windows Forms en primer plano. |
#5
|
|||
|
|||
![]() No, lo que intento hacer es poner en "enable = true", por ejemplo, un form ya creado pero que no está activo desde .NET.
|
#6
|
|||
|
|||
![]() Hola, creo que en los posts anteriores no me he explicado del todo bien, por eso vuelvo a explicar el problema que tengo desde el principio. Imaginemos dos unidades. La unidad 1 contiene un formulario que quiero activar desde la unidad 2.
Código:
UNIDAD1 ======= type TWinForm = class(System.Windows.Forms.Form) {$REGION 'Designer Managed Code'} strict private Components: System.ComponentModel.Container; procedure InitializeComponent; {$ENDREGION} strict protected /// <summary> /// Clean up any resources being used. /// </summary> procedure Dispose(Disposing: Boolean); override; private { Private Declarations } public constructor Create; end; Código:
UNIDAD2 ======= ... uses unidad1; // Para que pueda llamar al TWinForm de la Unidad1. ... Begin //Imaginemos que pulso un botón y muestro la TWinForm de la unidad1 TWinForm.Create.Show; end; ... Begin //Ahora imaginemos que ya tenemos el formulario creado pero quiero poner su propiedad enable a false. TWinForm.Enable := False; // Esta línea de un error al compilar porque dice que la propiedad enable no está definida. La cosa iría como se especifica en la siguiente línea. TWinForm.Create.Enable := False; // Pero esta línea no pone el formulario ya creado en enable, ya que volvemos a llamar a create para que se cree otro formulario y no se actua sobre el que ya está creado. End; Código:
Unidad2 ====== ... Var Form1 : TWinForm; Begin Form1.Create.Show; Form1.Enable := True; // Esta vez, esta línea sí que se puede compilar y con esto quedaría el problema que planteo solucionado. End; ... Un saludo. |
#7
|
|||
|
|||
Bueno, ahora estoy trabajando con csharp... pero algo tendra en comun con delphi.net. :P
El form principal es creado con un "new", asi que no tenemos nada con que hacer referencia por separado, asi que lo defini primero como objeto: Este codigo hay que agregarlo en el main (en delphi win32 tambien existe un .pas principal con contenido equivalente. ![]() Código:
/// <summary> /// The main entry point for the application. /// </summary> static public TWelcomeForm WelcomeForm; Código:
WelcomeForm = new TWelcomeForm(); Application.Run(WelcomeForm); Por ejemplo para mostrar otra ventana y ocultar la actual: Código:
Hide(); MainProgram.MiOtroForm.Show(); Última edición por Athanatos fecha: 16-01-2006 a las 21:43:25. |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
|