Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

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

  Alt 20. Apr 2004, 13: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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat