![]() |
Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Hi,
wie kann ich/kann ich überhaupt in einem Memo die aktuelle Zeile (--> also die Zeile in der ich mich befinde) farblich hervorheben ? [Wie in Delphi 2006] |
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Alles selber zeichnen :wink: . AFAIR gibt es aber eine passende Property beim SynEdit.
|
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Wo und vorallem welche Unit ? Dann könnte ich es mir ja evtl. ableiten.
|
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Dann halt anders:
Delphi-Quellcode:
So finde ich die Caret-Position heraus. X ist die X-Position und Y- ist die Zeile (also die Y-Position). Ich muss jetzt nur wissen, wie ich die Farbe einer Spalte verändern kann.
SelectedSheet := Pages.ActivePage;
with TExtendedTabSheet(SelectedSheet) do begin with fMemo.CaretPos do Edit2.Text := Format('(%d, %d)',[X+1,Y+1]) end; |
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Mache das mit einer Listbox und fertig. Beim Memo wirds zu kompliziert, dem das beizubringen.
Doch noch auf die Schnelle gefunden :
Delphi-Quellcode:
Das färbt jede zweite Zeile gelb.
if Index mod 2 = 0 then begin
Listbox1.Canvas.Brush.Color := clYellow; Listbox1.Canvas.FillRect(Rect); Listbox1.Canvas.TextOut(Rect.Left, Rect.Top, Listbox1.Items[Index]); end else Listbox1.Canvas.TextOut(Rect.Left, Rect.Top, Listbox1.Items[Index]); |
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Zitat:
|
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Man sollte auch sagen, was man will. Raterei alleine nützt nichts. Ein Memo hat nun mal kein Canvas. Deshalb wirds kompliziert. IMHO für den Zweck viel zu kompliziert. Ich würde da jetzt auch nicht mit dem Holzhammer rumhantieren und irgend was "passend" machen. Kann man in eine ListBox nichts eingeben ? Ist auch egal, es gibt Komponenten genug. Dann soll er eben ein Stringgrid mit einer Spalte nehmen. Da geht das alles definitiv !
|
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Warum benutzt du nicht einfach TSynEdit oder TSynMemo? Beide Komponenten haben die Property unter ActiveLineColor. Was hält dich am Memo?
|
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Ich kann keine ListBox nehmen. Der Sinn ist ja, das man was man will frei eintippen kann. SynEdit und SynMemo gehen nicht, da ich einen eigenen Typen von einem Memo für meinen Highlighter habe, ist auch nicht so umständlich wie mit dem SynEdit.
|
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Die SynEdit-Komponenten sind doch relativ einfach anzuwenden, und schwieriger als einem Memo farbige Zeilen beizubringen garantiert nicht. ;)
|
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Hallo Nils,
warum willst du unbedingt ein Memo verwenden? Der Aufwand einem Memo Zeichenformate beizubringen wäre mir viel zu hoch - und außerdem hat das schon jemand gemacht: Herausgekommen ist dabei die Komponente TRichEdit. Wenn dir der Umgang mit TSynEdit schwer fällt, dann ist TRichEdit doch ein guter Kompromiss. Grüße vom marabu |
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Es läuft aber alles. Ich habe einfach keine Lust einen ellenlangen Code anzupassen. Das ableiten vom SynEdit macht mir da ein bisschen schwierigkeiten. Beim SynEdit kann man sich selbst einen Highlighter erstellen, aber bei meinem highlighter habe ich eine ListBox mit allem was markeirt werden soll, und ich kann es immer abändern.
|
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Wenn du schon dein Memo selbst zeichnest (
![]() |
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Zitat:
Ich kann mich irren, aber kann das TRichEdit nicht sowas? Grüße Faux |
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Ja aber Memo hat einige Vorteile: Leichter zu bedienen, nicht so unübersichtlich (Opbjectinspector), highlighter einfacher, funktioniert.
|
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Zitat:
Warum nimmst du also nicht einfach TSynUniSyn? Das Teil macht genau das, was du willst: du kannst zur Laufzeit die Tokens ändern, genauso wie deren Formatierung. Was will man mehr? ;) mfg, mh166 |
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Zitat:
Wieso soll RichEdit schwer zu bedienen sein? Funktioniert im Prinzip wie ein Memo. :gruebel: |
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
UniSyn kann ich nicht installieren, läuft einfach nicht, hab das ganze vor langer Zeit schon aufgegeben.
@faux: Ich meinte das SynEdit, das legt nur das Prrgramm lahm. |
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Zitat:
Zitat:
Einfach die SynEdit_D7.dpk Installieren und den Source-Ordner in den Suchpfad übernehmen. Das wars. EDIT: Hab mich verlesen. Grüße Faux |
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Ich muss nur wissen, wie ich z.B. bei der Zeile 1 die Hintergrundfarbe abändern kann, die Zeile 1 wird dann noch durch die aktuelle Zeile ersetzt.
|
Re: Aktuelle Zeile im Memo farblich hervorheben (wie in BDS)
Weiß das keiner von euch ? Wäre wirklich schade :(
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:40 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