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 02-12-2005
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 22
Héctor Randolph Va por buen camino
Hola nemesio.

Antes que nada te doy la bienvenida al club, si aún no lo has hecho te recomiendo leer la guía de estilo

Respecto a tu pregunta, te muestro un ejemplo en donde se captura el mensaje WM_PASTE de un TEdit y después se cancela.

Se crea un componente TMyEdit con esta característica, podrías crear el componente por separado y registrarlo para que aparezca en la paleta de componentes de Delphi, por ahora te dejo este código para que lo revises.

Código Delphi [-]
type

  {Nuevo edit que no admite pegado}
  TMyEdit = class(TEdit)
  private
    procedure WMPaste(var Message: TMessage); message WM_PASTE;
  end;

  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    Edit2:TMyEdit;//Instancia de TMyEdit
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit2:=TMyEdit.Create(Self);//Componente creado en tiempo de ejecución
  Edit2.Parent:=Self;
  Edit2.Left:=10;//Ubicación en el formulario
  Edit2.Top:=10;
end;

procedure TMyEdit.WMPaste(var Message: TMessage);
begin
  Exit; // Cancelar pegado
end;

Saludos.

Última edición por Héctor Randolph fecha: 02-12-2005 a las 05:50:31.
Responder Con Cita
  #2  
Antiguo 02-12-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.144
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Héctor, has hecho que escribiera esta cosa:

Código Delphi [-]
{*******************************************************}
{                                                       }
{  TEdit(Ex) - TEdit en que no puede "pegarse" texto    }
{                                                       }
{  Copyright  (c)  2005  David Esperalta Calderón       }
{                                                       }
{                                                       }
{  Uso: Sitúa esta unidad en la cláusula uses del       }
{       formulario en que hagas  uso de "TEdit's"       }
{       en los que no quieras que pueda "pegarse"       }
{       texto desde el portapapeles de Windows.         }
{                                                       }
{       Has de tener en cuenta de hacerlo antes de      }
{       la unidad "StdCtrls.pas", que  es en donde      }
{       se implementa el componente "TEdit".            }
{                                                       }
{                                                       }
{  Gracias Héctor Randolph por la idea. ;-)             }
{                                                       }
{                                                       }
{  GNU-GPL license - You can use this software under    }
{  the terms of the General Public License (gnu.org)    }
{                                                       }
{*******************************************************}

unit UEditEx;

interface

uses
  StdCtrls, Messages;

type
  TEdit = class(StdCtrls.TEdit)
  private
    procedure WMPaste(var Message: TMessage); message WM_PASTE;
    procedure WMRButtonDown(var Message: TMessage); message WM_RBUTTONDOWN;
  end;

implementation

{ TEdit(Ex) }

procedure TEdit.WMPaste(var Message: TMessage);
begin
end;

procedure TEdit.WMRButtonDown(var Message: TMessage);
begin
end;

end.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 02-12-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.144
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

O esto otro, vamos:

Código Delphi [-]
{ *********************************************************************** }
{                                                                         }
{ DecComp - Unos sencillos componentes                                    }
{                                                                         }
{ Créditos:                                                               }
{                                                                         }
{ ¡Gracias a Héctor Randolph (1) por la idea!                             }
{                                                                         }
{ (1) www.clubdelphi.com                                                  }
{                                                                         }
{ Copyright (c) 2005 dec - [email protected]                       }
{ bajo la licencia GNU GPL >> ver en "licencia.txt"                       }
{                                                                         }
{ *********************************************************************** }

unit UNoPastEdit;

interface

uses
  Classes,StdCtrls,Messages;

type
  TNoPastEdit = class(TEdit)
  private
    procedure WMPaste(var Message: TMessage); message WM_PASTE;
    procedure WMRButtonDown(var Message: TMessage); message WM_RBUTTONDOWN;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('DecComp', [TNoPastEdit]);
end;

{ TNoPastEdit }

procedure TNoPastEdit.WMPaste(var Message: TMessage);
begin
end;

procedure TNoPastEdit.WMRButtonDown(var Message: TMessage);
begin
end;

end.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 02-12-2005 a las 06:55:43. Razón: Corrección del código fuente.
Responder Con Cita
  #4  
Antiguo 02-12-2005
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 24
Delfino Va por buen camino
Si tienes la JVCL , su componente JvEdit tiene la propiedad ClipboardCommands q te permite activar o desactivar todas estas ocpiones..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #5  
Antiguo 02-12-2005
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 22
Héctor Randolph Va por buen camino
Cita:
Empezado por dec
Gracias Héctor Randolph por la idea.
Hola David

No hay nada que agradecer, tú sabes, para eso estamos aquí.


Tengo una sugerencia para tu componente, a ver que te parece.

Código Delphi [-]
type
  TPortapapeles=(cbAllowCut,cbAllowPaste,cbAllowCopy);
  TClipboardOptions=set of TPortapapeles;

  TNoPastEdit = class(TEdit)
  private
    FClipboardOptions: TClipBoardOptions;
  published
    property ClipboardOptions: TClipBoardOptions read  FClipBoardOptions
                                                 write FClipBoardOptions;
  private
    procedure WMPaste(var Message: TMessage); message WM_PASTE;
  end;

implementation

{ TNoPasteEdit }

procedure TNoPastEdit.WMPaste(var Message: TMessage);
begin
  if not (cbAllowPaste in FClipboardOptions) then Exit;
  inherited;
end;

Se puede hacer lo mismo con las opciones copiar y cortar.

Un saludo.
Responder Con Cita
  #6  
Antiguo 02-12-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.144
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Estupeno Héctor, acabo de actualizar el componente, el cual incluí en DecComp. ¡Muchas gracias!
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 02-12-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.144
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por Héctor
Se puede hacer lo mismo con las opciones copiar y cortar.
Hum... por hoy lo voy a dejar así, puesto que no he dormido, llevo unas horas liado con cierto tema para WordPress y... en fin, qué te voy a contar,... pero, ya veremos, que dijo un ciego. ¿Pero a qué te refieres, exactamente? ¿Habría que aprovechar otros mensajes o qué? Mira que estoy espesito, como suele decirse...
__________________
David Esperalta
www.decsoftutils.com
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


La franja horaria es GMT +2. Ahora son las 03:39:52.


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