Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 16-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola yevabas.

No puedo reproducir tu ejemplo por no utilizar muchos de los componentes que figuran en tu código y realmente cuando leí tu mensaje, se me presentaron muchos de los interrogantes que te planteó nlsgarcia en el mensaje anterior.

Pero, a grandes rasgos creo haber entendido que deseas ejecutar el form TClock en el nuevo escritorio y el problema consiste en que luego no podes cerrar el form (Form1) que llamó a TClock.

Si es así, creo que podrías hacer:
Código Delphi [-]
...

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure Validar;
  private
    FODesk, FNDesk, FOThrd : HDESK;
  public
    //...
  end;

...

implementation

uses Unit2; // Clock

procedure TForm1.FormCreate(Sender: TObject);
begin
  // Inicializaciones, etc,
  //....

  // Obtener handles actuales
  FODesk := OpenInputDesktop(0,
                             FALSE,
                             DESKTOP_SWITCHDESKTOP);
  FOThrd := GetThreadDesktop(GetCurrentThreadId());

  // Crear nuevo desktop
  FNDesk := CreateDesktop('NewDesktop',
                          nil,
                          nil,
                          0,
                          DESKTOP_CREATEWINDOW,
                          nil);
  
  if FNDesk = 0 then // ¿ Todo bién ?
    raise Exception.Create('Error creando nuevo escritorio'); // No, error

  // Cambiar a "NewDesktop"
  SwitchDesktop(FNDesk);

  // Ejecutar tu ventana (Clock) en "NewDesktop"
  Validar;

  // Cerrar "NewDesktop"
  CloseDesktop(FNDesk);

  // Restaurar
  SwitchDesktop(FODesk);
  SetThreadDesktop(FOThrd);
  
  ...
end;


procedure TForm1.Validar;
begin
  ...

  with TClock.Create(Self) do
  try
    ...
    ShowModal
  finally
    Free;
  end;
  ...
end;

...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
 



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
Aplicación se queda congelada !!!! david_uh Varios 2 20-10-2012 03:08:23
aplicacion activa armando API de Windows 2 27-12-2011 22:32:49
Aplicacion activa dao_ar OOP 4 15-08-2011 03:57:06
Convertir Aplicacion en Activa bohemioloco API de Windows 3 25-04-2007 22:25:29
Conocer el nombre de la aplicacion que se encuentra activa cso2000 Varios 4 24-10-2003 02:28:14


La franja horaria es GMT +2. Ahora son las 21:03:19.


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