Einzelnen Beitrag anzeigen

Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#3

AW: [Firemonkey] Styles dynamisch zur Laufzeit ändern

  Alt 26. Jun 2013, 00:12
Ich habe mal auf´s Geradewohl ein bischen herum gespielt:

Delphi-Quellcode:
procedure TFormAbfall.Button1Click(Sender: TObject);
var
  O: TFmxObject;
  Ol: TFmxObject;
  Ob: TFmxObject;
begin
  O := FMX.Types.FindStyleResource('checkboxstyle');
  if not Assigned(O) then
    Exit;
  for Ol in O.Children do
  begin
    if Ol.ClassName = 'TLayoutthen // if Ol.StyleName = 'layout' then ??
    begin
      for Ob in Ol.Children do
      begin
        if Ob.StyleName = 'backgroundthen
        begin
          if Ob is TSubImage then
          begin
            (Ob as TSubImage).Source.Bitmap.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'as.bmp');
            Exit;
          end;
        end;
      end;
    end;
  end;
end;
Naiver weise dachte ich, so ein Hintergrundbild für meine Checkbox zuzuweisen.
Statt dessen wird das ganze Formular verändert (das Bild als Hintergrund für das Formular verwendet (incl. NoneClient) und alles übrige recht verfälscht).

Vielleicht bringt Dich aber ja davon etwas auf die zündende Idee...
Danke für Dein Beispiel. Ich habe es sogar noch ein wenig verkürzt :
Delphi-Quellcode:
procedure SetTabItemIcon(TabItemControl: TTabItem; Bitmap: string);
var
  T: TFmxObject;
begin
  if TabItemControl = nil then Exit;
  T := TabItemControl.FindStyleResource('tabicnfile');
  if (T <> nil) and (T is TImage) then
  begin
    TImage(T).Bitmap.LoadFromFile(Bitmap);
  end;
  TabItemControl.Repaint;
end;
Das funktioniert jetzt. Jetzt brauche ich nur noc, dass ich unter Windows die Bitmaps aus Resourcen laden kann.

EDIT: "ich habe mir ein paar eigene Styles erstellt, die wunderbar funktionieren" ... sehen wolln
Sind noch nicht ganz fertig. Bis jetzt habe ich beim Treeview nur ein Icon eingesetzt und beim TabItem ein Icon eingesetzt.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat