Wysokość tekstu w pikselach

0

Jak obliczyć wysokość tekstu w pikselach np. w memo?
TextHeight podaje wysokość jednej linii. Co zrobić kiedy linii jest wiele?
Lines.Count podaje ilość linii "po Enterze", a linie mogą się zawijać, wtedy jest ich więcej!!!
Ma ktoś pomysł? Kombinuję na wszystkie sposoby, ale rezultat nie ten.
Szukałem wszędzie i ... nic :-/

0

W memo wszystkie znaki mają tą samą wysokość. Pomnóż ilość wierszy*wysokość wiersza.

0

ważniejsze czy mają tę samą szerokość, jeśli tak to dodaj do ilości linii, ilość linii których długość przekracza ilość znaków które się mieszczą na szerokość

ostatnio ktoś tu był i pisał o podobnej rzeczy ale o widocznych akurat liniach, potem napisał że znalazł rozwiązanie ale się nim chyba publicznie nie podzielił
możesz się go chyba zapytać jeśli znajdziesz ten topic

0
Rosi napisał(a)

Szukałem wszędzie i ... nic :-/
a mógłbyś przybliżyć to wszędzie bo ja dość szybko znalazłem sposób

var
  s: string;
  r: TRect;
begin
  s := mmo1.Text;
  mmo1.Perform(EM_GETRECT, 0, LongInt(@r));
  Canvas.Font := mmo1.Font;
  DrawTextEx(Canvas.Handle, PChar(s), Length(s), r, DT_CALCRECT + DT_EDITCONTROL + DT_WORDBREAK + DT_NOPREFIX, nil);
  ShowMessage(IntToStr(r.Bottom - r.Top));
end;
0

Dzięki Misiekd,
Kod wygląda niegłupio, ale sprawdzę go w domu wieczorem.
Pytasz gdzie szukałem - wszędzie: w książkach, w Internecie, na różnych forach (nie tylko polskich).
Uczę się od podstaw sam, idzie mi dość dobrze (kilka niezłych programów ułatwiających życie mnie i kolegom z pracy), jednak czasami trafiam na problem może banalny, ale bez podpowiedzi ani rusz.
Wielkie dzięki, masz u mnie duże piwo [browar]
Rosi

1 użytkowników online, w tym zalogowanych: 0, gości: 1