2. Das Controls-Objekt
In dieser Lektion erhalten Sie
Informationen über:
Verwenden verschiedener Eigenschaften des
Controls-Objekts.
Verwenden verschiedener Prozesse für das
Controls-Objekt.
Verwenden von Steuerereignissen für
Schaltflächen und Textfelder im Programm.
3. Einführung in das Controls-Objekt
Bisher haben Sie erfahren, wie Sie verschiedene
Objekte in Small Basic verwenden, wie
GraphicsWindow, Shapes, File und Math.
Diese Lektion führt Sie in das Controls-Objekt von
Small Basic ein. Mittels dieses Objekts können Sie
im Grafikfenster einfache Steuerelemente
anzeigen, wie Textfelder und Schaltflächen.
4. Prozesse für das Controls-Objekt
Bevor wir ein Programm mittels des Controls-Objekts erstellen, betrachten
wir einige Prozesse für das Controls-Objekt und dessen Parameter.
AddTextBox – Sie können mittels
dieses Prozesses ein Textfeld
definieren, das im Grafikfenster
angezeigt wird. Als Parameter müssen
Sie die x-Koordinate und die
y-Koordinate des Textfelds angeben.
AddButton – Sie können mittels
dieses Prozesses eine Schaltfläche
definieren, die im Grafikfenster
angezeigt wird. Als Parameter müssen
Sie die Beschriftung der Schaltfläche
und die x- und y-Koordinate der
Schaltfläche angeben.
5. Prozesse für das Controls-Objekt
GetButtonCaption – Sie können mittels dieses
Prozesses die Beschriftung einer Schaltfläche
abrufen. Sie müssen den Namen der
Schaltfläche als Parameter angeben.
SetButtonCaption – Sie können mittels dieses
Prozesses die Beschriftung einer Schaltfläche
festlegen oder ändern. Sie müssen den Namen
der Schaltfläche und die neue Beschriftung
als Parameter angeben.
GetTextBoxText – Sie können den Text, der im
Textfeld angezeigt wird, abrufen, indem Sie
dessen Namen als Parameter für diesen
Prozess angeben.
SetTextBoxText – Sie können den Text, der im
Textfeld angezeigt wird, definieren, indem Sie
dessen Namen und den gewünschten Text als
Parameter für diesen Prozess angeben.
6. Prozesse für das Controls-Objekt
Zusätzlich zum Hinzufügen nützlicher Steuerelemente in Ihrem Programm
können Sie auch bestimmte Prozesse durchführen und die Einstellungen
für die von Ihnen hinzugefügten Steuerelemente definieren.
Betrachten wir das Controls-Objekt mithilfe
eines Beispiels.
Klicken Sie auf die Schaltfläche
in der Symbolleiste.
7. Eigenschaften und Operationen des Controls-Objekts
Betrachten wir die Funktionen, die einige weitere Prozesse und
Eigenschaften des Controls-Objekts bereitstellen.
HideControl – Sie können mittels
dieses Prozesses ein vorhandenes
Steuerelement im Grafikfenster
ausblenden.
ShowControl – Sie können mittels
dieses Prozesses ein zuvor
ausgeblendetes Steuerelement
im Grafikfenster einblenden.
Remove – Sie können mittels dieses
Prozesses ein Steuerelement aus
dem Grafikfenster entfernen.
8. Eigenschaften und Operationen des Controls-Objekts
SetSize – Sie können mittels dieses
Prozesses eine feste Größe für ein
Steuerelement angeben. Sie müssen den
Namen, die Höhe und die Breite der
Schaltfläche als Parameter angeben.
Move – Sie können mittels dieses Prozesses
ein Steuerelement an einen anderen Ort im
Grafikfenster verschieben. Sie müssen den
Namen, die linke Koordinate und die obere
Koordinate des Steuerelements als
Parameter angeben.
LastClickedButton – Sie können mittels dieses
Prozesses die letzte Schaltfläche ermitteln,
auf die im Grafikfenster geklickt wurde.
LastTypedTextBox – Sie können mittels
dieses Prozesses das letzte Textfeld ermitteln,
in das Text eingegeben wurde.
9. Das Controls-Objekt
Schreiben wir nun ein einfaches Programm, das das Controls-Objekt
enthält. Dieses Programm zeigt die Definitionen eines bestimmten
Worts an.
10. Steuerereignisse
Da Sie sich nun mit dem Controls-Objekt in Small Basic auskennen, betrachten wir die
Ereignisse, die Sie für dieses Objekt verwenden können. Steuerereignisse generieren
Aktionen im Programm, wenn ein Benutzer auf eine Schaltfläche klickt oder Text in ein
Textfeld eingibt.
ButtonClicked löst ein Ereignis aus, wenn
ein Benutzer auf eine Schaltfläche klickt.
Sie können das Ereignis ButtonClicked
verwenden, um einen einfachen
Taschenrechner wie den rechts
angezeigten zu erstellen:
Im Folgenden finden Sie ein
Beispiel für das Ereignis
TextTyped:
TextTyped löst ein Ereignis aus, wenn ein
Benutzer Text in ein Textfeld eingibt.
11. Fassen wir zusammen…
Herzlichen Glückwunsch! Sie haben
Folgendes gelernt:
Verschiedene Eigenschaften des Controls-Objekts verwenden.
Verschiedene Prozesse für das Controls-Objekt verwenden.
Steuerereignisse für Schaltflächen und Textfelder im
Programm verwenden.
12. Zeigen Sie, was Sie wissen
Schreiben Sie ein Programm, um ein einfaches
Formular anzuzeigen, und führen Sie die folgenden
Schritte durch:
Fügen Sie Textfelder hinzu, um den
Namen, die Adresse, die Telefonnummer
und die
E-Mail-Adresse des Benutzers abzufragen.
Fügen Sie dem Formular die Schaltfläche
Absenden hinzu.
Wenn der Benutzer die Daten angegeben
hat und auf Absenden klickt, wird die
entsprechende Meldung angezeigt.
Sie können im Bildschirm Steuerelemente hinzufügen, indem Sie eine Anweisung eingeben, die einen Prozess für das Controls-Objekt enthält. Betrachten Sie das Beispiel auf dem Bildschirm:Als Erstes verwenden Sie den AddTextBox-Prozess für das Controls-Objekt, um Textfelder für den Vor- und Nachnamen des Benutzers hinzuzufügen. Als Parameter müssen Sie die x- und y-Koordinate der Textfelder angeben.Als Nächstes verwenden Sie den AddButton-Prozess, um dem Grafikfenster eine Schaltfläche hinzuzufügen. Zusätzlich zur x- und y-Koordinate der Schaltfläche müssen Sie auch die Beschriftung der Schaltfläche als Parameter angeben.Als Nächstes verwenden Sie den AddMultiLineTextBox-Prozess, um dem Grafikfenster ein weiteres Textfeld hinzuzufügen. Als Parameter müssen Sie die x- und y-Koordinate des Textfelds angeben.In diesem Beispiel zeigen Sie eine Meldung im mehrzeiligen Textfeld an, wenn der Benutzer auf Meldung anzeigen klickt. Daher verwenden Sie das Ereignis ButtonClicked und erstellen eine Subroutine für die Anzeige der Meldung im mehrzeiligen Textfeld.Um das Ergebnis Ihres Programms zu überprüfen, klicken Sie auf der Symbolleiste auf Ausführen, oder drücken Sie auf der Tastatur die Taste F5.Code:GraphicsWindow.DrawText(50, 100, "Geben Sie den Vornamen ein:")firstname = Controls.AddTextBox(200, 100)GraphicsWindow.DrawText(50, 150, "Geben Sie den Nachnamen ein:")lastname = Controls.AddTextBox(200, 150)showbutton = Controls.AddButton("Meldunganzeigen", 150, 200)message = Controls.AddMultiLineTextBox(50, 250)Controls.SetSize(message, 310, 50) Controls.ButtonClicked = ShowMessage SubShowMessageIfControls.GetButtonCaption(showbutton) = "Meldunganzeigen" ThenControls.SetTextBoxText(message,"Hallo " + Controls.GetTextBoxText(firstname) + " " + Controls.GetTextBoxText(lastname))EndIfEndSub
Sie können in Small Basic mittels Steuerelementen wie Textfeldern und Schaltflächen einfache Programme erstellen. Sehen Sie sich beispielsweise das folgende Programm an. In diesem Programm erstellen wir Code, um zwei Textfelder und die Schaltfläche Suche anzuzeigen. Der Benutzer gibt im ersten Textfeld ein Wort ein. Wenn der Benutzer auf Suchen klickt, wird die Definition des Worts im zweiten, mehrzeiligen Textfeld angezeigt. Wir verwenden das Dictionary-Objekt, um die Bedeutung des Worts im mehrzeiligen Textfeld anzuzeigen.Code:GraphicsWindow.Title = "Wörterbuch"GraphicsWindow.Height = 600GraphicsWindow.Width = 600GraphicsWindow.DrawText(50, 80, "Geben Sie Text ein: ")textbox = Controls.AddTextBox(50, 100)Controls.SetSize(textbox, 100, 30)Controls.SetTextBoxText(textbox, "")GraphicsWindow.DrawText(50, 140, "Wörterbuchbedeutungen: ")multitxt = Controls.AddMultiLineTextBox(50, 160)Controls.SetSize(multitxt, 500, 400)Getdfn = Controls.AddButton("Suchen", 200, 100)GraphicsWindow.DrawText(80, 80, "")meaning = Dictionary.GetDefinition(Controls.GetTextBoxText(textbox))Controls.SetTextBoxText(multitxt, meaning)Controls.ButtonClicked = ShowmeaningSub ShowmeaningIf Controls.GetButtonCaption(Getdfn) = "Suchen" Then meaning = Dictionary.GetDefinition(Controls.GetTextBoxText(textbox)) Controls.SetTextBoxText(multitxt, meaning)EndIfEndSub
Lösung:GraphicsWindow.Show()GraphicsWindow.Width = 300GraphicsWindow.Height = 250GraphicsWindow.Top = (Desktop.Height - 450) / 2GraphicsWindow.left = (Desktop.Width - 600) / 2 GraphicsWindow.Title = "Anwendungsformular:"x = 30y = 37'Enter NameGraphicsWindow.DrawText(x, y, "Name:")NameTxtBox = Controls.AddTextBox(120, 35)Controls.SetSize(NameTxtBox, 150, 20) 'AddressGraphicsWindow.DrawText(x, y + 40, "Adresse:")AddressTxtBox = Controls.AddMultiLineTextBox(120, 70)Controls.SetSize(AddressTxtBox, 150, 40) 'Telephone detailsGraphicsWindow.DrawText(x, y + 90, "Telefon:")TelphoneTxtBox = Controls.AddTextBox(120, 125)Controls.SetSize(TelphoneTxtBox, 150, 20) 'Email -idGraphicsWindow.DrawText(x, y + 125, "E-Mail-ID:")EmailTxtBox = Controls.AddTextBox(120, 160)Controls.SetSize(EmailTxtBox, 150, 20) 'SubmitSubmitButton = Controls.AddButton("Absenden", x + 30, y + 160)Controls.SetSize(SubmitButton, 70, 30) 'CancelCancelButton = Controls.AddButton("Abbrechen", x + 130, y + 160)Controls.SetSize(CancelButton, 70, 30) Controls.ButtonClicked = SubmitForm SubSubmitForm Name = controls.GetTextBoxText(NameTxtBox) Address = controls.GetTextBoxText(AddressTxtBox)Telphone = controls.GetTextBoxText(TelphoneTxtBox) Email = controls.GetTextBoxText(EmailTxtBox)IfControls.GetButtonCaption(Controls.LastClickedButton) = "Absenden" ThenIf Name = "" or Address = "" or Telphone = "" or Email = "" Then GraphicsWindow.ShowMessage("Bitte geben Sie alle Daten ein.", "Fehlermeldung")Else GraphicsWindow.ShowMessage("Die Daten wurden erfolgreich abgesendet!", "Herzlichen Glückwunsch!")EndIfElseIfControls.GetButtonCaption(Controls.LastClickedButton) = "Abbrechen" ThenProgram.End() EndIfEndSub