[Gelöst]TextArea->Bestimmtes Markieren

Übersicht BlitzBasic BlitzPlus

Neue Antwort erstellen

 

MCocktail

Betreff: [Gelöst]TextArea->Bestimmtes Markieren

BeitragSa, Feb 02, 2013 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute,

Ich wollte Fragen, wie man einen bextimmten Text in einer TextArea hervorhebt, bzw. markiert.
Falls es nicht möglich ist, gibt es hier vielleicht irgendwelche DLLs die das machen könnten?

(Pseudocode gibt es nicht, da ich nich weiß wie. Confused )

Danke im Vorraus.
MCocktail
  • Zuletzt bearbeitet von MCocktail am Mi, Apr 03, 2013 20:45, insgesamt einmal bearbeitet

ozzi789

BeitragSa, Feb 02, 2013 21:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Also hervorheben kannst du etwas mit FormatTextAreaText indem du die Farbe änderst / die Font kursiv setzt.
Um etwas tatsächlich zu markieren müsstest du zur WinAPI greifen, kann dir aber leider nicht sagen wie (ohne zu googlen Wink )
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Lobby

BeitragSa, Feb 02, 2013 22:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab da mal kurz was geschrieben, also angenommen, du wolltest wirklich Text markieren. So sieht meine Funktion aus BlitzBasic: [AUSKLAPPEN]
Function selectTextAreaText(textarea%, pos%, length%)
endPos = pos + length
If length = -1 Then
endPos = Len(TextAreaText(textarea))
End If
hwnd = QueryObject(textarea, 1)
wMsg = 1024 + 55 ;EM_EXSETSEL
wParam = 0
lParam = CreateBank(8) ;CHARRANGE
PokeInt(lParam, 0, pos)
PokeInt(lParam, 4, endPos)
api_SendMessage(hwnd, wMsg, wParam, lParam)
FreeBank(lParam)
End Function


Und hier noch ein kleiner Testcode BlitzBasic: [AUSKLAPPEN]
window = CreateWindow("Hello World", 200, 200, 400, 300)

textarea = CreateTextArea(0,0,ClientWidth(window), ClientHeight(window), window)
SetGadgetLayout(textarea, 1, 1, 1, 1)

t$ = ""
For i = 0 To 10
t = t + "abcdefghijklmnopqrstuvwxyz" + Chr(13) + Chr(10)
Next
SetTextAreaText(textarea, t)

selectTextAreaText(textarea, 30, 30)

While(True)
WaitEvent()
Select EventSource()
Case window
Select EventID()
Case $803
Exit
End Select
End Select
Wend

FreeGadget(window)


Damit das Ganze läuft musst du sicherstellen, dass du die Funktion SendMessageA in deinen BlitzPlus userlibs eingebunden wird. Dazu muss in dem userlibs Ordner von BlitzPlus irgendeinde .decls Datei bestehen, die mindestens folgendes enthält:
Code: [AUSKLAPPEN]
.lib "user32.dll"

api_SendMessage% (hwnd%, wMsg%, wParam%, lParam*) : "SendMessageA"
TheoTown - Eine Stadtaufbausimulation für Android, iOS, Windows, Mac OS und Linux

Addi

BeitragSo, Feb 03, 2013 1:05
Antworten mit Zitat
Benutzer-Profile anzeigen
@Lobby:
Er möchte Syntaxhighlighting haben.
BP/B3D/BMax : Lerne Java : Früher mal Lite-C : Gewinner BCC 62
 

PhillipK

BeitragSo, Feb 03, 2013 1:39
Antworten mit Zitat
Benutzer-Profile anzeigen
"bzw markiert"
Das ist genau das, was lobby gepostet hat.

Wenn er explizit mit "Syntaxhighlighting" gefragt hätte, hätte sich lobby auch die arbeit sparen können.
Seis drum, beide sachen - farbliche hervorhebung (bzw Formatieren) sowie markieren sind beantwortet ^^

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group