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