Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cambiar el cursor en un RichEdit (https://www.clubdelphi.com/foros/showthread.php?t=46619)

viveba 04-08-2007 23:40:21

Cambiar el cursor en un RichEdit
 
Hola a todos

¿cómo puedo cambiar la forma del cursor (caret) en un RichEdit?

Algo similar al comportamiento del procedimiento "CursorBig" del viejo Turbo Pascal.

Desde ya, gracias a todos

dec 05-08-2007 00:08:53

Hola,

Echa un vistazo a este Hilo a ver si te sirve de algo.

paldave 21-08-2007 17:00:46

La forma del caret viene dada por el sistema operativo, por lo tanto no es posible cambiarla desde plataformas de desarrollo :mad:

paldave 06-09-2007 03:29:21

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;

dec 06-09-2007 09:10:40

Hola,

Cita:

Después de algún tiempo de investigación y prueba (2 semanas, nada menos), logré lo que preguntabas, (...)
Joroba... haber seguido el Hilo que enlazé, que se logra también lo que pide el compañero. :)

PD. Pero bueno, tampoco está mal hacer uno las cosas por sí mismo. ;)


La franja horaria es GMT +2. Ahora son las 13:57:42.

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