ScintillaGadget()
Syntax
Ergebnis = ScintillaGadget(#Gadget, x, y, Breite, Höhe, @Callback())Beschreibung
Erstellt ein neues Scintilla Editor-Control innerhalb der aktuellen Gadgetliste. InitScintilla() muss erfolgreich aufgerufen worden sein, bevor dieser Befehl verwendet wird.
Unter Windows muss die Scintilla.dll aus dem Ordner "Compilers" des PureBasic-Pakets mit Ihrer Anwendung mitgeliefert werden. Unter OS X oder Linux ist die Bibliothek statisch verknüpft, sodass keine zusätzliche Datei mitgeliefert werden muss.
Parameter
#Gadget Eine Nummer zum Identifizieren des neuen Gadgets. #PB_Any kann verwendet werden, um diese Zahl automatisch zu generieren. x, y, Breite, Höhe Die Position und Dimensionen des neuen Gadgets. @Callback() Die Adresse einer Prozedur, um Ereignisse vom Control zu empfangen. Sie muss wie folgt definiert werden, wobei 'Gadget' die Gadgetnummer des Controls ist und *scinotify auf eine Struktur mit Informationen über das Ereignis zeigt: Procedure ScintillaCallBack(Gadget, *scinotify.SCNotification) ; Ihr Code hier EndProcedure
Rückgabewert
Gibt im Erfolgsfall einen Wert ungleich Null zurück. Wenn #PB_Any als #Gadget Parameter verwendet wurde, dann wird im Erfolgsfall die automatisch generierte Gadget-Nummer zurückgegeben.
Anmerkungen
Die folgenden Ereignisse werden durch EventType() unterstützt:#PB_EventType_RightClickNach der Erstellung können Scintilla-spezifische Befehle mit dem ScintillaSendMessage() Befehl an das Control gesandt werden. Zusätzlich können ebenfalls die gebräuchlichen Gadget-Befehle wie ResizeGadget() oder HideGadget() mit dem Control verwendet werden.
Beispiel
If OpenWindow(0, 0, 0, 330, 90, "ScintillaGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) If InitScintilla() ScintillaGadget(0, 10, 10, 320, 70, 0) ; Ausgabe auf rote Farbe setzen ScintillaSendMessage(0, #SCI_STYLESETFORE, 0, RGB(255, 0, 0)) ; Anfänglichen Text des ScintillaGadgets festlegen *Text = UTF8("This is a simple ScintillaGadget with text...") ScintillaSendMessage(0, #SCI_SETTEXT, 0, *Text) FreeMemory(*Text) ; Der von UTF8() erstellte Puffer muss freigegeben werden, um ein Speicherleck zu vermeiden ; Hinzufügen einer zweiten Zeile mit einem vorherigen Zeilenumbruch Text$ = Chr(10) + "Second line" *Text = UTF8(Text$) ScintillaSendMessage(0, #SCI_APPENDTEXT, Len(Text$), *Text) FreeMemory(*Text) EndIf Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow EndIf
Unterstützte OS
Alle