13 Stimmen

Lazarus: Aktuelle Zeile in Memo abfragen

Frage von Gast | Letztes Update am 02.05.2022 | Erstellt am 22.01.2014

Ich würde gerne mit Lazarus den Index der Zeile in einem TMemo ermitteln in dem ein Nutzer gerade etwas schreibt.

Meine bisherigen Recherchen haben leider nur eine Lösung für Delphi ans Licht gebracht, mit der man die Position von Zeile und Spalte innerhalb eines Memos bestimmen kann:

Line   := Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0) ;
Column := Memo1.SelStart - Memo1.Perform(EM_LINEINDEX, Line, 0) ;

In Lazarus funktioniert es so nicht (Fehlermeldung: "Identifier not found EM_LINEFROMCHAR"). Hat jemand eine Lösung?

AntwortenPositivNegativDatumStimmen
3Beste Antwort5 Stimmen

Es geht sogar noch viel einfacher.

Probiere mal das hier aus:

Line   := Memo1.CaretPos.Y;
Column := Memo1.CaretPos.X;

CaretPos ist die Position des Cursors und die hat eine X und eine Y Variable, in der genau das stehen sollte, was du suchst.

Soweit ich weiß sind "Perform" und "EM_LINEFROMCHAR" typisch für die Windows-Welt und daher nicht für das plattformunabhängige Lazarus zu gebrauchen.
Letztes Update am 02.05.2022 | Erstellt am 22.01.2014

AntwortenPositiv Negativ
00 Stimmen

Die Antwort des anderen Gastes ist die beste Lösung.

Wenn Sie Ihren ursprünglichen Weg gehen möchten, müssten Sie im Uses-Abschnitt "Windows" angeben.
01.02.2022 um 23:53

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

PHP: Zeit und Performance messen

Tutorial | 0 Kommentare

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.