VB 5/6-Tipp 0574: Zwischen Insert- und UpdateMode in Textboxen wechseln
von Peter K. Sauer
Beschreibung
Dieser Tipp zeigt, wie man in einer Textbox zwischen Insert- und UpdateMode (einfügen/überschreiben) wechseln kann.
Schwierigkeitsgrad: | Verwendete API-Aufrufe: | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '---------- Anfang Projektdatei TextOverWrite.vbp ---------- '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Textfeld "Text1" (Index von 0 bis 0) ' Steuerelement: Beschriftungsfeld "Label3" ' Steuerelement: Beschriftungsfeld "Label2" ' Steuerelement: Beschriftungsfeld "Label1" ' Autor: Peter K. Sauer ("SAP*") <peter.k.sauer@web.de> ' nach einer Idee von AboutVB 01.2003 Option Explicit Private Declare Sub GetKeyboardState Lib "user32" (lpKeyState As Any) Const VK_INSERT = &H2D Private DoOverWrite As Boolean 'False=Ins True=Upd Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) 'Toggle Update-/InsertMode If Shift = 0 Then If KeyCode = 45 Then DoOverWrite = Not DoOverWrite Label1.Caption = "Insertmodus" If DoOverWrite Then Label1.Caption = "Updatemodus" End If End If End If End Sub Private Sub Form_Load() Dim KeyboardBuffer() As Byte Dim i As Long 'Status Update-/InsertMode feststellen ReDim KeyboardBuffer(256) GetKeyboardState KeyboardBuffer(0) 'Modus anzeigen Label1.Caption = "Insertmodus" If KeyboardBuffer(VK_INSERT) = 0 Then DoOverWrite = True Label1.Caption = "Updatemodus" End If 'abfangen der Insert Taste auf Formebene Me.KeyPreview = True End Sub Private Sub OverWriteMode(Tbox As TextBox, KeyAscii As Integer) 'OverWrite Mode steuern If KeyAscii < 32 Then 'kein Druckbares Zeichen Exit Sub End If 'Status UpdateMode If DoOverWrite Then 'nur wenn kein Text markiert ist If Tbox.SelLength = 0 Then Tbox.SelLength = 1 End If End If End Sub Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer) 'Check OverWrite OverWriteMode Text1(Index), KeyAscii End Sub '---------- Ende Formular "Form1" alias Form1.frm ---------- '----------- Ende Projektdatei TextOverWrite.vbp -----------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
VB5 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
VB6 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 2 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von pks am 18.06.2003 um 13:42
Tippfehlerteufel
If (Result And 1) = 0 Then
Kommentar von pks am 18.06.2003 um 13:22
Keyboardbuffer kann auch für 0 den Wert 128
zurückgeben, deshalb abändern
Dim Result as Long
Result = KeyboardBuffer(VK_INSERT)
If (Result And 1) = = Then
- peter