2013-11-21 4 views
0

Мне нужна форма для тестирования стилей. И подойдите к каждому стилю только в этой форме. Но TStyleManager.SetStyle применяется ко всем формам приложения. Как я могу применить стиль приложения только в текущей форме?Delphi XE3. TStyleManager.SetStyle работает для всех форм в приложении. Как установить стиль только в 1 форме?

procedure TForm1.FormCreate(Sender: TObject); 
    var styleName: String; 
    begin 
     ListBox1.Items.Clear; 
     for styleName in TStyleManager.StyleNames do 
     ListBox1.Items.Add(styleName); 
    end; 
....... 
    procedure TForm1.ListBox1Click(Sender: TObject); 
    begin // this applies to all forms in application, I want apply only this form! 
     TStyleManager.SetStyle(ListBox1.Items[ListBox1.ItemIndex]); 
    end; 
+0

[ 'Как отключить стили VCL в Delphi'] (http://stackoverflow.com/a/8598961/576719). –

ответ

4

Стили VCL являются прикладными и не предназначены для применения только к конкретной форме. Но вы можете отключить стили в формах и элементах управления, удаляя элементы из свойства StyleElements.

Теперь по вашему вопросу «I need a form for testing Styles...», может быть, вы ищете в предварительного формы для стилей VCL, и если это так, вы можете попробовать эту статью Exploring Delphi XE2 – VCL Styles Part III, которая объясняет, как создать предварительный просмотр для стилей VCL. Также проект VCL Styles Utils включает в себя компонент, называемый TVCLStylesPreview и sample application, как его использовать.

Проверить это образец изображения компонента

enter image description here