Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#2

AW: Breite/Zeichenanzahl bei Memofeldern?

  Alt 21. Jun 2016, 11:21
Ob's 'ne Formel gibt, weiß ich nicht. Aber wie wäre es damit:

Man nehme ein TLabel mit AutoSize := True und dem Font des TMemos.
Nun schreibt man in die Caption des Label 28 * W (oder ein anderes Zeichen, bei Courier New ist das ja egal).

Durch AutoSize des Labels bekommt man nun die Breite des Textes. Da ein Memo ggfls. noch die Scrollbars sichtbar hat, muss man deren Breite zur Labelbreite addieren und dann Width vom Memo auf die Labelbreite setzen.

Das Label kann man zur Laufzeit in der Berechnungsroutine erstellen, so dass man das nicht als sichtbare Komponente auf dem Formular braucht.
Delphi-Quellcode:
lb := TLabel.Create(Nil);
lb.Font := Memo.Font;
lb.Autosize := True;
lb.Caption := '01234567890123456789012345678';
Memo.Width := lb.Width; // Hier eventuell was dazu für die Scrollbar.
lb.Free;
  Mit Zitat antworten Zitat