Also mit TCanvas.TextWidth bekomst du die länge eines breite in Pixeln.
Welcher String der längste ist lässt sich ja relativ leicht rausfinden.
Also wäre meine erste überlegung jetzt:
Delphi-Quellcode:
function GetLongest(strings: TStringList): string
var
i: integer
begin
result:= '';
for i:= 0 to strings.count-1 do begin
if length(strings[i]) > length(result) then
result:= strings[i];
end;
end;
WM_MEASUREITEM:
begin
PMis := Pointer(lP);
if wP = 0 then
begin
PMis^.itemWidth := Canvas.TextWidth(GetLongest(menueinträge));//ich weiss ja nicht wo die herkommen :)
PMis^.itemHeight := 18;
Result := 1;
Exit;
end;
end;
Greez HenKst