Textausrichtung im Edit zur Laufzeit umstellen



  • Hallo,

    in den FAQ hab ich schon gelesen, wie man die Textausrichtung im Edit beeinflusst.
    Allerdings muss ich dies zur Laufzeit umstellen können.
    Zwei Methoden kommen mir bisher in den Sinn, sind aber unpraktikabel:
    1. Altes Edit löschen und neues mit gewünschter Textausrichtung erzeugen.
    2. Zwei/Drei Edits mit den verschiedenen Ausrichtungen (l/z/r)erzeugen und dann Visible umschalten.

    Wie kann ich das eleganter machen?

    Vielen Dank,

    Michael



  • was spricht dagegen einfach während der ausführung
    Edit1->BiDiMode = bdRightToLeft;
    und
    Edit1->BiDiMode = bdLeftToRight;
    zu benutzen, oder verwechsel ich da zufällig etwas ?



  • Bei dieser Umschaltung tut sich bei mir gar nichts. Diese Umschaltung ist im übrigen dazu gedacht, für Sprachen, in denen von rechts nach links gelesen wird, umzuschalten.
    Ich fürchte du verwechselst etwas?



  • Normalerweise könnte man das Edit mit setzen des Stils über SetWindowLong anpassen. Das Problem ist, daß der fragliche Windowstyle (ES_RIGHT) nach Erstellen des Controls nicht geändert werden kann (siehe MSDN); das ist eine Windows-Limitierung. Deshalb müßtest du eine Komponente schreiben, die bei Veränderung des Stils das alte Control zerstört und ein neues mit dem neuen Stil erstellt. Da ist das Umschalten zwischen verschiedenen Komponenten vielleicht noch einfacher.


Anmelden zum Antworten