GL2D_GUI
1.0.0
在Delphi 10.4社區收集
ps: Отрисовка использует старый формат вывода изображения через glBegin/glEnd, в принципе для своих задач он подходит, вершин которые передаются с CPU->GPU не так много как с 3D объектами. Возможно когда нибудь и будет переделываться на буффер VBO
文件列表(與版本2.14相關):
| 文件 | 描述 |
|---|---|
GUIv2 | Основная папка |
| dlguifont.pas | 使用字體工作 |
| dlguiform.pas | 與組件列表的形式 |
| dlguiformlist.pas | 表格列表他們的顯示(formlist.draw) |
| dlguiobject.pas | 零件和表單繼承的主要類 |
| dlguimouse.pas | 顯示鼠標光標的組件 |
| dlguipaletteheelper.pas | 根據坐標,與調色板合作的模塊確定了調色板中的顏色 |
| dlguitypes.pas | 模塊中使用的類型和類 |
| dlguivertexcontroller.pas | 用於與對象(組件)中峰的模塊 |
| dlguixmlserial.pas | XML格式的GUI類序列化 |
components | Компоненты |
| 組件 dlguibevel.pas | 框架 |
| 組件 dlguicheckbox.pas | chekbox(開關) |
| 組件 dlguicombobox.pas | 開場列表 |
| 組件 dlguieditbox.pas | 文本輸入字段(單線) |
| 組件 dlguiimage.pas | 圖像 |
| 組件 dlguilabel.pas | 文字(可以是多行) |
| 組件 dlguilistbox.pas | 行列表 |
| 組件 dlguimainmenu.pas | 主菜單 |
| 組件 dlguipanel.pas | 沒有組件的面板,可以用斜角(幀)代替 |
| 組件 dlguiprogressbar.pas | 加載指示器 |
| 組件 dlguiiradiobutton.pas | 選擇開關 |
| 組件 dlgutable.pas | 桌子 |
| 組件 dlguitrackbar.pas | 使用滑塊選擇數值 |
| 組件 dlguitracker.pas | 跟踪器(水平/垂直)用於(ComboBox,ListBox,Table)等組件... |
Textures | Модули для работы с текстурами |
| 紋理 dltextureloader.pas | 下載格式紋理的模塊(BMP,JPG,JPEG,TGA,PNG) |
| 紋理 dltexturelist.pas | 紋理管理(搜索,加法,刪除) |
OpenGL | Модуль для работы с OpenGL |
| opengl dlopengl.pas | 使用框架OpenGL |
Image | Список изображений |
| 圖像 logo.png | 標識 |
| 圖像 guipalette.bmp | 組件的調色板 |
| 圖像 consolas | Consolas字體 |
| 圖像 gadugi | 字體Gadugi |
| 圖像 Verdana | 字體Verdana |
所有組件均從dlguiobject.tguiobject類繼承,用於下載紋理,使用模塊
要開始使用GUI,您需要
形式:
uses dlGUIForm;
...
var Form : TGUIForm; // Класс формы
...
// Загрузка текстур
TextureList.Add( ' GUI ' , ' .ImageGUIPallette.bmp ' , GL_RGB, GL_MODULATE, GL_NEAREST, True, RGB( 252 , 52 , 252 ));
TextureList.Add( ' GUIFont ' , ' .ImageVerdanaVerdana 8.fgl.png ' , GL_RGBA, GL_MODULATE, GL_LINEAR);
...
Form:= TGUIForm.Create( ' FormName ' , TextureList.Search( ' GUI ' )); // Создание класса формы
Form.Caption:= ' Заголовок формы ' ;
Form.SetRect( 0 , 0 , 200 , 100 ); // Начальная позиция и размер формы
Form.Font.SetTextureLink(TextureList.Search( ' GUIFont ' )); // Установка шрифта формы
// Добавление формы в список форм
FormList.AddForm(Form);
... (render)
FormList.Draw; При добавлении на форму компонентов если у компонента не указана текстура и шрифт, то она назначается такой же как у формы
按鈕(按鈕):
uses dlGUIButton;
...
var Button: TGUIButton;
...
Button:= TGUIButton.Create; // Создание класса кнопки
Button.SetRect( 10 , 10 , 200 , 10 ); // Позиция и размер кнопки
Button.Caption:= ' Текст кнопки ' ; // Текст
Button.OnClick:= Proc; // Вызываемая процедура
// Включить всплывающую подсказку
Button.Hint.Enable:= True;
Button.Hint.Text := ' Текст всплывающей подсказки ' ;
Button.Flat := False; // Скрыть/Показать рамку кнопки
// Если добавляем на форму
Form.AddComponent(Button);
// Если просто нужно отобразить
Button.Draw;輸入字段:
uses dlGUIEditBox;
...
var EditBox: TGUIEditBox;
...
EditBox:= TGUIEditBox.Create;
EditBox.SetPos( 10 , 10 , 200 , 20 );
Form.AddComponent(EditBox);