getStyle
Category: Style Management
Namespace: web.styles.getStyle
Description
Gets the currently active VCL style name. VCL styles control the visual appearance of the application window and controls.
Syntax
const styleName = await web.styles.getStyle();
Parameters
None
Returns
Promise<string> - Returns a promise that resolves with the name of the currently active style
Examples
Simple example
const currentStyle = await web.styles.getStyle();
console.log('Current style:', currentStyle);
// Output: "Windows10"
Check current theme
const style = await web.styles.getStyle();
if (style === 'Windows10') {
console.log('Using light theme');
} else if (style.includes('Dark')) {
console.log('Using dark theme');
}
Save user preference
// Save current style to registry for next session
const currentStyle = await web.styles.getStyle();
await web.registry.writeValue({
keyPath: 'Software\\MyApp\\Settings',
valueName: 'PreferredStyle',
value: currentStyle
});
console.log('Style preference saved:', currentStyle);
Detect style changes (polling)
// Since there are no change events, poll to detect style changes
let lastStyle = await web.styles.getStyle();
setInterval(async () => {
const currentStyle = await web.styles.getStyle();
if (currentStyle !== lastStyle) {
console.log('Style changed from', lastStyle, 'to', currentStyle);
lastStyle = currentStyle;
// Update UI or perform other actions
updateThemeUI(currentStyle);
}
}, 1000); // Check every second
Use Cases
- Get the current application theme/style
- Save user's style preference
- Display current theme in settings UI
- Check which style is active before making changes
- Implement theme-aware features
Notes
- Returns the internal VCL style name (e.g., "Windows10", "Glow", "Midnight Express Green")
- Name format differs from
listStyles():getStyle()returns the internalTStyleManager.ActiveStyle.Name(may contain spaces), whilelistStyles()returns resource names (typically uppercase, may use underscores instead of spaces). For comparison, normalize both by stripping spaces/underscores and comparing uppercase. - Returns empty string (
"") only if there's an error or the style system is unavailable - Default style is determined by the WebExeBuilder project settings, or by the user's
vcltheme.txtpreference file if present - The returned string exactly matches Delphi's
TStyleManager.ActiveStyle.Nameproperty - Styles must be embedded in the application at compile time
- Available styles are determined by the WebExeBuilder project settings
- No change events: There is no automatic notification when the style changes - use
setInterval()if you need to detect changes - Backend retrieves this synchronously from TStyleManager, but JavaScript API wraps it in a Promise for consistency