Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wahlfrei Zeilen in Memofeld markieren. (https://www.delphipraxis.net/83380-wahlfrei-zeilen-memofeld-markieren.html)

testan 1. Jan 2007 18:02


Wahlfrei Zeilen in Memofeld markieren.
 
Hallo und frohes Neues,

ich iteriere über die Zeilen eines Memo-Felds und prüfe, ob die Zeilen einem bestimmten Muster entsprechen. Sollte die Prüfung fehlschlagen, wird die Zeile markiert. Nun habe ich gelernt, dass man mit SelStart und SelLength die Koordinaten zum Markieren vorgibt. Wie mache ich aber, wenn ich die 2. und die 4. Zeile markieren möchte. Gibt es eine "elegante" Lösung dafür?

Vielen Dank, und viele Grüße
Testan

marabu 1. Jan 2007 19:17

Re: Wahlfrei Zeilen in Memofeld markieren.
 
Auch dir alles Gute im neuen Jahr.

Das Memo kapselt ein Multiline Edit Control und dieses Windows Control beherrscht keine extended selection, wie du sie vielleicht aus verschiedenen Office-Paketen kennst. Du musst dir da anders behelfen. Du könntest ein TRichEdit verwenden und dort mit Farben arbeiten.

Freundliche Grüße

mkinzler 1. Jan 2007 19:23

Re: Wahlfrei Zeilen in Memofeld markieren.
 
Oder ein TStringGrid mit einer Spalte.

_frank_ 1. Jan 2007 19:35

Re: Wahlfrei Zeilen in Memofeld markieren.
 
würde evtl eine TListbox gehen, oder brauchst du die Zeilen editierbar? dort gehst du die Zeilen durch und brauchst nur den itemindex zu setzen.

evtl. hilft dir das:
http://www.swissdelphicenter.ch/de/showcode.php?id=439

daraus hab ich mal diese Funktion gebastelt:
Delphi-Quellcode:
procedure selectline(memo:TMemo;line:integer);
begin
  memo.SelStart := memo.Perform(EM_LINEINDEX, line-1, 0);
  memo.Perform(EM_SCROLLCARET, 0, 0);
  memo.sellength:=length(Memo.lines.strings[line-1]);
  memo.SetFocus;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  selectLine(memo1,2);
end;
HTH Frank

testan 2. Jan 2007 16:00

Re: Wahlfrei Zeilen in Memofeld markieren.
 
Vielen Dank für alle Eure Antworten. Das Problem habe ich mit TRichEdit dann gelöst.

Viele Grüße,

Testan

sabzine 2. Jan 2007 18:19

Re: Wahlfrei Zeilen in Memofeld markieren.
 
Hallo,
mich würde aber interessieren, wie man die Hintergrundfarbe einer Zeile in einem TRichEdit genau setzt? Ich kämpfe nämlich mit dem gleichen Problem.

Gruß
Sabzine

marabu 2. Jan 2007 20:49

Re: Wahlfrei Zeilen in Memofeld markieren.
 
Herzlich willkommen in der Delphi-PRAXiS, Sabzine.

Es gibt da ein kleines Problem. Die Delphi-Komponente TRichEdit kapselt leider nur die Version 1.0 des Windows Rich Edit Controls und die Eigenschaft BackColor kann erst ab Version 2.0 für den selektierten Text eingestellt werden. Also entweder du beschränkst dich auf das Arbeiten mit Textfarben oder du verwendest eine andere Komponente. Es gab für ältere Delphi-Versionen einmal TRichEdit98 - eine freie VCL-Komponente für Rich Edit 2.0.

Freundliche Grüße

sabzine 2. Jan 2007 21:09

Re: Wahlfrei Zeilen in Memofeld markieren.
 
Zitat:

Zitat von marabu
Herzlich willkommen in der Delphi-PRAXiS, Sabzine.

Es gibt da ein kleines Problem. Die Delphi-Komponente TRichEdit kapselt leider nur die Version 1.0 des Windows Rich Edit Controls und die Eigenschaft BackColor kann erst ab Version 2.0 für den selektierten Text eingestellt werden. Also entweder du beschränkst dich auf das Arbeiten mit Textfarben oder du verwendest eine andere Komponente. Es gab für ältere Delphi-Versionen einmal TRichEdit98 - eine freie VCL-Komponente für Rich Edit 2.0.

Freundliche Grüße

Hallo marabu,
es würde völlig reichen, wenn ich die Textfarbe zeilenweise ändern kann. Ich bin Delphi-Anfänger und habe aus der Hilfe nicht eine solche Möglichkeit gefunden die Hintergrundfarbe/Textfarbe zeilenweise in TRichEdit oder TMemo zu setzen. Es wäre sehr hilfreich, wenn Du mir ein Beispielcode posten könntest.

Danke && Gruß
Sabzine

marabu 2. Jan 2007 21:15

Re: Wahlfrei Zeilen in Memofeld markieren.
 
Darf der Code auch schon etwas älter sein? klick

Gute Nacht

sabzine 2. Jan 2007 22:02

Re: Wahlfrei Zeilen in Memofeld markieren.
 
Besten Dank marabu!

Gruß
Sabzine


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:11 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