Seite 1 von 1
Inputbox (Auswahl) ohne Enter drücken
Verfasst: Sa, 28.01.2012 19:44
von Reginald
Hallo,
ich will eine Art inputbox haben wo - zum Beispiel - steht:
Wählen Sie
1 - für blaues Auto
2 - für Waschmaschine
3 - für Schokoladentafel
Bei der Inputbox muß ich ja immer noch Enter drücken anschließend. Das ist zu umständlich. Es muß schnell gehen. Ein Tastendruck und nicht mehr.
Ideen?
Ich arbeite mich gerade in OOBasic ein, und unten ein Testmakro dazu. Habe ein spezielles Problem, das ich lösen muß.
Grüße
Reginald
Code: Alles auswählen
Antwort = inputbox("Wählen Sie aus 1 für ja, 2 für nein oder 3 vielleicht")
'msgbox Antwort
iAntwort = CInt(Antwort)
Select Case iAntwort
Case 1
msgbox ("Jetzt tritt Fall 1 auf")
Case 2
msgbox ("Jetzt Fall 2")
Case 3
msgbox ("Jetzt Fall 3")
End Select
Re: Inputbox (Auswahl) ohne Enter drücken
Verfasst: So, 29.01.2012 12:54
von Frieder D.
Hallo Reginald
Das kannst du mit einem Dialog erreichen.
Der Dialog enthält ein Beschriftungsfeld, wo du Text anzeigen lassen kannst,
und ein Textfeld.
Zuerst musst du den Dialog Initialisieren und starten.
Das Textfeld ist mit dem Ereignis " Text modifiziert " mit einem Makro verknüpft, dass die Textbox ausließt, und den Dialog beendet.3
Code: Alles auswählen
Global oDlg1 As object 'Globale variable für Dialog
Sub start_Dialog1
DialogLibraries.LoadLibrary("Standard") 'Dialog Bibliothek einbinden
oDlg1=CreateUnoDialog(DialogLibraries.Standard.Dialog1) 'dialog holen
'Anzeige-Text Setzen
oDlg1.getControl("Label1").setText ("Wählen Sie aus "& Chr(10) & _
"1 für ja, 2 für nein oder 3 vielleicht" )
on error resume next
'dialog Ausführen
oDlg1.Execute(True)
End Sub
'------------------------------------
Sub Get_Textfild_Text
dim sVal As String
oDlg1.EndExecute 'dialg beenden
sVal= oDlg1.getControl("TextField1").getText 'Text aus textfeld holen
Select Case sVal
Case 1
msgbox ("Jetzt tritt Fall 1 auf")
Case 2
msgbox ("Jetzt Fall 2")
Case 3
msgbox ("Jetzt Fall 3")
Case Else
start_Dialog1 'dialog erneut starten, falls falsche auswahl genommen wurde
End Select
end Sub
Du kannst das selbe aber auch mit einer simplen MsgBox erreichen:
Code: Alles auswählen
sub Test_MsgBox
Dim nVal as Integer
nVal =MsgBox ("Bitte wählen" ,3,"Auswahl")
Select Case nVal
Case 6
MsgBox "Es wurde Ja gedrückt"
Case 7
MsgBox "Es wurde Nein gedrückt"
Case 2
MsgBox "Es wurde Abbrechen gedrückt"
End Select
end sub
Ich habe dir hier mahl eine Beispieldatei erstellt:
Gruß Frieder
Re: Inputbox (Auswahl) ohne Enter drücken
Verfasst: So, 29.01.2012 17:54
von hr.hartwig
Hallo!
Wenn es nicht unbedingt eine Inputbox sein muß,
würden sich da nicht besser Optionbuttons eignen?
(Siehe Anhang.)
Viele Grüße,
Hotti
Re: Inputbox (Auswahl) ohne Enter drücken
Verfasst: Mo, 30.01.2012 19:37
von Reginald
Hallo Frieder und Hotti,
vielen Dank für die Antworten!
Der Dialog von Frieder gefällt mir am besten. Ich weise das Makro einem Tastaturbefehl zu, z. B. Strg + D und kann dann mit einem Tastendruck (1, 2, 3) auswählen. Das ist der effektiveste und schnellste Weg - mittels Tastatur.
Man klickt sich mit der Maus (rechte Hand) durch eine Tabelle durch und macht mit der Tastatur (linke Hand) die Auswahlen.
Muß schnell gehen. Das ist das Kriterium.
Eine Frage bleibt noch: Wenn ich deine Beispieldatei verwende, klappt es. Wenn ich den Code in eine Datei von mir kopiere, meckert er in der Zeile oDlg1=CreateUnoDialog(DialogLibraries.Standard.Dialog1) mit "BASIC runtime error. Property or method not found: Dialog1"
Was ist dieses "Dialog1" Teil? Habe das nirgens gefunden.
Grüße,
Reginald
Re: Inputbox (Auswahl) ohne Enter drücken
Verfasst: Mo, 30.01.2012 22:46
von balu
Hallo Reginald,
Wenn ich deine Beispieldatei verwende, klappt es.
Ist ja auch logisch, da alles vorhanden ist was vorhanden sein muss.
Wenn ich den Code in eine Datei von mir kopiere, meckert er in der Zeile ...
Auch das ist logisch, denn Du übersiehst da etwas.
Was ist dieses "Dialog1" Teil? Habe das nirgens gefunden.
Sorry, aber mach mal deine Augen auf (net bös gemeint)!
Wenn Du in der IDE bist, also dort wo man den Code eintippt, dann siehst Du in der Beispieldatei nicht nur das Makro im "Module1", sondern auch noch einen Reiter mit dem Namen "Dialog1". Und genau dieser Dialog fehlt dir in deiner eigenen Datei. Du musst jetzt in deiner Datei einen eigenen Dialog erstellen, rechtsklick auf den Reiter wo dein Makrocode sich befindet und dann
-> Einfügen
---> Baic Dialog
auswählen. Nun musst Du die einzelnen Elemente in deinem eigenen Dialog erstellen.
Oder aber eine simplere Art.
In der Beispieldatei den Dialog exportieren, und in deiner Datei dann wiederum importieren. Die dazu nötigen Button findest Du in der Symbolleiste.
Hilft dir das jetzt schon mal etwas weiter?
Gruß
balu