• Страница 1 из 1
  • 1
Работа с EditBox
Nyll
Здравствуйте. Сегодня я расскажу как делать EditBox и как работать с ним. EditBox это поле для ввода.

Инструкция по созданию toc файла - тык
Ссылка на предыдущие статью - тык
Скачать notepad++ - тык
API функции - тык

Давайте рассмотрим "EditBox" на подобии чата. Вы пишите что вам нужно в editbox и жмете "Enter" и оно отправляет сообщение в чат.

Ну чтож начнем. Создадим фрейму на которой будет располагаться EditBox:

Code
myframes = CreateFrame("FRAME","my_Frame",UIParent);


Дальше указываем толщину и высоту фреймы.

Code
myframes:SetWidth(460);

-- Толщина.

Code
myframes:SetHeight(150);

-- Высота.

Задаем текстуру (SetBackdrop) для фреймы.

Code
myframes:SetBackdrop({bgFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Background",  edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Gold-Border",});


Хочу сказать пару слов о текстурах. Вы можете задать их через переменную. Например:

Code
texture = {
      bgFile = "texture",
      edgeFile = "texture",     
}


И в фрейме просто указать название переменной.

Дальше задаем позицию фреймe.

Code
myframes:SetPoint("CENTER");


Теперь можем переходить к самому EditBox.

Создаем фрейму "EditsBox" в типе фреймы указываем "EditBox" и привязываем нашу фрейму к фрейме которую только что делали.

Code
EditsBox = CreateFrame("EditBox",nil,myframes)


Теперь указываем высоту и толщину едитбокса.

Code
EditsBox:SetWidth(300)

-- Толщина.

Code
EditsBox:SetHeight(24)

-- Высота.

Теперь задаем шрифт.

Code
EditsBox:SetFontObject(GameFontNormal)


Дальше указываем текстуру для EditBox.

Code
EditsBox:SetBackdrop(GameTooltip:GetBackdrop())


Добавляем цветов:

Code
EditsBox:SetBackdropColor(0, 0, 0, 0.8)
EditsBox:SetBackdropBorderColor(0.6, 0.6, 0.6, 1)


Указываем расположение едитбокса.

Code
EditsBox:SetPoint("CENTER",myframes,0,5)


Этим мы говорим клиенту что наш едитбокс долен располагаться в фрейме myframes по средине.

Ну и завершающим штрихом указываем функцию.

Code
EditsBox:SetScript( "OnEnterPressed", function() print(EditsBox:GetText()) end)


Данная функция отправляет в print сообщение которое мы указали в едитбоксе. Нажат ли ентер контролирует функция "OnEnterPressed". Хочу напомнить что функции в фрейме обязательно нужно закрывать скобочкой.
Например:

Code
end)


На этом все. Удачи вам.

[download]Шаблон - для WoW 3.3[/download]
Маме беркута привет!
Сообщение # 1 отредактировано Nyll - Воскресенье, 29.04.2012, 11:14
Mixek
✓Копатель Однодневок
Довольно полезая информация , спасибо, сейчас буду пробывать...
Nyll а тот адон готов? про ги цвет?
https://vk.com/mixek
Сообщение # 2 написано 28.04.2012 в 17:01
Kante
Born To be Free
Давай в лс кину laugh
Сообщение # 3 написано 28.04.2012 в 21:27
  • Страница 1 из 1
  • 1
Поиск: