Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Caret aus RichEdit entfernen, aber immernoch Markiern können (https://www.delphipraxis.net/39614-caret-aus-richedit-entfernen-aber-immernoch-markiern-koennen.html)

Pseudemys Nelsoni 5. Feb 2005 06:52


Caret aus RichEdit entfernen, aber immernoch Markiern können
 
Tag auch,

ich habe eine Komponente von TRichEdit abgeleitet und ihr folgendes hinzugefügt:

Delphi-Quellcode:
unit hi;

interface

uses
  Windows, SysUtils, Classes, Controls, StdCtrls, ComCtrls, Messages;

type
  TBox = class(TRichEdit)
  private
    procedure WMSetFocus(var Msg: TWMSetFocus); message WM_SETFOCUS;
  public
    constructor Create(AOwner: TComponent); override;
  end;

procedure Register;

implementation

constructor TBox.Create(AOwner: TComponent);
begin
  inherited;
  Cursor := crDefault;
end;

procedure TBox.WMSetFocus(var Msg: TWMSetFocus);
begin
  HideCaret(self.Handle);
  Msg.Result := 0;
end;

procedure Register;
begin
  RegisterComponents('PN', [TBox]);
end;

end.
so, wenn ich diese Komponente nun auf meiner Form platziere, das Programm starte und in das "neue" richedit klicke ist das Caret verschwunden - genau das was ich möchte....nur kann ich jetzt auch kein text mehr markieren. :) Hat jemand ne Idee was ich dagegen tun kann?

sniper_w 5. Feb 2005 10:19

Re: Caret aus RichEdit entfernen, aber immernoch Markiern kö
 
Vielleicht bei einem OnMouseDown Event ShowCaret( -- entsprechende Hadle -- ) aufrufen und wieder bie OnMouseUp HideCaret.....Es ist nur ein Vorschlag, ob das geht......keine Ahnung.

Pseudemys Nelsoni 5. Feb 2005 10:34

Re: Caret aus RichEdit entfernen, aber immernoch Markiern kö
 
hallo sniper,

ich möchte ja das das caret nie gesehen wird, auch nicht wenn die maus unten ist. :\ Aber text markieren möchte ich dennoch

toms 5. Feb 2005 10:54

Re: Caret aus RichEdit entfernen, aber immernoch Markiern kö
 
Ist das RichEdit readonly ?

Pseudemys Nelsoni 5. Feb 2005 11:04

Re: Caret aus RichEdit entfernen, aber immernoch Markiern kö
 
jo und hide selection auf false

toms 5. Feb 2005 11:06

Re: Caret aus RichEdit entfernen, aber immernoch Markiern kö
 
Koenntest ja eine Webbrowser Komponente nehmen.
Und den Text dortdrin darstellen.
Dann Hast du kein Caret mehr aber kannst dennoch den Text markieren.

Pseudemys Nelsoni 5. Feb 2005 11:12

Re: Caret aus RichEdit entfernen, aber immernoch Markiern kö
 
Moin toms,

ich muss schon ein RichEdit nehmen, da ich den Rest für dieses bereits "gecodet" hab und das wäre dann umsonst gewesen ;(. Irgendwie muss man den text ja markieren können, wenn ich hidecaret nicht ausführe gehts ja auch

Pseudemys Nelsoni 6. Feb 2005 13:52

Re: Caret aus RichEdit entfernen, aber immernoch Markiern kö
 
^^^^^^^^^^^^^^

Pseudemys Nelsoni 7. Feb 2005 11:47

Re: Caret aus RichEdit entfernen, aber immernoch Markiern kö
 
immernoch nicht gelöst, pls help =)

Pseudemys Nelsoni 8. Feb 2005 19:55

Re: Caret aus RichEdit entfernen, aber immernoch Markiern kö
 
^^^^

toms 8. Feb 2005 20:06

Re: Caret aus RichEdit entfernen, aber immernoch Markiern kö
 
Gibt wohl keine einfache Loesung dafuer, wenn ueberhaupt eine fuer TRichEdit.
(Microsoft Control)

Moeglichkeiten: Ein solches RichEdit nachprogrammieren mit dem gewuenschten Verhalten
oder meinen Vorschlag umsetzen.

Niko 8. Feb 2005 21:09

Re: Caret aus RichEdit entfernen, aber immernoch Markiern kö
 
Hi,

deine Methode den Cursor auszublenden funktioniert nicht - oder zuminsedt nicht so, wie du denkst :wink: .

Probier mal aus was passiert, wenn du in deiner Behandlung für WMSetFocus den HideCaret-Aufruf weglässt: Es wird trotzdem kein Cursor dargestellt. Mit deiner eigenen Routine klaust du dem RichEdit die WMSetFocus-Botschaft, somit weiß es nicht, das es den Fokus erhalten hat, stellt offensichtlich deshalb auch keinen Cursor dar und ist auch nicht in der Lage eine Markierung vozunehmen. Rufst du in deiner Botschaftsbehandlung inherited auf funktioniert auch das Markieren wieder. Dummerweise ist der Cursor dann aber auch wieder zu sehen.

Pseudemys Nelsoni 10. Feb 2005 09:16

Re: Caret aus RichEdit entfernen, aber immernoch Markiern kö
 
hmmmmm....jo, stimmt....

aber man muss doch den Caret irgendwie ausblenden können....

oder anders: wenn ich WM SETFOCUS abfange... wie kann ich dann noch text markieren?

Pseudemys Nelsoni 2. Apr 2005 02:41

Re: Caret aus RichEdit entfernen, aber immernoch Markiern kö
 
^^^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz