In einem Memo-Feld navigieren |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
Dieser Artikel zeigt, wie Sie in einem Memo-Feld vertikal und horizontal scrollen können. Dazu muss die Botschaft WM_VSCROLL zum vertikalen und WM_HSCROLL zum horizontalen Scrollen an das Handle des Memo-Feldes gesendet werden. Dabei gibt der erste Parameter die Art des Scrollen an:
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Perform(WM_VSCROLL, SB_TOP, 0);
end;
In diesem Beispiel wird das Memo-Feld komplett nach oben gescrollt. Außer SB_TOP sind noh folgende Werte möglich:
- SB_BOTTOM - Ans Ende scrollen
- SB_LINEUP - Eine Zeile nach oben scrollen
- SB_LINEDOWN - Eine Zeile nach unten scrollen
- SB_PAGEUP - Eine Seite nach oben scrollen (Bild hoch)
- SB_PAGEDOWN - Eine Seite nach unten scrollen (Bild runter)
Bewegungen innerhalb einer Zeile sind mit WM_HSCROLL möglich. Die Parameter für Scroll-Art sind dabei die gleichen.Um direkt zu einer "Koordinate" in einem Memo-Feld zu springen, nutzen Sie die Botschaft EM_SCROLLCARET, um zu einer Cursorposition zu springen.Folgende Prozedur erwartet als ersten Parameter das entsprechende Memo-Feld, wobei es sich auch um ein TRichEdit handeln kann. Bei dem Parameter X handelt es sich um die Zeilenangabe (beginnend bei 0), bei Y um die Position innerhalb einer Zeile.
procedure SetCursorInMemo(const AMemo: TCustomMemo; X, Y: Integer);
begin
AMemo.SelStart:=AMemo.Perform(EM_LineIndex,X,0)+Y;
AMemo.Perform(EM_SCROLLCARET, 0, 0);
AMemo.SetFocus;
end;
Die Prozedur setzt zunächst den Cursor an die gewünschte Stelle und scrollt diesen dann in den sichtbaren Bereich.
- Laden und Speichern von Texten aus Memofeldern in Dateien
- Blinkenden Cursor verstecken
- Ränder von mehrzeiligen Textfeldern setzen/lesen
- Sichtbare Zeilen in TMemo ermitteln
- Rückgängig/Wiederherstellen für Textfelder
- Aktuelle Zeile/Spalte in Memofeldern bestimmen
- Eigenen Caret in TMemo
- Wort aus einem String an einer Position extrahieren
- Tabulatoren-Größe in TCustomMemo setzen
- Inhalt eines Memos drucken