PureBasic

ScintillaGadget()

Синтаксис

Result = ScintillaGadget(#Gadget , x , y , Width , Height , @Callback())

Описание


Создаёт новый элемент управления - Редактор Scintilla, в текущем списке Гаджетов (GadgetList). Прежде чем использовать эту команду, необходим успешный вызов InitScintilla().

Параметры

#Gadget Номер для идентификации нового Гаджета. В качестве этого параметра можно использовать значение #PB_Any, чтобы сгенерировать этот Номер автоматически.
x, y, Width, Height Позиция и размеры нового Гаджета.
@Callback() Адрес процедуры, получающей события от элемента управления. Она должна быть определена следующим образом, где 'Gadget' это Номер Гаджета элемента управления, а указатель *scinotify указывает на структуру с информацией о событии:

ProcedureDLL ScintillaCallBack(Gadget, *scinotify.SCNotification)
    ; Здесь Ваш код.
EndProcedure

Возвращаемое значение

Возвращает не нулевое значение в случае успешного создания Гаджета, в противном случае возвращает ноль. Если в качестве параметра #Gadget использовалось значение #PB_Any, то в случае успеха, возвращаемым значением будет сгенерированный Номер Гаджета.

Комментарии

Следующие события поддерживаются через EventType():
  #PB_EventType_RightClick
После создания элемента управления, можно отправлять к нему специфичные для Scintilla сообщения командой ScintillaSendMessage(). Кроме того, с элементом управления можно использовать общие команды Гаджетов наподобие ResizeGadget() или HideGadget().

Пример

If OpenWindow(0, 0, 0, 330, 90, "ScintillaGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

    If InitScintilla()
        ScintillaGadget(0, 10, 10, 320, 70, 0)

        ; Вывод установлен на красный цвет
        ScintillaSendMessage(0, #SCI_STYLESETFORE, 0, RGB(255, 0, 0))

        ; Задайте исходный текст в ScintillaGadget
        *Text=UTF8("Это простой ScintillaGadget с текстом... ")
        ScintillaSendMessage(0, #SCI_SETTEXT, 0, *Text)
        FreeMemory(*Text) ; Буфер, созданный UTF8 (), должен быть освобожден, чтобы избежать утечки памяти

        ; Добавление второй строки текста с разрывом строки спереди
        Text$ = Chr(10) + "Вторая строка"
        *Text=UTF8(Text$)
        ScintillaSendMessage(0, #SCI_APPENDTEXT, Len(Text$), *Text)
        FreeMemory(*Text)
    EndIf

    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

Поддерживаемые OS

Все

<- InitScintilla() - Оглавление Scintilla - ScintillaSendMessage()->