vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Texteditor (SO IST ES RICHTIG) 
Autor: AndyOG
Datum: 03.11.06 13:26

Hi,
richtig. Mein Code sollte auch eig. nichts anderes machen
Du solltest eig. nur den Code von Skitch mit meinem kombinieren.
Hier nun ein komplett fertiges Programm:
(Du benötigst eine RichTextBox(Name= "RichTextBox1") zwei Buttons (Name1= "cmdOpenFile", Name2= "cmdSaveFile") und ein Commondialog(Name= "CommonDialog1")

Hier der Code:

Private Declare Function SendMessage Lib "user32" _
  Alias "SendMessageA" ( _
  ByVal hwnd As Long, _
  ByVal wMsg As Long, _
  ByVal wParam As Long, _
  lParam As Any) As Long
 
Private Const EM_GETLINE = &HC4
Private Const EM_GETSEL = &HB0
Private Const EM_LINEFROMCHAR = &HC9
Private Const EM_LINEINDEX = &HBB
Private Const EM_LINELENGTH = &HC1
Private Const EM_GETLINECOUNT = &HBA
Private Const EM_GETFIRSTVISIBLELINE = &HCE
 
Private Const MAX_CHAR_COUNT = 40           '==> Anzahl der Zeichen
 
 
Private Function GetCurPos(RichTextBox As RichTextBox, _
                            Optional ByRef lngLine As Long, _
                            Optional ByRef lngCursorPos As Long, _
                            Optional ByRef lngFirstChar As Long, _
                            Optional ByRef lngLineLength As Long) As Long
 
 
        lngCursorPos = SendMessage(RichTextBox.hwnd, EM_GETSEL, 0, ByVal 0&) \ _
          65536
        lngLine = SendMessage(RichTextBox.hwnd, EM_LINEFROMCHAR, lngCursorPos, _
        ByVal 0&)
        lngFirstChar = SendMessage(RichTextBox.hwnd, EM_LINEINDEX, lngLine, _
        ByVal 0&)
        lngLineLength = SendMessage(RichTextBox.hwnd, EM_LINELENGTH, _
        lngFirstChar, ByVal 0&)
 
        GetCurPos = RichTextBox.SelStart - lngFirstChar
 
End Function
 
Private Sub cmdOpenFile_Click()
On Error GoTo Err
 
    With CommonDialog1
        .Filter = "TextFiles (*.txt)|*.txt"
        .CancelError = True
        .ShowOpen
 
        RichTextBox1.LoadFile .FileName
 
        Call RTF_ColorAll(RichTextBox1)
 
    End With
 
Exit Sub
Err:
End Sub
 
Private Sub RTF_ColorAll(RichTextBox As RichTextBox)
 
    Dim lPos As Long
    Dim sText As String
    Dim bEnde As Boolean
    Dim l As Long
 
    With RichTextBox1
 
        .Enabled = False
        sText = .Text
 
        lPos = 1
        bEnde = False
        While bEnde = False
          l = InStr(lPos, sText, vbCrLf)
          If l > 0 Then
            If l - lPos >= MAX_CHAR_COUNT Then
              .SelStart = lPos + (MAX_CHAR_COUNT - 1)
              .SelLength = l - lPos - MAX_CHAR_COUNT
              .SelColor = vbBlue
            End If
          Else
            bEnde = True
          End If
          lPos = lPos + (l - lPos) + 2
        Wend
 
        .Enabled = True
 
    End With
 
End Sub
 
Private Sub cmdSaveFile_Click()
 
    With CommonDialog1
        If Dir(.FileName) <> "" Then
            RichTextBox1.SaveFile .FileName, rtfCFText
        End If
    End With
 
End Sub
 
Private Sub RichTextBox1_Change()
 
    Dim lngLine As Long
    Dim lngCursorPos As Long
    Dim lngFirstChar As Long
    Dim lngLineLength As Long
    Dim lngCurPos As Long
        lngCurPos = GetCurPos(RichTextBox1, lngLine, lngCursorPos, _
          lngFirstChar, lngLineLength)
 
    Dim lngSelStart As Long
        lngSelStart = RichTextBox1.SelStart
 
        RichTextBox1.SelStart = lngFirstChar
        RichTextBox1.SelLength = lngLineLength
        RichTextBox1.SelColor = vbBlack
        RichTextBox1.SelStart = lngSelStart
 
        If lngLineLength > MAX_CHAR_COUNT Then
            RichTextBox1.SelStart = lngFirstChar + MAX_CHAR_COUNT
            RichTextBox1.SelLength = lngLineLength - MAX_CHAR_COUNT
            RichTextBox1.SelColor = vbRed
            RichTextBox1.SelStart = lngSelStart
        End If
 
End Sub

Mit freundlichen Gr??en,
Andy G.

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Texteditor803Hans_K30.10.06 21:14
Re: Texteditor478Skitch01.11.06 15:06
Re: Texteditor (SO IST ES RICHTIG)550Skitch01.11.06 15:11
Re: Texteditor (SO IST ES RICHTIG)467Hans_K01.11.06 17:19
Re: Texteditor (SO IST ES RICHTIG)468VBMichi01.11.06 19:47
Re: Texteditor (SO IST ES RICHTIG)471Hans_K02.11.06 15:36
Re: Texteditor (SO IST ES RICHTIG)475AndyOG02.11.06 17:04
Re: Texteditor (SO IST ES RICHTIG)453VBMichi03.11.06 11:14
Re: Texteditor (SO IST ES RICHTIG)509AndyOG03.11.06 11:31
Re: Texteditor (SO IST ES RICHTIG)468Hans_K03.11.06 11:54
Re: Texteditor (SO IST ES RICHTIG)437AndyOG03.11.06 12:00
Re: Texteditor (SO IST ES RICHTIG)475Hans_K03.11.06 12:36
Re: Texteditor (SO IST ES RICHTIG)533AndyOG03.11.06 13:26
Re: Texteditor (SO IST ES RICHTIG)445AndyOG03.11.06 13:30
Re: Texteditor (SO IST ES RICHTIG)439Hans_K03.11.06 20:40
Re: Texteditor (SO IST ES RICHTIG)475AndyOG04.11.06 02:27

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel