1. So erhalten Sie die aktuelle Zeilennummer
Wenn Sie das RichEdit-Steuerelement (oder Memo-Steuerelement) zum Erstellen eines Texteditors verwenden, können Sie die Gesamtzahl der Zeilen ermitteln, indem Sie auf das Attribut „lines??count“ zugreifen. Allerdings ist es schwierig, die Zeilennummer der Zeile zu ermitteln, in der sich der Cursor gerade befindet gefunden, da Delphi dieses Attribut nicht bereitstellt. Um diese wesentliche Editorfunktion zu implementieren, muss em_ LineFromChar aufgerufen werden. Bitte versuchen Sie das folgende Verfahren.
Ordnen Sie zunächst ein RichEdit oder Memo (benannter Editor) und eine Schaltfläche im Fenster an. Schreiben Sie den folgenden Code in das Onclick-Ereignis der Schaltfläche.
var
CurrentLine:Integer;
beginnen
CurrentLine:=Editor??Perform(em_ LineFromChar,SFFFF,0);
application??MessageBox(PChar('Die aktuelle Zeilennummer ist'+IntToStr(CurrentLine)),'Message',mb_ iconinformation);
Ende;
Beachten Sie, dass die erste Zeile die Zeilennummer Null hat.
2. So machen Sie einen Vorgang rückgängig (Undo)
Für Memo ist keine Programmierung erforderlich, um das Rückgängigmachen zu implementieren. Solange das Popupmenu-Attribut leer ist, kann zur Laufzeit mit der rechten Maustaste ein allgemeines Operationsmenü aktiviert werden, das sechs Elemente umfasst: Rückgängigmachen, Ausschneiden, Kopieren, Einfügen, Löschen und Auswählen alle. .
Aber leider funktioniert diese Methode nicht für das leistungsstarke RichEdit-Steuerelement, sodass wir selbst ein Popupmemu entwerfen müssen. Wenn Sie CutToClipBoard und andere Anweisungen verwenden, um Funktionen wie „Ausschneiden“ einfach und reibungslos abzuschließen, werden Sie hilflos feststellen, dass Sie keine Anweisungen wie „Rückgängig“ oder „Abbrechen“ finden können, um „Rückgängig“ auszuführen.
Zu diesem Zeitpunkt müssen Sie folgendermaßen vorgehen:
RichEdit1??Perform(EM_UNDO,0,0);
Sie sollten auch prüfen, ob das Rückgängigmachen zulässig ist, und so den Punkt „Rückgängig“ im Popup-Menü ein- oder ausschalten:
Undo1??Enabled:=RichEdit??Perform(EM_CANUNDO,0,0)<>0;
Das obige Programm hat das Debuggen in Delphi3 bestanden