Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

RichEdit/Memo mit Zeilennummer

53 views
Skip to first unread message

Steffen Liersch

unread,
May 22, 2000, 3:00:00 AM5/22/00
to
Hallo Leute,

ich brauch' ein Memo/RichEdit bei dem ich links die Zeilennummer anzeigen
kann. Dabei soll die Zeilennummer read-only sein und der Rest beschreibbar.
Gibt es dafür eine fertige Komponente (habe keine auf der DSP gefunden). Wie
könnte man das Ganze selbst programmieren? Ein Lösungsansatz wäre die
Verwendung von 2 Controls, die genau nebeneinander positioniert werden.
Problematisch wird jedoch die Synchronisation des sichtbaren Bereichs (keine
Properties mit diesen Informationen). Kann mir jemand weiterhelfen?
Dankeschön.

--
MfG
Steffen Liersch

****************************************************************
IVS Language Controller for Delphi 3, 4 and 5
Please visit http://www.ivs-solutions.de/products/tools/langcontrol
****************************************************************


Ivo Steinmann

unread,
May 22, 2000, 3:00:00 AM5/22/00
to
Hallo Steffen

>
> ich brauch' ein Memo/RichEdit bei dem ich links die Zeilennummer anzeigen
> kann. Dabei soll die Zeilennummer read-only sein und der Rest
beschreibbar.
> Gibt es dafür eine fertige Komponente (habe keine auf der DSP gefunden).

Mit dem RichEdit von den RXTools lässt sich sowas machen. (glaub ich
zumindest)

mfg
-Ivo

Stephan Reichelt

unread,
May 22, 2000, 3:00:00 AM5/22/00
to
S.Li...@ivs-solutions.de (Steffen Liersch) painted:

HI Steffen,

>ich brauch' ein Memo/RichEdit bei dem ich links die Zeilennummer
>anzeigen kann. Dabei soll die Zeilennummer read-only sein und
>der Rest beschreibbar. Gibt es dafür eine fertige Komponente

>(habe keine auf der DSP gefunden). Wie könnte man das Ganze
>selbst programmieren? Ein Lösungsansatz wäre die Verwendung von
>2 Controls, die genau nebeneinander positioniert werden.
>Problematisch wird jedoch die Synchronisation des sichtbaren
>Bereichs (keine Properties mit diesen Informationen). Kann mir
>jemand weiterhelfen? Dankeschön.

das ist in 10 min selber geschrieben:

type
TMyRichEdit = class(TCustomControl)
private
FCount: TEdit;
FRich: TRichEdit;
procedure WMSize(var message: TWMSize);
message WM_SIZE;
procedure FRichKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState); reintroduce;
public
constructor Create(AOwner: TComponent); override;
end;

Im Create werden FCount/FRich erzeugt und initialisiert. In WMSize
werden ihre Positionen festgelegt. Außerdem legst Du dort mittels
FRich.OnKeyUp:=FRichKeyUp; den Event-Handler fest:

procedure TMyRichEdit.FRichKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
t: integer;
begin
t:=FRich.perform(EM_LINEFROMCHAR, FRich.SelStart, 0);
FCount.Text:=inttostr(t+1);
inherited KeyUp(key, Shift);
end;

Wenn Du zusätzlich Zugriff auf das RichEdit brauchst, musst Du
<schlechter Workaround>
FRich im public-Teil deklarieren
</schlechter Workaround>.
Das entspricht aber IMHO auf keinen Fall guter OOP.


So long,
Stephan R.
--
Wenn der Glaube stirbt
Bist du ein Mensch ohne Herr
Die Wahrheit ist wortlos
Ihr Weg tränenschwer

Peter Hellinger

unread,
May 23, 2000, 3:00:00 AM5/23/00
to
"Bruno Hostettler" <bruno.ho...@bluewin.ch> schrieb im Newsbeitrag
news:8gf085$4pr$1...@bw107zhb.bluewin.ch...
> 54 Text
> 55 Text
> 56 Text

Kann ich immer nur wieder empfehlen: PlusMemo von Electro Concept Mauricie.
http://www.concept.itr.qc.ca/

Helli

Bruno Hostettler

unread,
May 24, 2000, 3:00:00 AM5/24/00
to
Hallo

> >ich brauch' ein Memo/RichEdit bei dem ich links die Zeilennummer
> >anzeigen kann. Dabei soll die Zeilennummer read-only sein und
> >der Rest beschreibbar.

> das ist in 10 min selber geschrieben:


>
> type
> TMyRichEdit = class(TCustomControl)
> private
> FCount: TEdit;
> FRich: TRichEdit;
> procedure WMSize(var message: TWMSize);
> message WM_SIZE;
> procedure FRichKeyUp(Sender: TObject; var Key: Word;
> Shift: TShiftState); reintroduce;
> public
> constructor Create(AOwner: TComponent); override;
> end;

Ich moechte jedoch dass es folgendermassen aussieht:

1 Text1
2 Text2
3 Text3
Nr. ....

Somit sollte anstelle eines FCount: TEdit; ein TMemo oder TStringList
verwendet werden.
Wie kann nun die Zeilennummerierungsliste immer richtig aktualisiert
(gescrollt) werden ?
z.B. wenn das Fenster verkleinert wird und nur die Textzeilen 54 bis 56
sichtbar sind.
----------


54 Text
55 Text
56 Text

----------

Gruss
Bruno


0 new messages