Verfasst: 24.04.2006 18:17
Hmm, schade dass Fred bei PB4.0 nix neues mehr hinzufügen will so kurz vr der Final... Sonst hätte er womöglich das Scintilla-Gadget noch schnell einbaun können... 
Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Der Download wurde jetzt in das Example-Paket zu CreateGadget gepackt.Liesmich.txt hat geschrieben: ScintillaGadget Beschreibung:
Zum nutzen diese Gadget binden Sie einfach die "Scintilla.pbi" in den Source ein.
Erforderliche Dateien: Scintilla.pbi
Scintilla.dll (befindet sich im Compilers-Verzeichnis von PureBasic)
Scintilla_res.pb (enthält die Interface-Definition, sowie Konstanten und Structuren)
Scintilla_Macro.pbi (enthält Macros zur Nutzung mit dem Interface, entsprechen in etwa
den Funktionen, die in der Scintilla.pbi von GPI enthalten sind)
CreateGadget.pbi (wird für die Registrierung als Gadget benötigt!)
Syntax:
Ergebnis = ScintillaGadget(#Gadget, x, y, Breite, Hoehe [, Flags]) ; #PB_Any wird unterstützt!
Besondere Funktionen:
*Ergebnis.Scintilla = GetGadgetAttribute(#Gadget,#PB_SCINTILA_INTERFACE)
Das Ergebnis ist ein Pointer zum Interface, wie weiter unten beschrieben
Objektvariablen:
================
hWnd.l Handel des Controls
Id.l Gadget
pSCIWndData.l Directpointer
pSCIMsgProc.l Adresse der "Scintilla_DirectFunction"
Encoding.l Flag für UTF-8, 1 = UTF-8, 0 = ASCII
Methoden:
=========
SciMsg(Msg.l, param1.l = 0, param2.l = 0) Messages an das Control senden! Verwendet ScintillaDirectFunction
Load(FileName.s) Textdatei ins Control laden (autom. Umschaltung UTF-8)
Save(FileName.s) Text im Contol in eine Datei speichern (autom. Umschaltung UTF-8)
GetCurrentWord() Ermittelt das Wort, auf dem sich der Cursor befindet
SetStyle(style.l, fore.l, back.l, Size.l = 0, fontname.s = "") Einen Style setzen
SetCallback(*ProcAdress) NotifyCallback für Gadget (siehe Example)
JaThorsten1867 hat geschrieben:Wäre es möglich den Befehl "CountGadgetItems(#Gadget)" noch hinzufügen?
Du solltest diesen Code auch besser nicht mehr verwenden, da gibtsThorsten1867 hat geschrieben: Leider durchsteige ich den Code noch nicht ganz, um das selber zu machen.
Code: Alles auswählen
XIncludeFile #PB_Compiler_Home + "Includes\Scintilla_Include.pbi"
If Not InitSciEdit() : End : EndIf
If Not OpenWindow(0, #PB_Ignore, 0, 640, 480, "") : End : EndIf
If CreateGadgetList(WindowID(0))
SciEditGadget(0, 0, 0, 0, 0)
EndIf
Text.s = "Hallo die Enten" + #CRLF$
Text + "Holla der Rucksack brennt" ; 2 Zeilen
SetGadgetText(0, text)
Debug SCI_GetLineCount(0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_SizeWindow
ResizeGadget(0, #PB_Ignore, #PB_Ignore, WindowWidth(0), WindowHeight(0))
EndSelect
ForEverDas schaut ziemlich gut aus mit der Includeversion.ts-soft hat geschrieben:Die Itembefehle vom EditorGadget sind zwar hilfreich bei einfachen Textausgaben, aber sobald Edit-Funktionen im Spiel sind, bringt es nicht viel. Im ScintillaGadget so etwas zu implementieren wäre IMHO nicht sehr sinnvoll.