Einzelnen Beitrag anzeigen

michaelg

Registriert seit: 20. Apr 2008
87 Beiträge
 
#7

AW: FMX - ListView - ItemAppearance - Runtime

  Alt 17. Feb 2021, 14:59
Moin,

stand gerade einem sehr ähnlichen Problem. Ich hatte ein Listview mit DynamicAppearance designed und wollte, dass die Spaltenbreiten sich vergrößern, wenn man im Querformat ist.

Bei ItemDetailAppearance braucht man nur:
Code:
  lv.ItemAppearanceObjects.ItemObjects.Text.PlaceOffset.X:=0;
  lv.ItemAppearanceObjects.ItemObjects.Text.Width:=lv.Width-2;

  lv.ItemAppearanceObjects.ItemObjects.Detail.PlaceOffset.X:=(lv.Width / 2);
  lv.ItemAppearanceObjects.ItemObjects.Detail.Width:=(lv.Width /2)-2;
Bei DynamicAppearance muss man das Objekt raussuchen und es verändern:
Code:
procedure TfMain.lvPosResized(Sender: TObject);
var
  ta:tTextObjectAppearance;

  function FindIt(aName:String):tTextObjectAppearance;
    var
      ca:TCommonObjectAppearance;
    begin
      result:=nil;
      with lvPos do begin
        for ca in ItemAppearanceObjects.ItemObjects.Objects do begin
          if comparetext(ca.Name,aName)=0 then begin
            result:=ca as tTextObjectAppearance;
            exit;
          end;
        end;
      end;
    end;

begin
  with lvPos do begin
    ta:=FindIt('Text');
    if ta<>nil then begin
      ta.Width:=Width-80;
    end;

    ta:=FindIt('Detail');
    if ta<>nil then begin
      ta.Width:=Width-80;
    end;
  end;
Ich sehe gerade, der Eintrag ist uralt, aber was solls. Hab ich auch mal ne Lösung beigesteuert
  Mit Zitat antworten Zitat