Einzelnen Beitrag anzeigen

HenKst

Registriert seit: 7. Jul 2008
113 Beiträge
 
#2

Re: TextRect oder Itemweite in WM_MEASUREITEM zuweisen

  Alt 2. Dez 2008, 11:25
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
narf - not a real function
  Mit Zitat antworten Zitat