Registriert seit: 29. Jan 2009
297 Beiträge
Delphi 12 Athens
|
AW: Quellcode von VCLStyleViewer u. FMXStyleViewer
28. Nov 2015, 21:16
Hier meine Lösungen:
vcl-Variante
Delphi-Quellcode:
procedure TFStyles.Set_Styles( const FileName: string);
var
StyleInfo: TStyleInfo;
begin
if sametext(FileName, ' DEFAULT') then // DEFAULT -> Betriebssystem
TStyleManager.SetStyle(' Windows') // Einstellung unter den Projektoptionen auf WINDOWS lassen
else
begin
if TStyleManager.IsValidStyle(FileName, StyleInfo) then begin // Wenn FileName nicht valide ist, dann wir eine Exception geworfen
try
TStyleManager.SetStyle(StyleInfo. Name);
except
TStyleManager.SetStyle(TStyleManager.LoadFromFile(FileName)); // OnShow wird ausgelöst
end;
end;
end;
end;
FMX-Varainte
Leider fehlt mir die Defaut Stylebezeichner für iOS und Android. Wenn die Jemand kennt, dann her damit.
Delphi-Quellcode:
procedure TForm1.Set_Styles(FileName: string);
begin
if sametext(FileName, ' DEFAULT') then // DEFAULT -> Betriebssystem
begin
try
if TOSVersion. Platform = pfWindows then
begin
FileName:= ' win' +TOSVersion. Name.Substring(TOSVersion. Name.Length-2).trimleft+ ' style'; // Windows 7,8,10
if FindResource(HInstance, PChar(FileName), RT_RCDATA) <> 0 then
TStyleManager.SetStyle(TStyleStreaming.LoadFromResource(HInstance, FileName, RT_RCDATA));
end
else // if TOSVersion.Platform = (pfWindows, pfMacOS, pfiOS, pfAndroid, pfWinRT, pfLinux); then
raise Exception.Create(format(' Betriebssystem "%s" wird derzeit nicht unterstützt.', [TOSVersion.ToString]));
except
end;
end
else
begin
TStyleManager.SetStyleFromFile(FileName);
end;
end;
|
|
Zitat
|