![]() |
Komponente von RichEdit ableiten
Moin :???:
Hat jemand eine Idee wie ich eine Komponente von RichEdit ableiten kann, die folgendes kann: - Caret verstecken - Text trotzdem noch markieren können (siehe Bild) ![]() ? Genau so ein Control brauche ich. Ich möchte nur wissen wie ich sowas selbst schreiben könnte, nicht wo ich eine fertige Komponente finde. MfG |
Re: Komponente von RichEdit ableiten
Ich versteh jetzt nicht so richtig, was das Problem ist. :gruebel:
Mit RichEdit kann man doch auch Text markieren, oder nicht? Und damit es so wie auf dem Bild aussieht nimmt man halt eine Schrift, bei der jedes Zeichen die gleiche Breite einnimmt (z.B. Courier). Dann muss bloß noch der Hintergrund schwarz gefärbt werden, und schon hat man es. Oder versteh' ich das jetzt falsch :?: MfG Binärbaum |
Re: Komponente von RichEdit ableiten
Es geht aber nicht um die Farbe des RichEdits, sondern darum das das Caret weg muss.
|
Re: Komponente von RichEdit ableiten
Welches Caret meinst Du denn ? Mit dem Chat-Kram kenne ich mich nicht so gut aus. 8) Du mußt dir eben ein Event aussuchen, welches paßt. :mrgreen:
|
Re: Komponente von RichEdit ableiten
Zitat:
![]() ![]() ![]() ![]() |
Re: Komponente von RichEdit ableiten
Was genau ist denn eigentlich ein Caret? Die Cursor Position? :grübel:
|
Re: Komponente von RichEdit ableiten
Das Ding, dass dir beim Tippen zeigt wo du gerade schreibst.
|
Re: Komponente von RichEdit ableiten
Also doch der Cursor...
|
Re: Komponente von RichEdit ableiten
Zitat:
@Sprint: HideCaret/DestroyCaret funktionieren nicht (schon getestet), Das Caret bleibt immer da. Wie wende ich denn DestroyCaret auf mein RIchedit an? irgendwie erwartet das ding keine parameter. Zitat:
|
Re: Komponente von RichEdit ableiten
Zitat:
Caret = Positionsanzeigender Strich mist :drunken: zu spät |
Re: Komponente von RichEdit ableiten
Ich sage eigentlich zum "Caret" auch immer Cursor, denn die Oben/Unten/Links/Rechts Tasten heißen ja auch Cursortasten und nicht Carettasten.
|
Re: Komponente von RichEdit ableiten
Hat nun jemand ne Idee?
Ich brauch doch nur eine komponente wo ich text markieren kann und dennoch kein caret vorhanden ist.... |
Re: Komponente von RichEdit ableiten
Zitat:
|
Re: Komponente von RichEdit ableiten
Hi,
ich hab grad mal nachgeschaut. Laut EDA ist der Klassenname von dem Chat-Fenster "static". Also ist das Ding kein RichEdit o.Ä., sonder ein normales "Label" (bzw. TStaticText) :shock: mfG mirage228 |
Re: Komponente von RichEdit ableiten
@toms: ich möchte schon sachen benutzen wofür sie gedacht sind, trotzdem danke ;)
@mirage: wie markiere ich denn text in einem label? (danke fürs nachgucken btw) |
Re: Komponente von RichEdit ableiten
also das HideCaret musst du in jedem OnChange etc. ausführen...hatte das prob auch schon
|
Re: Komponente von RichEdit ableiten
Zitat:
Es ist die Ideale fertige Komponente dafuer. Es gab schon mal einen Thread hier im Forum. Herausgekommen ist sonst auch nichts. |
Re: Komponente von RichEdit ableiten
Weil dann jeder den IE installiert haben muss - Ok, das hat sowieso jeder, aber ich sehe das so das TWebBrowser ausschliesslich für HTML-Seiten gedacht ist.
Also das Label würde mir schon perfekt vorkommen, bleiben nur 2 Fragen: 1. Wie markiere ich dort Text 2. Wie füge ich da verschiedenfarbige Lines zu? @toms: Nimms mir nicht übel, aber ich bin halt so *g* Zitat:
|
Re: Komponente von RichEdit ableiten
Zitat:
|
Re: Komponente von RichEdit ableiten
Zitat:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; TMyRichEdit = class(TRichEdit) private OldWndProc: TWndMethod; procedure NewWndProc(var Message: TMessage); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; var Form1: TForm1; implementation {$R *.dfm} { TMyRichEdit } constructor TMyRichEdit.Create(AOwner: TComponent); begin inherited; OldWndProc := Self.WindowProc; Self.WindowProc := NewWndProc; end; destructor TMyRichEdit.Destroy; begin Self.WindowProc := OldWndProc; inherited; end; procedure TMyRichEdit.NewWndProc(var Message: TMessage); begin if Message.Msg <> WM_PAINT then HideCaret(Self.Handle); OldWndProc(Message); end; { TForm1 } procedure TForm1.FormCreate(Sender: TObject); begin with TMyRichEdit.Create(Self) do begin Parent := Self; Align := alClient; end; end; end. |
Re: Komponente von RichEdit ableiten
Hallo Sprint,
danke für den Code, nur funktioniert der nicht ganz. Wenn man unten rechts z.b das Fenster vergrössert/verkleinert ist immer ein Caret da Edit: Hab schon, danke. |
Re: Komponente von RichEdit ableiten
Sonst noch ne Idee? <g>
|
Re: Komponente von RichEdit ableiten
Zitat:
|
Re: Komponente von RichEdit ableiten
Ich verweise mal auf meinen Post:
![]() Ganz unten... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:59 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