EditorGadget und Syntax-Highlighting

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Alves
Beiträge: 1208
Registriert: 19.04.2006 18:24
Kontaktdaten:

Beitrag von Alves »

Achso, du weißt wie mans färbt? Und brauchstnur die Suchprozedur? Da kann dir bestimmt jemand helfen. Könnte ich auch, hab aber grad keine Zeit, sy.
JohnMC
Beiträge: 85
Registriert: 06.01.2006 17:04
Wohnort: http://www.j-soft.de.ms
Kontaktdaten:

Beitrag von JohnMC »

genau, nur die suchprozedure.
Nur ich weis nicht, wie ich die machen kann. Alle meine Versuche sind gescheitert :(
Naja kann mir jmnd eine schreiben??

Grüße JohnMC
Benutzeravatar
Alves
Beiträge: 1208
Registriert: 19.04.2006 18:24
Kontaktdaten:

Beitrag von Alves »

ERstmal würd ich Getgadgettext() verwenden, und dann findstring() dann diversere len und left und right befehle. Wenn ich noch Zeit habe, dnan uche ich noch was raus.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

JohnMC hat geschrieben:genau DAS klapptbei mir nicht....also ich brauch eigentlich nur ne procedure die mir nach einem "<"-zeichen sucht, und wenn sie eins gefunden hat, das nächstbeste ">"-zeichen findet und beide positionen zurückgibt. dann kann ichs ja färben!

achja, welche parameter müssen bei dem folgenden sendmessage_() hin:

Code: Alles auswählen

sendmesssage_(gadgetid(),#em_exstesel,??,??)
also die parameter wo ich durch ?? ersetzt habe, bei denen weis ich nicht was da rein kommt....

grüße JohnMC

Code: Alles auswählen

Procedure Editor_Select(Gadget, LineStart.l, CharStart.l, LineEnd.l, CharEnd.l)
  Protected sel.CHARRANGE
  sel\cpMin = SendMessage_(GadgetID(Gadget), #EM_LINEINDEX, LineStart, 0) + CharStart - 1
  If LineEnd = -1
    LineEnd = SendMessage_(GadgetID(Gadget), #EM_GETLINECOUNT, 0, 0)-1
  EndIf
  sel\cpMax = SendMessage_(GadgetID(Gadget), #EM_LINEINDEX, LineEnd, 0)
  If CharEnd = -1
    sel\cpMax + SendMessage_(GadgetID(Gadget), #EM_LINELENGTH, sel\cpMax, 0)
  Else
    sel\cpMax + CharEnd - 1
  EndIf
  ProcedureReturn SendMessage_(GadgetID(Gadget), #EM_EXSETSEL, 0, @sel)
EndProcedure
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
JohnMC
Beiträge: 85
Registriert: 06.01.2006 17:04
Wohnort: http://www.j-soft.de.ms
Kontaktdaten:

Beitrag von JohnMC »

@alves:
hattest du jetzt mal zeit oder kannst du dir mal kurz zeit nehmen für die suchprocedure??

THX
Mb Grüße JohnMC
Antworten