Schrift im Eingabefeld verschoben

Hallo iin die Runde.
Ich habe bei meiner App mehrere einzeilige Eingabefelder. Die meisten vom selbst angelegten Typ “Autocomplete”. Dabei handelt es sich um ein TextArea. Als Eigenschaften gibt es den Systemfont in 13 Punkt und Syled ist eingeschaltet. Das sieht auch aus, wie gewünscht.
Nun gibt es auch andere Eingabefelder, die direkt TextFiled sind und ebenfalls mit den Eigenschaften Systemfont in 13 Punkt und Syled eingeschaltet voreingestellt sind.

Woran leigt es, dass bei den Autokomplete Feldern den Text am oberen Rand stehen habe (wie es soll) und die reine TextArea der TExt am unteren Rand steht?
Ich sehe keine Unterschied in den (relevanten) Vorgaben.

Vielecht ist es wichtig, dass ich Autocomplete bereits aus einem Projekt habe, dass mit REALstudio erzeugt wurde.
Hat irgendwer einen Tipp, wo ich suchen sollte?

Gruß, Stefan Mettenbrink.

Wie wre es mit einem Screenshot, der das Problem zeigt?

Stimmt, ist wohl sinnvoll:
Screenshot

Das obere Eingabefeld hat die Zeichen deutlich tiefer als das Untere.

Du kannst Bilder auch direkt anzeigen lassen.

Link markieren und rechts oben auf Image klicken

sieht dann so aus

OK, danke für den Hinweis. Ich glaube, das habe ich auch schon mal genutzt.


Multiline ist Schuld. Aber warum?

Sollte die Grundlinie der Schrift nicht immer die gleiche Entfernung vom oberen Rand haben, egal ob Multiline oder nicht?
Das kann doch unmöglich gewollt sein. Oder gibt es einen plausiblen Grund dafür?

Gruß, Stefan Mettenbrink.

Gibt es eine Möglichkeit, die Position der Grundlinie festzulegen?

Du könntest mittels TextArea.LineSpacing probieren den gewünschten Effekt zu erzielen. Ob sich die Eigenschaft allerdings bei einer einzeiligen TextArea auswirkt weiß ich nicht.

TextArea.LineSpacing bringt bei mir gar keinen Effekt.
Selbst wenn, würde das nichts daran ändern, wo (vom oberern Rand aus gesehen) die erste Zeile ausgegeben wird.

Gruß, Stefan Mettenbrink.

Ich habe doch noch etwas gefunden:

me.LineHeight = (me.Height - me.textsize) / 2 + me.textsize

Sieht bei mir besser aus, als zuvor. Damit kann ich leben.

They are different heights … one is 20, and one is 22?
Sie haben unterschiedliche Höhen. Einer ist 20 und einer ist 22?

Yes, thats right.
Why do you ask?

sehen die Buchstaben anders aus, wenn die Textfelder gleich gro sind?

Es geht nicht um die Buchstaben sondern um deren Position vom oberen Rand.
Bei TextArea wird der Abstand vom oberen Rand durch die Schriftgröße bestimmt. Dadurch ist der Text bei Hight=22 zu weit oben und nicht mittig. Das konnte ich mit LineHeight beheben.

[quote=373061:@Stefan Mettenbrink]Ich habe doch noch etwas gefunden:

me.LineHeight = (me.Height - me.textsize) / 2 + me.textsize

Sieht bei mir besser aus, als zuvor. Damit kann ich leben.[/quote]

Sicher? Also das kommt bei mir mit dem oben genannten Codeschnipsel heraus. Wohl bemerkt, wenn man die Standard Schriftgröße auf 0 (das wäre schlau, um unter allen Systemen die Systemgröße zurückgeliefert zu bekommen) lässt und jetzt nicht auf 13 setzt!

Da ich keine Standardschriftgröße verwende sondern dem Anwender die Möglichkeit biete, die Schriftart und -größe anzupassen, kann man nicht von "Standard ausgehen.

Bei mir sieht es so aus (rechts vorher, links nachher):