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():После создания элемента управления, можно отправлять к нему специфичные для Scintilla сообщения командой ScintillaSendMessage(). Кроме того, с элементом управления можно использовать общие команды Гаджетов наподобие ResizeGadget() или HideGadget().#PB_EventType_RightClick
Пример
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
Все