Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Komponente von RichEdit ableiten (https://www.delphipraxis.net/43243-komponente-von-richedit-ableiten.html)

Pseudemys Nelsoni 31. Mär 2005 11:19


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)

http://www.n1ght.de/SCREENSHOT-1240796.JPG

?

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

Binärbaum 31. Mär 2005 23:15

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

Pseudemys Nelsoni 1. Apr 2005 00:40

Re: Komponente von RichEdit ableiten
 
Es geht aber nicht um die Farbe des RichEdits, sondern darum das das Caret weg muss.

Hansa 1. Apr 2005 00:50

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:

Sprint 1. Apr 2005 01:01

Re: Komponente von RichEdit ableiten
 
Zitat:

Zitat von Pseudemys Nelsoni
Es geht aber nicht um die Farbe des RichEdits, sondern darum das das Caret weg muss.

MSDN-Library durchsuchenCreateCaret
MSDN-Library durchsuchenShowCaret
MSDN-Library durchsuchenHideCaret
MSDN-Library durchsuchenDestroyCaret

3_of_8 1. Apr 2005 11:16

Re: Komponente von RichEdit ableiten
 
Was genau ist denn eigentlich ein Caret? Die Cursor Position? :grübel:

MasterC 1. Apr 2005 11:45

Re: Komponente von RichEdit ableiten
 
Das Ding, dass dir beim Tippen zeigt wo du gerade schreibst.

3_of_8 1. Apr 2005 11:48

Re: Komponente von RichEdit ableiten
 
Also doch der Cursor...

Pseudemys Nelsoni 1. Apr 2005 12:27

Re: Komponente von RichEdit ableiten
 
Zitat:

Welches Caret meinst Du denn ? Mit dem Chat-Kram kenne ich mich nicht so gut aus. Du mußt dir eben ein Event aussuchen, welches paßt.
Caret = das blinkende Teil.


@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:

Also doch der Cursor...
Eben nicht, das ding heisst "Caret". Cursor = Mauszeiger.

Nils_13 1. Apr 2005 12:30

Re: Komponente von RichEdit ableiten
 
Zitat:

Zitat von 3_of_8
Also doch der Cursor...

Cursor = Maus
Caret = Positionsanzeigender Strich


mist :drunken: zu spät

3_of_8 1. Apr 2005 19:27

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.

Pseudemys Nelsoni 2. Apr 2005 02:54

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....

toms 2. Apr 2005 08:54

Re: Komponente von RichEdit ableiten
 
Zitat:

Zitat von Pseudemys Nelsoni
Hat nun jemand ne Idee?

Ich brauch doch nur eine komponente wo ich text markieren kann und dennoch kein caret vorhanden ist....

TWebbrowser

mirage228 2. Apr 2005 08:58

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

Pseudemys Nelsoni 2. Apr 2005 09:40

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)

glkgereon 2. Apr 2005 09:46

Re: Komponente von RichEdit ableiten
 
also das HideCaret musst du in jedem OnChange etc. ausführen...hatte das prob auch schon

toms 2. Apr 2005 09:47

Re: Komponente von RichEdit ableiten
 
Zitat:

Zitat von Pseudemys Nelsoni
@toms: ich möchte schon sachen benutzen wofür sie gedacht sind, trotzdem danke ;)

Warum sollte der Webbrowser nicht dafuer gamcht sein?
Es ist die Ideale fertige Komponente dafuer.
Es gab schon mal einen Thread hier im Forum. Herausgekommen ist sonst auch nichts.

Pseudemys Nelsoni 2. Apr 2005 09:51

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:

also das HideCaret musst du in jedem OnChange etc. ausführen...hatte das prob auch schon
Dann geht das markieren auch nichtmehr

toms 2. Apr 2005 09:56

Re: Komponente von RichEdit ableiten
 
Zitat:

Zitat von Pseudemys Nelsoni
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.

Falsch. Im Windows werden auch einige Dialoge angezeigt, welche den Webbrowser benutzen.

Sprint 2. Apr 2005 15:42

Re: Komponente von RichEdit ableiten
 
Zitat:

Zitat von Pseudemys Nelsoni
@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.

Vielleicht solltest du dir mal die Beschreibung und besonders die Beispiele zu HideCaret durchlesen.

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.

Pseudemys Nelsoni 3. Apr 2005 11:29

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.

Pseudemys Nelsoni 2. Aug 2005 10:40

Re: Komponente von RichEdit ableiten
 
Sonst noch ne Idee? <g>

Nils_13 2. Aug 2005 10:44

Re: Komponente von RichEdit ableiten
 
Zitat:

Zitat von Pseudemys Nelsoni
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.

Also ist er vorher nicht da ? Dann starte das Fenster doch einfach maximiert, oder lasse maximieren nicht zu.

geskill 23. Mai 2008 10:12

Re: Komponente von RichEdit ableiten
 
Ich verweise mal auf meinen Post:
http://www.delphipraxis.net/internal...=891283#891283

Ganz unten...


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:42 Uhr.

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