![]() |
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:
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?
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. |
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.
|
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 |
Re: Caret aus RichEdit entfernen, aber immernoch Markiern kö
Ist das RichEdit readonly ?
|
Re: Caret aus RichEdit entfernen, aber immernoch Markiern kö
jo und hide selection auf false
|
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. |
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 |
Re: Caret aus RichEdit entfernen, aber immernoch Markiern kö
^^^^^^^^^^^^^^
|
Re: Caret aus RichEdit entfernen, aber immernoch Markiern kö
immernoch nicht gelöst, pls help =)
|
Re: Caret aus RichEdit entfernen, aber immernoch Markiern kö
^^^^
|
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. |
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. |
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? |
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