Ich versuche verzweifelt, die TImage-Height zur LAufzeit zu vergrößern. Prinzipiell macht das Programm folgendes: Es schreibt über Canvas.Textout Text auf das Image. Danach wird eine Zeilvariable erhöht, sodass der nächste Text quasi eine Zeile tiefer eingetragen wird. Nun kann es aber vorkommen, dass es zu viele Zeilen gibt, also die Zählvariable Positionen größer als die ImageHeight angibt. Ich versuche nun, das Image zu vergrößern und dann den TExt schreiben zu lassen. Die Height wird dann zwar vergrößert (Das Image reagiert sogar in an der betreffenden Stelle auf Mausklicks!), aber der sichtbare Bereich wird nicht angezeigt. Es ist also nach wie vor nur der Bereich sichtbar, der bei der ersten Zeileneintragung sichtbar war - der Rest ist unsichtbar.
Da ich nicht glaube, dass man mich jetzt verstanden hat (aufgrund meiner katastrophalen Erklärfähigkeiten), hier ein Beispiel:
Im Objektinspektor stelle ich für TImage einen Height-Wert von 12 ein.
Ich starte das Programm.
Ich tippe einen Text in ein EditFeld, welches die Schriftgröße 8 ausgibt.
Bei Drücken von vk_return im EditFeld (Ereignis OnKeyDown) soll überprüft werden, ob ImageHeight größer ist als Schriftgröße.
Die Zählvariable wird erhöht, damit beim nächsten mal, der Text in eine neue Zeile geschrieben wird.
Ausgabe ist OK, Image-Bereich wird sichtbar (Also auf dem Form wird ein weißes Rechteck mit ImageHeight/-Width sichtbar)
Da 12>8 ist alles OK, und der Text im EditFeld wird an Canvas.TextOut gegeben, wobei Canvas.Font.Size = Edit.Font.Size entspricht.
Text wird draufgeschrieben.
Beim nächsten Mal wird wieder abgefragt, ob eine zusätzliche Zeile ausgegeben werden kann (Zeilennummer*Schriftgröße)
Hier ist 12<16 (Height kleiner zwei Zeilen), also wird die Height auf 16 gesetzt.
Theoretisch kann nun der Text geschrieben werden.
Nun Problem: Die Height wird zwar geändert, doch der eigentlich sichtbare, weiße Bereich nicht. Dass die Height geändert wird, habe ich kontrolliert. Ich kann soger Linien über CAnvas.MoveTo/-LineTo zeichnen, wenn das MoveTo im weißen BEreich liegt und das LineTo über einen Mausklick im unsichtbaren BEreich ausgelöst wird. Nur, dass die Linien nur im sichtbaren BEreich angezeigt werden... Wie kann ich diesen Bereich zur Laufzeit vergrößern? Kann mir da jemand helfen?
So das war's auch "schon". ICh bedanke mich schon im Voraus für das Lesen, evtl. Problemlösungsansätzen und überhaupt für jegliche Idee, die kommen mag.
CU S-Man