Announcement

Collapse
No announcement yet.

Blick Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Blick Problem

    Hallo <br>
    Wie kann ich in einer TMemo-Komponente den <u>Cursor</u>
    ausschalten<br>
    Gruß <b>Michael</b>

  • #2
    welchen Cursor, den Mousecursor oder das Caret ?

    HideCaret(), HideCursor()

    Comment


    • #3
      dank

      Comment


      • #4
        Hallo,<br>wenn HideCaret(Memo1.Handle); aufrufe erhalte ich die Fehlermeldung "Zugriff verweigert".<br>Jens Schuman

        Comment


        • #5
          Hidecaret() darf nur für das fokusierte Control aufgerufen werden und auch nur im Thread dieses Control.

          Gruß Hage

          Comment


          • #6
            Hallo Hagen,<br>ich habe festgestellt, dass das Memo bei fast jeder Gelegenheit das Caret wieder herstellt. Z.B. wenn die Anwendung minimiert wird. Damit es tatsächlich verschwunden bleibt habe ich dem Memo eine eigene TWndMethod untergeschoben.<br>
            <pre><font size="1" face="Verdana">
            unit Unit1;

            interface

            uses
            Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
            StdCtrls;

            type
            TForm1 = class(TForm)
            Memo1: TMemo;
            procedure FormCreate(Sender: TObject);
            private
            { Private-Deklarationen }
            FWndProc : TWndMethod;
            procedure MemoWndProc(var Msg: TMessage);
            public
            { Public-Deklarationen }
            end;

            var
            Form1: TForm1;

            implementation

            {$R *.DFM}

            procedure TForm1.MemoWndProc(var Msg: TMessage);
            begin
            if Msg.Msg = WM_SETFOCUS then
            begin
            HideCaret(Memo1.Handle);
            Msg.Result := 0
            end
            else FWndProc(Msg);
            end;

            procedure TForm1.FormCreate(Sender: TObject);
            begin
            FWndProc := Memo1.WindowProc;
            Memo1.WindowProc := MemoWndProc;
            end;

            end.
            </font></pre>
            <br>Jens Schuman

            Comment


            • #7
              Jo, das ist genau der richtige Ansatz, immer wm_SetFocus. Versuch das mal mit einem verfuckten TRichEdit !

              Gruß Hage

              Comment


              • #8
                Moin Hagen,<br>habe ich versucht und keinerlei Probleme (unter Win2k)festgestellt.<br>Jens Schuman

                Comment

                Working...
                X