Ver Mensaje Individual
  #4  
Antiguo 06-09-2007
Avatar de paldave
paldave paldave is offline
Miembro
 
Registrado: ago 2007
Ubicación: Uruguay
Posts: 148
Reputación: 17
paldave Va por buen camino
Me retracto: Si es posible cambiar el caret.
Después de algún tiempo de investigación y prueba (2 semanas, nada menos), logré lo que preguntabas, he aquí el código (es para un TMemo pero vale también para un TRichEdit:
Código Delphi [-]
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
const
    WM_MYMEMO_ENTER = WM_USER + 500;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    procedure Memo1Enter(Sender: TObject) ;
    procedure Memo1Exit(Sender: TObject) ;
    procedure Memo1Change(Sender: TObject) ;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    b:TBitmap;
    procedure WMMYMEMOENTER(var Message: TMessage); message WM_MYMEMO_ENTER;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMMYMEMOENTER(var Message: TMessage) ;
begin
   CreateCaret(Memo1.Handle,b.Handle,20,20) ;
   ShowCaret(Memo1.Handle);
end;

procedure TForm1.Memo1Enter(Sender: TObject) ;
begin
   PostMessage(Handle, WM_MYMEMO_ENTER, 0, 0);
end;

procedure TForm1.Memo1Exit(Sender: TObject) ;
begin
   CreateCaret(Memo1.handle,b.Handle,20,20) ;
   ShowCaret(Memo1.Handle);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  b:=TBitmap.Create;
  b.LoadFromFile('D:\Seguridad\Imágenes\Glyphs\new.bmp');
end;

procedure TForm1.Memo1Change(Sender: TObject) ;
begin
   CreateCaret(Memo1.handle,b.Handle,20,20);
   ShowCaret(Memo1.Handle);
end;
Responder Con Cita