Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#9

Re: wie vom Caret die Höhe erhalten oder Zeilen...

  Alt 20. Apr 2004, 14:28
da beim Memo die Schrift ja vom Memo fesgelegt wird:

einfach die Schrift (Memo1.Font) an eine unserer Prozeduren übergeben und du bekommst die Höhe.



wenn in dem RitchEdit die Schrift nicht geändert wird, dann geht es dort genauso (RitchEdit1.Font übergeben), sonnst geht es z.B. so (andere wird es bestimmt auch mal interessieren)

Delphi-Quellcode:
Function FontHeightAtPos(Pos: Integer): Integer;
  Var Font: TFont;

  Begin
    If Pos < Length(Form1.RichEdit1.Text) Then Begin
      Form1.RichEdit1.SelStart := Pos;
      Form1.RichEdit1.SelLength := 1;
      Font := Form1.RichEdit1.Font;
      Font.Charset := Form1.RichEdit1.SelAttributes.Charset;
      Font.Name := Form1.RichEdit1.SelAttributes.Name;
      Font.Pitch := Form1.RichEdit1.SelAttributes.Pitch;
      Font.Size := Form1.RichEdit1.SelAttributes.Size;
      Font.Style := Form1.RichEdit1.SelAttributes.Style;
      // such dir eine der Prozeduren von Shmia, oder mir aus
      Result := TrueFontHeight(Font);
      // oder die
      Result := TextHoehe(Font, 'Xg');
    End Else
      Result := -1;
  End;
Delphi-Quellcode:
h := FontHeightAtPos(12);
// für 12 einfach die Position des Zeichens angeben, von welchem die Höhe benötigt wird

Und wenn die Komponente, von der man die Texthöhe haben möchte ein Canvas hat, dann ist es auch möglich Canvas.TextHeight dieser Komponente zu verwenden.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat