Ver Mensaje Individual
  #2  
Antiguo 14-09-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
Vamos por partes:

En vez de utilizar GetTextBuf podrias usar la propiedad asText del Clipboard que te devuelve el contenido del portapapeles como un string.

Pero vamos con lo que preguntas. El problema es que tu le pasa un puntero, pero ese debe de apuntar a donde se almacenara el texto y no a un texto en concreto. Esto lo podemos solucionar de varias maneras.

Podemos hacer que apunte a un array de caracteres que usaremos como buffer.
Código Delphi [-]
var
  P: PChar;
  Buffer: array[0..1024] of Char;
begin
  P:= @Buffer;
  if Clipboard.HasFormat(CF_TEXT) then
    Clipboard.GetTextBuf(P,Sizeof(Buffer)-1);
  Memo1.Text:=P;
end;

O tambien asi, reservando un pedazo de memoria.
Código Delphi [-]
var
  P: PChar;
begin
  GetMem(P,1025);
  try
    if Clipboard.HasFormat(CF_TEXT) then
      Clipboard.GetTextBuf(P,1024);
    Memo1.Text:= P;
  finally
    FreeMem(P);
  end;
end;

Última edición por seoane fecha: 14-09-2006 a las 13:58:50.
Responder Con Cita