Muchas gracias Roman!!
No me queda duda de que asi debe funcionar como deseo, pero tengo un problemita y de antemano pido disculpas si los llego a desesperar pero os repito que soy nuevo en este lenguaje, y me ha marcado un error en esta parte delcodigo que pongo en rojo, serias tan amable de indicarme donde estoy cometiendo el error o tal vez me falto declarar algo.
Gracias nuevamente.
Código Delphi
[-]
unit memoxx;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure Memo1Exit(Sender: TObject);
private
OldMemoWndProc: TWndProc;
procedure MemoWndProc(var Msg: TMessage);
end;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
OldMemoWndProc := Memo1.WindowProc;
Memo1.WindowProc := MemoWndProc;
end;
procedure TForm1.Memo1Exit(Sender: TObject);
begin
DestroyCaret();
end;
procedure TForm1.MemoWndProc(var Msg: TMessage);
var
DC: HDC;
TM: TextMetric;
begin
OldMemoWndProc(Msg);
if Msg.Msg = WM_SETFOCUS then
begin
DC := GetDC(Handle);
GetTextMetrics(DC, TM);
ReleaseDC(Handle, DC);
CreateCaret(Memo1.Handle, 0, TM.tmAveCharWidth, TM.tmHeight);
ShowCaret(Memo1.Handle);
end;
end;
end.