Vclskin FAQ
1 Do the components have to be
placed on each form in the project? (there are 14 forms)
No, you can place only one Tskindata on your mainform,
Vclskin can automatically skin all forms in your project.
2 How to skin embeded form ?
Vclskin can't skin embeded form automatically, you
need skin it manually. there is a example called 'NestedForm'
in demo package that skin embeded form and frame at
runtime.
3 Does Vclskin support Mainmenu change at runtime ?
You need update mainmenu manually. code as follow:
procedure TForm1.Button1Click(Sender: TObject);
begin
window1.visible:= not window1.visible;
skindata1.UpdateMainMenu(true); //---update mainmenu
end; |
4 How to skin dynamic control
?
You need skin dynamic control manually. code as follow:
control:=Tmycontrol.create(form1);
skindata1.UpdateSkincontrol(form1); // add this
line to skin dynamic control. |
5 How to skin dockable form ?
Vclskin supprot dockable form. example code as follow:
procedure TDockableForm.FormShow(Sender:
TObject);
begin
if MainForm.skindata1.active then MainForm.skindata1.skinform(handle);
end;
|
6 How to skin dynamic popup menu
?
example code as follow:
popup:=Tpopupmenu.create(form1);
..... add menuite
skindata1.UpdateMenu(form1); //add this line
popup.popup(x,y); |
7 How to skin dynamic form ?
Vclskin can skin dynamic form , but it don't skin embeded
form automatically. click here to
see how to skin embeded form.
8 File
not found 'c:\program files\borland\delphi7\SM\winskindata.pas'
Dcu file format of Delphi7 trial version is
different with Delphi7 por version.
if you use delphi7 pro, you can install demo package
in vclskin2.zip.
if you use delphi7 trial version, you should install
demo package in D7trial.zip.
9 EInvalidOperation 'Control has
no parent window' with FastReport ?
set TSkindata.skincontrols.xcFastReport = true
to solve this problem.
10 EInvalidOperation 'Control has
no parent window' with ReportBuilder ?
You can disable skin seletected form on TSkindata.OnformSkin
event, example code :
procedure Tform1.SkinData1FormSkin(Sender:
TObject;
aName: String; var DoSkin: Boolean);
begin
//'TppPrintPreview' is form name that disable skin
if aName='TppPrintPreview' then doskin:=false;
end; |
11 Access Colors in skin file
you can access skin color by Tskindata.colors[].
for example , the background color of form is : skindata.Colors[csButtonFace].
TShemeColor=(csText,csTitleTextActive,csTitleTextNoActive,
csButtonFace,csButtonText,
csButtonHilight,csButtonlight,csButtonShadow,csButtonDkshadow,
csSelectText,csSelectBg,csHilightText,csHilight,
csMenuBar,csMenuBarText,csMenuText,csMenubg,
csScrollbar,csTextDisable);
TShemeColors=array[csText..csTextDisable] of
Tcolor;
Skindata.Colors: TShemeColors;
|
12 Could user define every aspect
of visual apearance ?
you can modify or build skin file using skin
builder.
13 How to disable skin a form
or control?
set form.tag=99 to disable skin this form.
14 How to skin to an application
but keep the menu bar and title bar the default Windows
standard?
set TSkindata.skincontrols.xcMainmenu = false
.
|