Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #11  
Antiguo 11-06-2015
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Si quieres crear el Panel de forma dinámica puedes hacerlo así:

Código Delphi [-]
type
  TFMPruebas = class(TForm)
...
     procedure PNLEjecutarNotepadResize(Sender: TObject);
  private
     { Private declarations }
     fNotepadHandle : HWND;
...
  public
     { Public declarations }
...
  end;

procedure TFMPruebas.BEjecutarNotepadClick(Sender: TObject);
var
  Rec: TShellExecuteInfo;
  Panel : TPanel;
const
  AVerb = 'open';
  AParams = '';
  AFileName = 'Notepad.exe';
  ADir = '';
begin
  // Crear panel en forma dinamica
  Panel := TPanel.Create(Self);
  with Panel do
  begin
     // Debe estar sobre el Tabsheet
     Parent := TabSheet1;
     // Alineado al total del espacio disponible
     Align := alClient;
     // Cuando cambie de tamaño debe ejecutar esto para ajustar el tamaño del programa ejecutado dentro
     OnResize := PNLEjecutarNotepadResize;
  end;

  FillChar(Rec, SizeOf(Rec), #0);

  Rec.cbSize       := SizeOf(Rec);
  Rec.fMask        := SEE_MASK_NOCLOSEPROCESS;
  Rec.lpVerb       := PChar( AVerb );
  Rec.lpFile       := PChar( AfileName );
  Rec.lpParameters := PChar( AParams );
  Rec.lpDirectory  := PChar( Adir );
  Rec.nShow        := SW_HIDE;

  ShellExecuteEx(@Rec);
  WaitForInputIdle(Rec.hProcess, 5000);

  fNotepadHandle := Windows.FindWindow( 'Notepad', nil );
  Windows.SetParent( fNotepadHandle, Panel.Handle );

  // Put the focus on notepad
  Windows.SetFocus( fNotepadHandle );

  Resize;
  ShowWindow(fNotepadHandle, SW_SHOW);
end;

procedure TFMPruebas.PNLEjecutarNotepadResize(Sender: TObject);
begin
  if IsWindow(fNotepadHandle) then begin
    SetWindowPos(fNotepadHandle, 0, 0, 0, TPanel(Sender).ClientWidth, TPanel(Sender).ClientHeight,
      SWP_ASYNCWINDOWPOS);
  end;
end;
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Abrir un exe externo a mi aplicacion pero con estilo fsStayOnTop rgstuamigo Varios 6 01-04-2009 21:22:02
Abrir un fichero externo jocey Varios 3 05-08-2008 22:05:53
Abrir una aplicacion extena dentro de la mia grone35 Varios 2 17-08-2006 18:02:42
programa externo hugoacosta API de Windows 2 17-04-2006 19:44:57
Ejecutar un programa externo desde un programa de Delphi Roger_Fernandez Varios 3 02-09-2004 18:05:36


La franja horaria es GMT +2. Ahora son las 05:03:33.


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