Cita:
Empezado por danielmj
A ver con lo que tu me dices, ya contare a ver que tal va. Ya esta toda la aplicacion acabada y hace lo que tiene que hacer, y me da rabia que se vea tan fea en la maquina del cliente. un saludo y gracias.
|
Hola danielmj.
AlphaContros proporciona una manera fácil y rápida de manejar los skins. Te indico:
Código Delphi
[-]uses sSkinManager;
procedure TF_Main.sSB_ChangeSkinClick(Sender: TObject);
var cPathSkins: String;
begin
cPathSkins := ExtractFilePath(Application.ExeName) + '\Skins\';
if (DirectoryExists(cPathSkins)) and not (DirectoryIsEmpty(cPathSkins)) then
SelectSkin(DMMain.TsSkinManager1); else
sShowMessage('Archivo no encontrado','No se han encontrado los ficheros de skins.' + #13 + 'El skin "Topaz" es el activo por defecto');
DMMain.TsSkinManager1.SkinName := 'Topaz (Internal)';
end;
with DMMain.T_SETTINGS do begin
Edit;
DMMain.T_SETTINGS.FieldByName('SkinName').AsString := DMMain.TsSkinManager1.SkinName;
Post;
end;
F_Main.sLabel_SkinActive.Caption := 'Skin: ' + DMMain.TsSkinManager1.SkinName;
end;
function DirectoryIsEmpty(Directory: string): Boolean;
var sr: TSearchRec;
i: Integer;
begin
Result := False;
FindFirst(Directory + '*', faAnyFile, sr);
for i := 1 to 2 do
if ((sr.Name = '.') or (sr.Name = '..')) then
Result := (FindNext(sr) <> 0);
SysUtils.FindClose(sr);
end;
DMMain.TsSkinManager1.SkinName := Trim(DMMain.T_SETTINGS.FieldByName('SkinName').AsString);
Asegúrate de que la propiedad TsSkinManager1.Active está a true.
Espero que con esto te haga más fácil lo que te propones. A mí me funciona muy bien.
Un saludo.