主题控制器

TsgcHTMLThemeController / TsgcHTMLThemeBuilder — 管理所有页面的明亮、暗黑和系统主题,并为自定义品牌颜色生成 Bootstrap CSS 变量块。

TsgcHTMLThemeController & TsgcHTMLThemeBuilder

TsgcHTMLThemeController 读取 cookie 或查询参数以确定要激活的 Bootstrap 主题,并注入所需的初始化脚本。TsgcHTMLThemeBuilder 生成一个 <style> 块,用您的品牌颜色覆盖 Bootstrap CSS 变量。

组件类

TsgcHTMLThemeController, TsgcHTMLThemeBuilder

用途

明/暗主题切换 & 自定义 CSS

语言

Delphi, C++ Builder, .NET

切换主题,注入自定义颜色

使用 TsgcHTMLThemeController 读取 cookie 或查询参数并应用正确的 Bootstrap 主题属性。使用 TsgcHTMLThemeBuilder 为您的品牌颜色生成自定义 CSS 变量块。

uses
  sgcHTML_ThemeController;

// Detect theme from request cookie:
var
  oTheme: TsgcHTMLThemeController;
begin
  oTheme := TsgcHTMLThemeController.Create(nil);
  try
    oTheme.CookieName    := 'app_theme';
    oTheme.DefaultTheme  := htSystem;
    // Inject into the Bootstrap template:
    oTemplate.HeadContent :=
      oTemplate.HeadContent + oTheme.GetThemeScript(ARequest);
  finally
    oTheme.Free;
  end;
end;

// Generate brand CSS variables:
var
  oBuilder: TsgcHTMLThemeBuilder;
begin
  oBuilder := TsgcHTMLThemeBuilder.Create(nil);
  try
    oBuilder.PrimaryColor   := '#7C3AED';
    oBuilder.SecondaryColor := '#1E293B';
    oTemplate.HeadContent :=
      oTemplate.HeadContent + oBuilder.Build;
  finally
    oBuilder.Free;
  end;
end;
TsgcHTMLThemeController *oTheme = new TsgcHTMLThemeController(NULL);
try
{
  oTheme->CookieName   = "app_theme";
  oTheme->DefaultTheme = htSystem;
  oTemplate->HeadContent += oTheme->GetThemeScript(ARequest);
}
__finally { delete oTheme; }

TsgcHTMLThemeBuilder *oBuilder = new TsgcHTMLThemeBuilder(NULL);
try
{
  oBuilder->PrimaryColor = "#7C3AED";
  oTemplate->HeadContent += oBuilder->Build();
}
__finally { delete oBuilder; }
var themeCtrl = new TsgcHTMLThemeController();
themeCtrl.CookieName   = "app_theme";
themeCtrl.DefaultTheme = TsgcHTMLTheme.htSystem;
template.HeadContent += themeCtrl.GetThemeScript(request);

var themeBuilder = new TsgcHTMLThemeBuilder();
themeBuilder.PrimaryColor = "#7C3AED";
template.HeadContent += themeBuilder.Build();

关键属性和方法

最常用的成员。

TsgcHTMLThemeController.CookieName

存储用户主题偏好的 cookie 名称(htLight / htDark / htSystem)。

TsgcHTMLThemeController.DefaultTheme

当没有 cookie 或查询参数时的后备主题。

GetThemeScript

从请求中读取当前主题(cookie 或 ?theme= 参数),并返回要注入 <head> 的 Bootstrap 主题初始化脚本。

TsgcHTMLThemeBuilder.PrimaryColor

用您的品牌颜色覆盖 Bootstrap 的 --bs-primary CSS 变量。

TsgcHTMLThemeBuilder.CustomVars

追加到生成的 <style> 块中的原始 CSS 自定义属性声明,可用于任何 Bootstrap 或应用级变量。

TsgcHTMLThemeBuilder.Build

返回包含 :root 覆盖的 <style> 块;将其赋值给 TsgcHTMLTemplate_Bootstrap.HeadContent

继续探索

在线帮助此组件的完整 API 参考和使用指南。
所有 sgcHTML 组件浏览 60+ 组件的完整功能矩阵。
下载免费试用版30 天试用版包含 60.HTML 演示项目。
价格包含完整源代码的单用户、团队和站点许可证。

准备好开始了吗?

下载免费试用版,开始在 Delphi、C++ Builder 和 .NET 中构建 Web UI。