Einzelnen Beitrag anzeigen

Pfaffe

Registriert seit: 29. Jan 2009
297 Beiträge
 
Delphi 12 Athens
 
#8

AW: Quellcode von VCLStyleViewer u. FMXStyleViewer

  Alt 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;
  Mit Zitat antworten Zitat