

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.
| |
| Bewertung dieses Tipps: |    | (bewertet von insgesamt 11 Besuchern) |

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

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

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
|