Wann immer Sie in Ihrem Programm dem User freie Hand
geben,
müssen Sie genau darauf achten, welche Eventualitäten sich daraus ergeben könnten.
So kann es passieren, das die vordefinierte Größe eines Controls der Länge des vom User
eingegebenen Textes nicht mehr stand hält und der Text so unschön abgeschnitten wird.
Als Beispiel sei hier ein Command-Button gewählt, dessen Caption Eigenschaft vom User
festgelegt werden soll. Damit auch bei längerer Eingabe, der Text noch komplett sichtbar
ist, wird nach jeder Zeicheneingabe die Länge geprüft und ggf. das Control angepaßt.
Sie benötigen für einen Test auf Ihrer Form eine Textbox (Text1) für die Eingabe, einen
Command-Button (Command1), der an die Eingabe angepaßt werden soll.
Setzen Sie beides untereinander und mit dem gleichen Wert für die Weite(Width).
Außerdem benötigen Sie ein Label-Objekt (Cacht unseren Text)
und einen Timer (übernimmt die Prüfung).
Um das Ganze zu realisieren, benötigen Sie das versteckte Label-Objekt
(Visible = False) dessen AutoSize Eigenschaft Sie auf True setzen.
Dazu definieren sie noch folgende Anweisungen.
Allgemein / TextExtent
Private Function TextExtent(txt As String) As Integer
Label1.Caption = txt
TextExtent = Label1.Width
End Function
Form / Load
Command1.Caption = Text1.Text 'Übergebt den vorhanden Text an den Button
Form1.Show 'damit SetFocus genutzt werden kann
Text1.SetFocus 'Text1 wird aktives Control
Text1 / KeyDown und MouseDown
timer1.Interval = 10
Timer1 / Timer
timer1.Interval = 0
X = TextExtent(Text1.Text)
Command1.Height = (CInt(X / Text1.Width) + 1) * 255
Command1.Caption = Text1.Text
Sie können nun mit F5 Ihr Projekt testen. |