Einzelnen Beitrag anzeigen

Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Unterschiedliche Textlängen bei Design bzw. Berechnung

  Alt 7. Mär 2011, 09:21
ich verwende Canvas.TextWidth , also im Prinzip Deine erste Funktion soweit reduzieren, dass nach der Font Zuweisung nur noch Canvas.TextWith aufgerufen wird.

Delphi-Quellcode:
function GetTextWidth2(const AValue: string; AFont: TFont): Integer;
var
  lCanvas: TCanvas;
begin
  try
    lCanvas := TCanvas.Create;
    try
      lCanvas.Handle := GetDC(0);
      lCanvas.Font := AFont;
      Result := lCanvas.TextWidth(AValue);
    finally
      ReleaseDC(0, lCanvas.Handle);
      lCanvas.Free;
    end;
  except
    Result := 0;
  end;
end;
Sehe aber gerade, es kommt der gleiche Wert heraus, wie in Deiner ersten Funktion, also wohl auch abweichend. Wobei bei Label.Width wohl von Haus aus ein Rand mit eingerechnet wird? (Habe hier leider nicht den VCL-Source parat)

Geändert von Satty67 ( 7. Mär 2011 um 09:29 Uhr)
  Mit Zitat antworten Zitat