Zum vorherigen AbschnittZum nächsten Abschnitt Befehle rückgängig machen in RTF- und Textboxen
Natürlich bietet jede Textbox in Windows standardmäßig eine Rückgängig-Funktion im Kontextmenü an, aber manchmal will man dem Benutzer mehr Komfort anbieten oder diese Funktion in eigene Menüs einbauen. Glücklicherweise speichert Windows alle nötigen Informationen zum Rückgängigmachen immer automatisch beim Ändern. In den folgenden Abschnitten erfahren Sie, wie Sie diese Windows-Funktion nutzen können.
Ihre Bewertung:
 12345
    

Bewertung dieses Tipps:  (bewertet von insgesamt 11 Besuchern)

 Zum vorherigen AbschnittZum nächsten Abschnitt Deklarationen
Die UNDO-Funktion basiert auf der sehr oft genutzten API-Funktion "SendMessage". Um SendMessage in eigenen Projekten nutzen zu können, muss sie zuerst im Kopf der Form oder des Moduls deklariert werden. Zusätzlich werden noch einige Konstanten benötigt:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
Const EM_CANUNDO = &HC6
Const EM_UNDO = &HC7
Const EM_EMPTYUNDOBUFFER = &HCD

 Zum vorherigen AbschnittZum nächsten Abschnitt Aufrufe/Funktionen
Da SendMessage wie gesagt eine ziemliche Allround-API ist, werden die Befehle durch bestimmte Parameter, also Konstanten angegeben. Hier die Routine, um die letzte Änderung rückgängig zu machen:

Sub Undo(TxtBox As Control)
   Call SendMessage(TxtBox.hWnd, EM_UNDO, 0, 0&)
   'Wenn das doppelte Undo (also "Wiederherstellen") nicht
   'möglich sein soll, dann zusätzlich folgende Zeile aktivieren.
   'Call SendMessage(TxtBox.hwnd, EM_EMPTYUNDOBUFFER, 0, 0&)

End Sub

Nun folgt noch eine Funktion, mit der sich ermitteln lässt, ob überhaupt etwas zum Rückgängigmachen da ist, also ob schon Änderungen an der Textbox vorgenommen wurden oder gerade erst UNDO aufgerufen wurde und die zweite Zeile aktiviert wurde. Die Funktion gibt True zurück, wenn Windows das Wiederherstellen des vorherigen Zustandes gerade unterstützt, ansonsten False.

Function UndoPossible(TxtBox As Control)
   EnableUndoMenu = SendMessage(TxtBox.hWnd, EM_CANUNDO, 0, 0&)
End Function

 Zum vorherigen AbschnittZum nächsten Abschnitt Hinweis
In jeder RTF- und Textbox können unter Windows mit der Tastenkombination "Strg+Z" die letzten Änderungen rückgängig gemacht werden.



Quellen: SHADOWare.de
Letzte Änderung: 12.06.00
©2000 by SHADOWare, Thomas Bachem