Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 11-03-2009
Avatar de Black_Ocean
Black_Ocean Black_Ocean is offline
Miembro
 
Registrado: nov 2006
Posts: 128
Poder: 18
Black_Ocean Va por buen camino
Hola,

No se por que lo encuentra tan curioso aquel código, ya que lo que hace es sólo asignarle un padre a la ventana de Mi PC que está actualmente abierta mediante el handle de ella, que en este caso el padre será la ventana del formulario. Además sólo servirá para una ventana que tenga como caption "Mi PC". Si otro programa tiene el mismo texto incluirá esa ventana, por eso usted debe asignarle aparte del texto de la ventana, el nombre de la clase de la ventana, pero aún así, sólo servirá para el lenguaje en español de Windows y no para otros idiomas del SO. También, sólo funcionará para la ventana del explorador de archivos que tenga ese texto y que esté actualmente abierta. Usted si desea incluir ventanas del explorador de archivos, debería crearla mediante las APIS de Windows y nombre de la clase de estas ventanas en tiempo de ejecución.

Pero bueno... aquí le propongo el siguiente ejemplo que le he hecho a la rápida en relación a lo que está arriba en su código, puede contener errores de ejecución, ya que es sólo un ejemplo, usted optimícelo y lea más en la ayuda acerca de estas funciones:

Código Delphi [-]
var
  WHandle: THandle;
  PnlContenedor: TPanel;

procedure IncluirWndHandle;
begin
  WHandle := FindWindow('CabinetWClass', 'Mi PC');
  if WHandle <> 0 then
  begin
    PnlContenedor := TPanel.Create(Form1);
    PnlContenedor.Parent := Form1;
    PnlContenedor.Align := alClient;
    Windows.SetParent(WHandle, PnlContenedor.Handle);
  end;
end;

procedure CerrarHandleWnd;
begin
  SendMessage(WHandle, WM_DESTROY, 0, 0);
  DestroyWindow(PnlContenedor.Handle);
end;

procedure TForm1.BtnCerrarHandleWndClick(Sender: TObject);
begin
  CerrarHandleWnd;
end;

procedure TForm1.BtnIncluirHandleWndClick(Sender: TObject);
begin
  IncluirWndHandle;
  BtnCerrarHandleWnd.BringToFront;
  BtnIncluirHandleWnd.BringToFront;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  CerrarHandleWnd;
end;


Cordiales saludos y espero que el ejemplo le sea de utilidad =)

Última edición por Black_Ocean fecha: 11-03-2009 a las 02:01:57.
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
Cerrar ventana rex HTML, Javascript y otros 2 29-05-2006 12:16:42
Problemas MDI cerrar ventana rafadrover Varios 3 28-01-2006 13:30:44
Confirmación de cerrar ventana. gontxalo OOP 13 26-05-2005 10:33:34
Cerrar ventana con la tecla ESC Alexander Varios 3 19-05-2005 19:14:22
Cerrar Ventana ronson OOP 2 17-12-2004 12:38:04


La franja horaria es GMT +2. Ahora son las 00:08:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi