Thema: Delphi Caret Problem...

Einzelnen Beitrag anzeigen

Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Caret Problem...

  Alt 14. Mai 2008, 22:06
hi,
bin gerade über den beitrag gestolpert hier mal die Lösung:

http://delphi.about.com/cs/adptips20...ltip0703_5.htm

Ich habe das für dich kurz etwas umgeschrieben, hatte das für ein SynMemo benutzt

Delphi-Quellcode:
unit uMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, SynEdit, SynMemo, SynEditHighlighter, SynHighlighterGeneral, StdCtrls,
  ComCtrls;

  const
    WM_MYMEMO_ENTER = WM_USER + 500;

type
  TForm1 = class(TForm)
    SynMemo1: TSynMemo;
    SynGeneralSyn1: TSynGeneralSyn;
    Memo1: TMemo;
    RichEdit1: TRichEdit;
    procedure SynMemo1Enter(Sender: TObject);
    procedure RichEdit1Enter(Sender: TObject);
    procedure RichEdit1Change(Sender: TObject);
    procedure RichEdit1Click(Sender: TObject);
  private
      procedure WMMYMEMOENTER(var Message: TMessage) ;
                message WM_MYMEMO_ENTER;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.RichEdit1Change(Sender: TObject);
begin
 
  CreateCaret(RichEdit1.Handle,0,5,15);
  ShowCaret(RichEdit1.Handle);
end;

procedure TForm1.RichEdit1Click(Sender: TObject);
begin
  CreateCaret(RichEdit1.Handle,0,5,15);
  ShowCaret(RichEdit1.Handle);
end;

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

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

procedure TForm1.WMMYMEMOENTER(var Message: TMessage) ;
begin
  //CreateCaret(SynMemo1.Handle,0,5,15);
  //ShowCaret(SynMemo1.Handle);


  CreateCaret(RichEdit1.Handle,0,5,15);
  ShowCaret(RichEdit1.Handle);
end;

end.
Sebastian
  Mit Zitat antworten Zitat