Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Edit: vertikal ausrichten


delphi-programmer - Do 20.06.02 22:49
Titel: Edit: vertikal ausrichten
Hallo Leute,
wie schaffe ich es, dass der Text in einem Edit-Feld nicht horizontal, sondern vertikal ausgerichtet wird???

Vielen Dank für eure Hilfe

Stefan


Torsten - So 23.06.02 02:39

Moinsen!

Hmm, gute Frage.
Irgendwann habe ich sowas schon mal gemacht. Aber lange her.

Ich kann Dir nur sagen, dass es mit CreateFontIndirect aus der Win32-API gemacht wurde. Leider finde ich den Code nicht mehr.
Ich versuche jedoch ein Beispiel zu erstellen. Kann aber dauern.
Jedenfalls ist diese Funktion in der Lage, eine wählbare Ausrichtung der Schrift zu erzeugen. Besser gesagt, eine Schrift mit wählbarer Ausrichtung.

Grüße

Torsten


delphi-programmer - So 23.06.02 10:28
Titel: Dankend
Hallo,
vielen Dank für deine Hilfe, ich werde mich jetzt mal an diese Win32-Api ranwagen ... vielleicht habe ich ja ein bissle Glück, und es klappt ;-)

Auf einen Quelltext würde ich mich natürlich sehr freuen...

Bis dann


Torsten - So 23.06.02 15:04

Moinsen!

So, habe da mal was gefunden. Ist aber nicht von mir.
Ich kann mich jedoch dran erinnern, selbst diese Prozedur verwendet zu haben. Wie gesagt, kann meinen eigenen Code nicht mehr finden. Ich suche aber weiter.


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure AngleTextOut(CV: TCanvas; const sText: String; x, y, angle:integer);
var
  LogFont: TLogFont;
  SaveFont: TFont;
begin
  SaveFont := TFont.Create;
  SaveFont.Assign(CV.Font);
  GetObject(SaveFont.Handle, sizeof(TLogFont), @LogFont);
  with LogFont do
    begin
      lfEscapement := angle *10;
      lfPitchAndFamily := FIXED_PITCH or FF_DONTCARE;
    end; {with}
  CV.Font.Handle := CreateFontIndirect(LogFont);
  SetBkMode(CV.Handle, TRANSPARENT);
  CV.TextOut(x, y, sText);
  CV.Font.Assign(SaveFont);
  SaveFont.Free;
end;


Grüße

Torsten