Seite 1 von 1

editor mit Worterkennung

Verfasst: 08.08.2005 12:46
von sen-me

Code: Alles auswählen

If OpenWindow(0,0,0,800,600,#PB_Window_TitleBar|#PB_Window_ScreenCentered,"Test") And CreateGadgetList(WindowID())
 EditorGadget(0,0,0,800,600)
 Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
wie kann ich nun bestimmte Wörter z.b. "weil" fett und farbig machen? den andren text schwarz

und z.b. alles was in " " steht nur farbig machen?

beispiel:
Text:
weil der string "weil ich schlief" nicht definiert ist
sollte so aussehen:
weil der string "weil ich schlief" nicht definiert ist

Verfasst: 08.08.2005 13:01
von Hroudtwolf
Schau mal auf der PureArea. Dort findest du die Syntax-Library von Dark Dragon.

Verfasst: 08.08.2005 14:51
von sen-me
cool danke, aber gibts auch ne funktion die !komplette wörter! überprüft? weil if wird nur rot dargestellt, wen If da steht

(wie in pb halt
wenn man if schreibt wirds automatisch If)
und endif ist dan auch nicht end if sondern eben halt endif (also muss er ganze wörter überprüfen!

Verfasst: 08.08.2005 17:07
von DarkDragon
sen-me hat geschrieben:cool danke, aber gibts auch ne funktion die !komplette wörter! überprüft? weil if wird nur rot dargestellt, wen If da steht

(wie in pb halt
wenn man if schreibt wirds automatisch If)
und endif ist dan auch nicht end if sondern eben halt endif (also muss er ganze wörter überprüfen!
Kann die Library auch ;) musst einfach CorrectWordsLine oder CorrectWordsAll benutzen und erst dann highlighten.

Verfasst: 08.08.2005 18:09
von sen-me
die lib scheints aber nicht zu können ??? (zumindest erkennt PB nicht die funktion, weil er ja in der statusbar normalerwqeise die parameters anzeigt)

Verfasst: 08.08.2005 18:11
von DarkDragon
sen-me hat geschrieben:die lib scheints aber nicht zu können ??? (zumindest erkennt PB nicht die funktion, weil er ja in der statusbar normalerwqeise die parameters anzeigt)
http://www.purearea.net/pb/showcase/sho ... ion=myProj

Da ist der source doch dabei, dann kannste ja auch gleich den nehmen.

[EDIT]
aba da stört mich noch eins, man kann nicht den button gedrückt halten und man siehts ergebnis direkt
Liegt am WindowEvent() mit Delay(20):

Code: Alles auswählen

;CorrectWords is for the correction of "endif" to "EndIf"...

#WindowWidth  = 640
#WindowHeight = 480
#WindowFlags  = #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_SystemMenu

hWnd = OpenWindow(0, 0, 0, #WindowWidth, #WindowHeight, #WindowFlags, "SyntaxHighlighting")

CreateGadgetList(WindowID())
EditorGadget(0, 0, 0, 640, 460)
HideGadget(0, 1)

CreateStatusBar(0, WindowID())
AddStatusBarField(5000)

SetGadgetText(0, "If MessageRequester("+Chr(34)+Chr(34)+", "+Chr(34)+"i = (i + (1 - 2))"+Chr(34)+", #PB_MessageRequester_YesNo) = 6"+Chr(10)+"i = (i + (1 - 2))"+Chr(10)+"EndIf")

ClearHighlightingAll(0, RGB(0, 0, 0), 10, "Arial", 0)
CorrectWordsAll(0, "If_End_EndIf_Repeat_Until_Repeat_Until_Forever_While_Wend_(_)_-_+_=_<_>_|_0_1_2_3_4_5_6_7_8_9_/_*_%_&_[_]_:_!_"+Chr(34)+"", "_")
SyntaxHighlightingAll(0, "If_End_EndIf_Repeat_Until_Repeat_Until_Forever_While_Wend", "_", RGB(255, 0, 0), RGB(255, 255, 255), 10, "Arial", #CFM_BOLD)
SyntaxHighlightingAll(0, "(_)_-_+_=_<_>_|_0_1_2_3_4_5_6_7_8_9_/_*_%_&_[_]_:_!_"+Chr(34)+"", "_", RGB(0, 0, 255), RGB(255, 255, 255), 10, "Arial", 0)
HideGadget(0, 0)

RemoveKeyboardShortcut(0, #PB_Shortcut_Tab)

Repeat
  StatusBarText(0, 0, GetCurrentWritingWord(0))
  
  NewText.s = GetGadgetText(0)
  If OldText.s <> NewText.s
    ClearHighlightingLine(0, RGB(0, 0, 0), 10, "Arial", 0)
    CorrectWordsLine(0, "If_End_EndIf_Repeat_Until_Repeat_Until_Forever_While_Wend_(_)_-_+_=_<_>_|_0_1_2_3_4_5_6_7_8_9_/_*_%_&_[_]_:_!_"+Chr(34)+"", "_")
    SyntaxHighlightingLine(0, "If_End_EndIf_Repeat_Until_Repeat_Until_Forever_While_Wend", "_", RGB(255, 0, 0), RGB(255, 255, 255), 10, "Arial", #CFM_BOLD)
    SyntaxHighlightingLine(0, "(_)_-_+_=_<_>_|_0_1_2_3_4_5_6_7_8_9_/_*_%_&_[_]_:_!_"+Chr(34)+"", "_", RGB(0, 0, 255), RGB(255, 255, 255), 10, "Arial", 0)
    OldText = NewText
  EndIf
  
  Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
End

Verfasst: 08.08.2005 18:13
von sen-me
die scheint aktueller zu sein

edit:
aba da stört mich noch eins, man kann nicht den button gedrückt halten und man siehts ergebnis direkt