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_RightClick
Nach 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

<- InitScintilla() - Scintilla Inhaltsverzeichnis - ScintillaSendMessage() ->