Texteditor mit 3x suchfunktion

momoxp

Erfahrenes Mitglied
Hi Leute!

Ich bin gerade dabei einen Texteditor zu programmieren.. (ich weiß.. is nich gleich die welt :p)
Naja.. der texteditor soll 3 Felder haben, in denen ich ein wort z.b. eingebe und er dieses wort im inhalt der textdatei überall wo das vorkommt makiert..

ich hab 5 textfelder
1 für den inhalt der textdatei (name=content)
1 für den dateipfad (name = pfad)
3 für die wörter (name = wort1-3)

Also ich will das man in das textfeld wort1 ein wort eingibt und er dieses wort im content überall rot, blau oder so makiert.. und wenn ich nun in wort2 ein wort eingebe soll er dieses wort in einer anderen farbe makieren.. aber die makierung von wort1 soll beibehalten werden..

aber ich hab keinen schimmer wie ich diese wörter suchen und makieren lassen soll...

thx 4 help
 
Hi momoxp,

ich hab dir mal ein kleines Projekt erstellt, damit du die nötigen Schritte nachvollziehen kannst.

Ich habe eine RichTextBox verwendet und die Markierung der Textstellen erfolgt, nachdem du in deinen Textfeldern (wort1-3) die Enter-Taste gedrückt hast.

Es ist noch nicht das gelbe vom Ei, aber damit müßtest du schon was anfangen können.
 

Anhänge

Hi momoxp

ja, da hast du recht.

Nur kannst du, soviel ich weis, keine einzelenen Textstellen in einem normalen Textfeld farblich hervorheben. Dazu mußt du dann schon die RichTextBox nehmen. Und das Kontextmenü kann man ja "nachbasteln".
 
Hi
Und wie bastel ich das nach?
Weil die Funktionen die ich da brauche kann ich auch selber programmieren..
nur wie mach ich das kontext menu?
 
Hallo momoxp,

das mit dem Kontextmenü geht relativ einfach.
Zuerst erstellst du im Menüeditor dein Kontextmenü(ich hab es Kontext gennant), dann doppelklickst du einfach auf deine Richttextbox und wählst als Event "Mousedown".
Hier kommt folgender Code:
Code:
if Button = 2 then
PopupMenu Kontext
end if
Sobald du dein Projekt testest, kannst du mit der rechten Maustaste im Textfeld ein Kontextmenü erscheinen lassen.
Die Aufgaben, wie ausschneiden, kopieren und einfügen kannst du bestimmt selber - hängt ja alles eigentlich mit dem Clipboard zusammen.

Ciao:
Da' Hacker
 
Danke für eure Hilfe :)
Die Aufgaben, wie ausschneiden, kopieren und einfügen kannst du bestimmt selber - hängt ja alles eigentlich mit dem Clipboard zusammen.

Ciao:
Da' Hacker
Ja stimmt die kann ich selber.. aber wie geb ich dem Menü einen namen?
Ich hab da alles erstellt wie Datei und so.. aber das menü hat keinen speziellen namen

wenn ich den code einfüge und es teste.. dann kommt "objekt erforderlich"
 
Ahh habs raus :) danke nochma!

Aber beim makieren der Wörter in der Suchfunktion ist mir gerade aufgefallen.. dass er bei größeren dateien und mehreren fünden ein fehler kommt...
"laufzeit Fehler 6"
Überlauf

Code:
Private Sub wort1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
 Dim test As String
    Dim x As Integer
    
    test = content.Text
    While InStr(test, wort1.Text) > 0
        content.SelStart = InStr(test, wort1.Text) - 1 + x
        content.SelLength = Len(wort1.Text)
        content.SelColor = RGB(255, 0, 0)
        content.SelUnderline = Len(wort1.Text)
        content.SelBold = Len(wort1.Text)
        x = x + InStr(test, wort1.Text) <--- hier kommt der fehler.. 'Überlauf'
        test = Right(test, Len(test) - InStr(test, wort1.Text))
    Wend
End If
End Sub
 
Zuletzt bearbeitet:
Hallo.

Ja, der Code war jetzt aus dem Kopf geschrieben. Bei dir hat wahrscheinlich ein Textfeld mit dem Namen Text1 gefehlt. Aber du hast es ja hinbekommen.

Das mit dem Überlauf ist auch ein Problem bei mir und ich würde genauso gerne die Lösung wissen, wie du!

Also Profis - was stimmt da nicht?

Ciao:
Da' Hacker
 
Zurück