Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-02-2020
YosvanyRL YosvanyRL is offline
Miembro
 
Registrado: may 2012
Posts: 60
Poder: 12
YosvanyRL Va por buen camino
Cojer el foco de la form

Hola a todos y que tengan buen dia.
Quisiera saber si el software que estoy usando de delphi al cerrar por ejemplo el explorer y cuando retorno a el nuevamente el podria generar un codigo automaticamente al ponerse en primer plano.
Eso puede ser posible?
Responder Con Cita
  #2  
Antiguo 27-02-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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.

Realmente no visualizo el problema, por que si llamas al explorer desde tu programa ese sería el comportamiento por defecto, por ejemplo:
Código Delphi [-]
...
begin
  ShellExecute(Handle, 'open', 'c:\windows\explorer.exe','', '', SW_SHOWNORMAL);
al cerrar el explorador de windows el formulario desde donde ejecutaste la línea tomará el foco.


Si el caso fuera otro por favor describe la situación con mas detalle.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 27-02-2020
YosvanyRL YosvanyRL is offline
Miembro
 
Registrado: may 2012
Posts: 60
Poder: 12
YosvanyRL Va por buen camino
Ok voy a explicar con mas detalles.
Lo que estoy haciendo es lo siguiente:
Yo tengo mi programa abierto, voy a una web especifica donde hago un copy del texto de esa web y despues habro mi programa y doy ctrl V para pegar el texto y el software entonces busca lo que nesesito en el texto.
Y lo que quiero es que cuando mi programa yo lo vuelva a poner en primer plano para trabajar con no tener que hacer Crtl v sino que el texto vaya directamente al memo sin yo tener que pegarlo.
esa es la idea.
Responder Con Cita
  #4  
Antiguo 27-02-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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.

No me parece buena idea... pero un modo de forzar lo que deseas es:
Código Delphi [-]
...
uses Clipbrd;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Clipboard.Clear;
end;

procedure TForm1.FormDeactivate(Sender: TObject);
begin
   Clipboard.Clear;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
   Memo1.Clear;
   Memo1.Text := Clipboard.AsText;
end;
Sin embargo no creo que alterar el comportamiento natural de copiar-pegar sea adecuado.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 28-02-2020
YosvanyRL YosvanyRL is offline
Miembro
 
Registrado: may 2012
Posts: 60
Poder: 12
YosvanyRL Va por buen camino
Gracias por todo. Voy a probarlo a ver si me funciona como lo necesito.
una vez mas gracias
Responder Con Cita
  #6  
Antiguo 28-02-2020
YosvanyRL YosvanyRL is offline
Miembro
 
Registrado: may 2012
Posts: 60
Poder: 12
YosvanyRL Va por buen camino
Me funciona bien pero solo cuando lo minimizo, si no lo minimizo no me funciona.
Y normalmente el siempre debe estar abierto mientras busco online y si lo minimizo pierdo mucho tiempo.
solo hago un cambio de ventanas
Responder Con Cita
  #7  
Antiguo 28-02-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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 de nuevo.

A ver de este modo entonces...
Código Delphi [-]
...
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    FChgHwnd : THandle;
    procedure WMDrawClipboard(var Msg: TMessage) ; message WM_DRAWCLIPBOARD;
    procedure WMChangeCBChain(var Msg: TMessage) ; message WM_CHANGECBCHAIN;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation {$R *.dfm}

uses  Clipbrd;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Clipboard.Clear;
  FChgHwnd := SetClipboardViewer(Handle) ;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  ChangeClipboardChain(Handle, FChgHwnd) ;
end;

//----------------------------------------------------------------------------

procedure TForm1.WMChangeCBChain(var Msg: TMessage);
begin
  if FChgHwnd = Msg.WParam then
    FChgHwnd := Msg.LParam
  else if FChgHwnd <> 0 then
    SendMessage(FChgHwnd, WM_CHANGECBCHAIN, Msg.WParam, Msg.LParam);
end;

procedure TForm1.WMDrawClipboard(var Msg: TMessage);
begin
  if Clipboard.HasFormat(CF_TEXT) then
  begin
   Memo1.Lines.Clear;
   Memo1.Text := Clipboard.AsText;
  end;
  if FChgHwnd <> 0 then
   SendMessage(FChgHwnd, WM_DRAWCLIPBOARD, 0, 0)
end;

end.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 03-03-2020
YosvanyRL YosvanyRL is offline
Miembro
 
Registrado: may 2012
Posts: 60
Poder: 12
YosvanyRL Va por buen camino
Voy a probarlo ahora. Hace rato no tenia tiempo de sentarme en la PC con el trabajo.
Lo pruebo y te digo.

muchisimas gracias y disculpa la demora
Responder Con Cita
  #9  
Antiguo 21-03-2020
YosvanyRL YosvanyRL is offline
Miembro
 
Registrado: may 2012
Posts: 60
Poder: 12
YosvanyRL Va por buen camino
Disculpa que no he respondido aun. es con el trabajo no he tenido tiempo de volverme a sentar en la computadora para probarlo. pero hoy si Dios me lo permite lo voy a hacer.
muchisimas gracias
Responder Con Cita
  #10  
Antiguo 21-03-2020
YosvanyRL YosvanyRL is offline
Miembro
 
Registrado: may 2012
Posts: 60
Poder: 12
YosvanyRL Va por buen camino
Disculpa mi ignorancia pero podrias explicarme un poquito mejor todos esos codigos y como hacerlo pues hay algunos que no se como ponerlos en mi unit.
Responder Con Cita
  #11  
Antiguo 22-03-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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.

Debes tener un TForm con un TMemo que será quién reciba el texto copiado en el portapapeles, también debes incluir la unidad Clipbrd en la parte de interface o implementation.
Las cabeceras de los métodos OnCreate y OnDestroy del formulario son generados desde el Object Inspector de forma visual por Delphi, copia el código correspondiente en cada uno.
La variable privada FChgHwnd y las definiciones de los métodos privados WMDrawClipboard y WMChangeCBChain debes copiarlos tal como estan en la parte private de tu TForm.
Estando al final del segundo método presionar la secuencia de teclas Ctrl+Shift+C para que Delphi te genere automáticamente las cabeceras por último copia el código que corresponda a cada uno de ellos.

El funcionamiento está basado en enviar y escuchar mensajes hacia y desde el portapapeles, te pongo unos enlaces a documentación:El código es muy conocido y vas a encontrar muchas variantes y explicaciones navegando.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #12  
Antiguo 22-03-2020
YosvanyRL YosvanyRL is offline
Miembro
 
Registrado: may 2012
Posts: 60
Poder: 12
YosvanyRL Va por buen camino
Muchisimas gracias por responder y ayudarme. Que Dios Bendiga tu sabiduria y en todas las areas de tu vida.
Y gracias a este club maravilloso en donde simpre hay respuesta para todo.
Que Dios los Bendiga
Responder Con Cita
Respuesta



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
Form Login no se pone en foco amadis OOP 8 08-03-2016 14:08:08
saber en que form esta el foco gulder Varios 1 02-05-2007 01:08:03
Form modal deja que el form llamante tome el foco tata Varios 6 17-05-2006 11:51:37
Form sin Foco TONIAM Varios 4 16-11-2005 22:58:54
Form sin foco AndyG OOP 2 01-09-2004 14:46:36


La franja horaria es GMT +2. Ahora son las 01:27:21.


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