Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Memo Zeilenanzahl begrenzen

  Alt 11. Mär 2006, 09:17
Hallo Stefan,

ich würde so vorgehen:

Delphi-Quellcode:
function TextIsFitting(const text: String; c: TCanvas): Boolean;
var
  r: TRect;
begin
  with c do
  begin
    r := ClipRect;
    DrawText(Handle, PAnsiChar(text), Length(text), r,
      // zum Anpassen schau in den Win32 SDK unter DrawText
      DT_CALCRECT + DT_LEFT + DT_WORDBREAK
    );
    Result := r.Bottom <= ClipRect.Bottom;
  end;
end;

procedure TDemoForm.MemoChange(Sender: TObject);
begin
  if TextIsFitting(Memo.Text, MultiLineLabel.Canvas)
    then Memo.Font.Color := clBlack
    else Memo.Font.Color := clRed;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat