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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-04-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Creo que estamos confundiendo las cosas, cuando copiamos o pegamos, ya sea usando el menú o utilizando alguna combinación de teclas, lo que llega al edit son los mensajes WM_COPY y WM_PASTE. En ningún momento llegan al edit las pulsaciones de esas teclas porque se procesan por windows mucho antes.

Para controlar cuando, y como, se copia y se pega lo que tenemos que hacer es interceptar los mensajes WM_COPY y WM_PASTE. Se puede hacer de varias maneras, pero ahora mismo se me ocurre que lo podemos hacer sustituyendo el WndProc del edit. Algo así:
Código Delphi [-]
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    AntWindowProc: TWndMethod;
    procedure MiWindowProc(var Message: TMessage);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.MiWindowProc(var Message: TMessage);
begin
  case Message.Msg of
    WM_COPY:
      begin
         // Aqui lo que quieras
      end;
    WM_PASTE:
      begin
         // Aqui lo que quieras
      end;
    else // Si no es ninguno de los anterios llamamos al antiguo WndProc
      AntWindowProc(Message);
  end
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  AntWindowProc:= Edit1.WindowProc;
  Edit1.WindowProc:= MiWindowProc;
end;
Responder Con Cita
  #2  
Antiguo 12-04-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por seoane
Creo que estamos confundiendo las cosas, cuando copiamos o pegamos, ya sea usando el menú o utilizando alguna combinación de teclas, lo que llega al edit son los mensajes WM_COPY y WM_PASTE. En ningún momento llegan al edit las pulsaciones de esas teclas porque se procesan por windows mucho antes.
Estoy de acuerdo contigo y el método que propones es, a mi juicio, el correcto, porque ataca la raíz del problema: copiar y pegar. Pero esas pulsaciones no sólo sí llegan al control sino que sí son interceptables y anulables en los eventos OnKeyDown y/o OnKeyUp.

// Saludos
Responder Con Cita
  #3  
Antiguo 12-04-2007
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 381
Poder: 22
fidel Va por buen camino
Gracias a todos, voy a ponerme con lo que me indicais.

Un saludo.
Responder Con Cita
  #4  
Antiguo 12-04-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Cita:
Empezado por roman
Pero esas pulsaciones no sólo sí llegan al control sino que sí son interceptables y anulables en los eventos OnKeyDown y/o OnKeyUp.
Caramba, hubiera jurado que se comportaban igual que la tecla TAB. Eso me pasa por no haberlo comprobado
Responder Con Cita
  #5  
Antiguo 13-04-2007
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 381
Poder: 22
fidel Va por buen camino
Lo he solucionado a través del evento OnChange del edit. Controlo que el edit solo pueda admitir números con una coma, y el edit permite copiar y pegar.

Gracias. Un saludo.
Responder Con Cita
Respuesta


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
Historia de Ctrl+Z marcoszorrilla Noticias 0 30-09-2006 21:15:28
Ctrl + Alt + Del marcoszorrilla Noticias 6 25-07-2006 07:23:11
Desactivar Ctrl-Del IVAND Varios 1 12-01-2006 02:42:45
desactivar CTRL+ALT+SUP User_baja1 Varios 1 03-05-2005 19:26:14
Ctrl+alt+supr karocs Varios 3 28-12-2004 20:46:37


La franja horaria es GMT +2. Ahora son las 08:32:54.


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